BIOS - basic in/out system, базовая система ввода/вывода.
Это набор подпрограмм и утилит, позволяющих
операционной системе и другим программам
использовать ресурсы оборудования. BIOS
также содержит процедуру POST (power-on self test -
программа самотестирования оборудования,
которая запускается автоматически при
включении и перезагрузке компьютера) и
процедуру SETUP - программа настройки
параметров компьютера, сведения о которых
находятся в энергонезависимой памяти CMOS. На
самом деле эта память энергозависима и для
ее питания используется литиевая батарейка
на материнской плате. Энергонезависимая
память представляет набор регистров
объемом несколько десятков байт, в которых
в условном коде хранятся сведения о
дисководах, жестких дисках и прочих
параметрах. Также от этой батарейки
запитаны системные часы. Если батарейка
садится, то эти сведения пропадают, и
компьютер в общем случае загрузиться не
сможет, так как не знает параметров
жесткого диска. При этом также обнуляется
время в системных часах. В таком случае
говорят - "слетел SETUP". Для того, чтобы
восстановить его содержимое, надо войти в
процедуру SETUP в процессе прохождения
процедуры POST. Для этого обычно в нижней
части экрана появляется надпись "Hit Del to
enter Setup" (нажмите Del для входа в SETUP). Иногда
говорят "BIOS SETUP", а чаще просто - "зайти
в BIOS". Но заходят-то в BIOS SETUP, то есть в одну
из процедур, код которой содержится в BIOS.
Из этого набора банальностей следует
несколько выводов -
1) CMOS SETUP - это энергонезависимая память,
представляющая из себя набор регистров
объемом несколько десятков байт, в которых
закодирована информация о параметрах
жестких дисков, наличии дисководов и пр.
Физически эта энергонезависимая память
находится в одной из микросхем на
материнской плате.
2) BIOS SETUP - одна из процедур, код которой
находится в BIOS. Эта процедура позволяет
менять содержимое CMOS SETUP.
3) BIOS - набор подпрограмм и процедур,
которые тестируют компьютер при включении,
обеспечивают загрузку операционной
системы и в дальнейшем обеспечивают
взаимодействие операционной системы и
других программ с оборудованием. Физически
код BIOS находится в ПЗУ, расположенной на
материнской плате. Как правило, ПЗУ не
запаяно наглухо, а находится в разъеме ("кроватке")
и на нем наклеена красивая голографическая
наклейка. На сегодняшний день для хранения
BIOS в основном используются микросхемы DIP-32 (прямоугольная
пластмассовая микросхема с 32 выводами по
длинным сторонам) или PLCC-32 (небольшая
квадратная микросхема с 32 выводами по
периметру).
Сам исходный код BIOS сочиняют всего
несколько фирм в мире - AMI, AWARD, Phoenix. Конечно,
они не могут предусмотреть особенности
всех материнских плат, поэтому они
поставляют фирмам-производителям основу
кода BIOS, а те уже добавляют в него части кода,
учитывающие особенности данной модели.
К середине 90-х годов появились FLASH-ПЗУ -
перезаписываемые ПЗУ с электрическим
стиранием, выдерживающие более 1000 циклов
перезаписи. Они и используются для хранения
BIOS в настоящее время. Объем их бывает 1М Бит
и 2М Бит в корпусах DIP-32 и 2М Байт в корпусах
PLCC-32. Следовательно, если содержимое ПЗУ
записать в обычный файл, то оно займет 128К
Байт (131072 Байт) или 256К Байт (262144 Байт).
Уже в материнских платах для первых Pentium
была предусмотрена возможность
перепрошивки (обновления, update) BIOS.
Потребность в обновлении BIOS стала
возникать с появлением новых моделей
процессоров, увеличении объемов жестких
дисков, исправлении каких-то нюансов в
ранее существующих версиях. В настоящее
время рекомендация "обновить версию
BIOS" стала чуть не стандартной панацей от
всех проблем. Если почитать комментарии к
новым версиям BIOS на страницах
производителей материнских плат, то просто
удивляешься, как это все еще до сих пор
работает. Приводится масса проблем, которые
решены в новых версиях BIOS - поддержка новых
процессоров, поддержка жестких дисков
большего размера, корректная работа USB-портов,
правильное опознавание процессоров с
частотой 667 МГц (для американца надпись на
экране 666MHz - происки нечистой силы),
корректная работа с SB Live! и пр.
В результате многие "умельцы"
норовят обновить версию BIOS при каждом глюке.
Это, конечно же, полная глупость и
шарлатанство. Если машина запустилась и
корректно определила процессор, HDD
и прочее оборудование, то глюки
происходят, как правило, из-за особенностей
оборудования (в первую очередь ОЗУ) или из-за
несовместимости (в первую очередь
видеокарты и материнской платы). Конечно, от
обновления BIOS хуже не станет (если прошивка
именно от этой модели материнской платы), но
проблемы оборудования не исчезнут.
На основании собственного опыта считаю,
что есть только две причины обновлять
версию BIOS:
1) если материнская плата не
поддерживает новые процессоры. Например,
материнские платы на чипсете LX или BX с
версиями BIOS до примерно мая 1998 года не
поддерживают кэшовые Celeron. Например, в
материнской плате ASUS P2L97 стоял P-II-233, надо
поставить Celeron-533 (естественно, в
переходнике Socket-370 - Slot-1). Если сразу
воткнуть новый процессор, то он опознается
примерно как "-MMX at 500MHz" и дальше
загрузка не пойдет. Тогда надо на странице
ASUS найти новую прошивку именно для этой
материнки, которая обеспечивает поддержку
нового Celeron (Mendochino, Cel-300A) и обновить BIOS. Как -
объясню позднее.
2) Если материнская плата не
поддерживает жесткие диски большего
размера. Есть два предела - 8.4Г Байт и 32Г Байт.
В первом случае любой диск больше 8.4Г (например,
20Г) детектится как 8.4Г, во втором - диск
больше 32Г детектится как 32Г. Соответственно,
надо искать прошивку для данной модели мат.платы,
где решена эта проблема.
Следует предупредить, что обновление
версии BIOS не обладает магическим действием.
На мат.плате не вырастает разъем AGP, плата на
i815 не начинает поддерживать Athlon, плата на LX
не будет поддерживать P-III (во-первых, не
выдаст нужного напряжения для питания
процессора, во-вторых, не выдаст частоту 100
или 133 МГц).
Для перепрошивки BIOS используются
программы AWDFLASH (для перепрошивки BIOS фирмы
AWARD) и AMIFLASH (соответственно фирмы AMI). В
редких случаях перепрошить BIOS можно только
утилитой фирмы-производителя материнской
платы, например, для материнских плат фирмы
ASUSTEK подходят только фирменные утилиты PFLASH
и AFLASH, хотя используется BIOS от AWARD.
Перепрошивка BIOS для брендов типа HP, Compaq, DELL -
отдельная история. Так как наиболее
распространены BIOS от AWARD, расскажу об
утилите AWDFLASH. Собственно, AMIFLASH отличается
только более красивым интерфейсом, а
принцип тот же.
4.2. Запись (обновление) BIOS на работающей
материнской плате.
Это стандартный режим обновления
версии BIOS. Правда, если причина обновления
BIOS в том, что старый BIOS не поддерживает
новый процессор, то эту операцию надо
делать, загрузившись на старом процессоре (на
новом не загрузится или загрузится криво).
Для обновления версии BIOS надо иметь файл
прошивки новой версии BIOS именно от данной
модели мат.платы, файл должен быть в той же
директории, что и AWDFLASH, в интерактиве путь
задать нельзя. Запустив AWDFLASH, надо обратить
внимание на то, что опознался тип ПЗУ. В
верхней части окошка будет написана строка
информации о существующем BIOSе и дата его
создания, и вторая строка - информация о
типе ПЗУ. Если там написано "UNKNOWN TYPE" (неизвестный
тип), то это означает, что AWDFLASH не знает
данного типа ПЗУ и прошить его не сможет.
ПЗУ разных фирм имеют разную структуру и
при их записи используется разный алгоритм.
С точки зрения чтения это безразлично, а с
точки зрения записи - очень критично.
Если AWDFLASH успешно опознал ПЗУ и написал
про него типа "ATMEL 29C010", то все
нормально, и в строке "File name to program" надо
ввести имя файла прошивки. AWDFLASH спросит,
хотите ли вы сохранить содержимое
существующего BIOS. Чтобы пропустить, не надо
вводить имя файла для сохранения, а просто
нажать Enter. Потоп программа спросит "A you
sure?" (вы уверены?), на это надо сказать
"Y". После этого начнется запись, снизу
пойдет индикатор процесса, все это займет
несколько секунд. Снизу при этом будет
предупреждение "Do not turn off power" (не
выключайте питание). Если питание выключить,
то BIOS прошьется не до конца и работать не
будет, то есть мат.плата при включении не
заведется. Что делать в этом случае дальше,
написано в разделе 5. Если все пройдет
успешно, то снизу появится надпись "F1 Reset
Esc Exit". Если нажать F1, то компьютер
перезагрузится как ни в чем не бывало,
только в технической информации о BIOS
изменится дата создания и немного может
измениться диагностика при начале загрузки.
Если же после перезагрузки компьютер не
подает признаков жизни, значит, прошивка BIOS
прошла неудачно или же зашитая прошивка не
подходит к данной плате. Что делать в этом
случае, написано в разделе 5. При этом очень
пригодится файл с прошивкой BIOS, который
желательно было сохранить в самом начале -
во всяком случае есть надежда вернуться к
первоначальному состоянию.
AWDFLASH /?
На экране появится список параметров.
Задаются они через "/". Пример запуска в
командной строке:
AWDFLASH BIOS.BIN /PY
/SN
где BIOS.BIN - имя файла,
содержащего информацию для прошивки ее в
ПЗУ;
/py - programming yes (программировать - да, т.е.
записывать в ПЗУ);
/sn - save no (не сохранять, т.е. не сохранять в
файл содержимое ПЗУ перед тем, как в него
будет записано новое содержимое).
Да, то есть с неправильным содержимым
ПЗУ материнская плата работать не будет.
Сделать это можно, прошив ПЗУ не до конца (выключить
питание, когда внизу рамки программы AWDFLASH
еще идет индикатор процесса) или же записав
в ПЗУ прошивку от другой материнской платы
или абстрактный файл.
Если содержимое BIOS неправильное, то
материнская плата не заработает. Впрочем,
причин неработоспособности мат.платы может
быть много. Но если есть уверенность, что
причина неисправности - именно
неправильное содержимое ПЗУ, то для
восстановления работоспособности надо
записать в ПЗУ правильное содержимое, т.е.
BIOS именно от этой модели мат.платы. Для
этого надо иметь файл с прошивкой BIOS именно
для данной модели мат.платы. На неисправной
мат.плате записать, естественно, ничего не удастся,
поэтому надо извлечь ПЗУ из разъема (если
ПЗУ запаяно - придется выпаивать), и
перепрошить его в программаторе или в
другой материнской плате.
В общих чертах этот процесс довольно
прост - загрузиться на рабочей мат.плате в
"Safe mode command prompt only", по-горячему (т.е. на
включенной мат.плате) извлечь микросхему
BIOS, поставить другую микросхему, в которую
надо записать новый BIOS, запустить AWDFLASH и
записать нужный файл прошивки в ПЗУ. После
чего выключить компьютер, переставить ПЗУ -
и все. Но есть несколько нюансов:
1) В момент включения и загрузки на мат.плате
должно стоять родное ПЗУ с BIOS. После
загрузки BIOS переносится в теневое ОЗУ (Shadow
RAM), где и работает, а само ПЗУ становится
ненужным, поэтому его можно извлечь.
Соответственно, без BIOS плата не включится.
Поэтому ПЗУ для перепрошивки надо менять
именно на включенной мат.плате.
2) Перед тем, как включать мат.плату, на
которой будет прошиваться ПЗУ, родное ПЗУ
надо немного вытащить - чтобы контакт еще
сохранялся, но не нужно было бы включенную
плату ковырять отверткой. Кроме того, при
установке микросхемы ПЗУ надо ОЧЕНЬ
ВНИМАТЕЛЬНО следить за тем, чтобы ставить
ее по ключу. У микросхем всегда помечен
первый вывод - треугольничком, точкой на
корпусе микросхемы, вырезом. Метка есть и на
колодке (кроватке) под ПЗУ - как правило,
небольшой вырез с одной стороны. Если ПЗУ
поставить не по ключу, то на нее подается
напряжение обратной полярности и ПЗУ тут же
безвозвратно ВЫХОДИТ ИЗ СТРОЯ (сильно
нагревается при этом).
3) Микросхемы FLASH-ПЗУ в корпусе DIP-32
бывают емкостью 1М Бит и 2М Бит. Причем
выглядят они при этом совершенно одинаково.
Мало того, некоторые мат.платы (например, Acorp
6BX86) бывают с ПЗУ в 1М, и в 2М. Естественно,
более новый вариант BIOS имеет объем 2М.
Отличие в том, что на 2М ПЗУ заведена
дополнительная линия адреса, которая не
задействована в ПЗУ 1М. С одной стороны, это
хорошо - если вместо 1М ПЗУ поставить 2М ПЗУ (и
наоборот), то ПЗУ не сгорит. С другой стороны,
плохо - если загрузиться с BIOS объемом 1М Бит,
а попытаться прошить 2М Бит ПЗУ, AWDFLASH может
отказаться это делать, так как он знает
объем ПЗУ, с которым мат.плата загружалась
(BIOS в процессе работы находится в Shadow RAM).
Поэтому прошивать 1М ПЗУ надо на мат.плате,
где родной BIOS имеет объем 1М, а 2М ПЗУ - соответственно
на мат.плате с родным BIOS в 2М. Впрочем, на
материнских платах Lucky Star я вытаскивал 1М
ПЗУ, потом засовывал 2М ПЗУ, и спокойно
перепрошивал ее, правда, AWDFLASH ругнулся и
потребовал подтверждения.
4) Старые версии AWDFLASH не поддерживают 2М
Бит ПЗУ - даже сохранить содержимое ее не
могут. Поэтому на новых мат.платах, где ПЗУ
имеет объем 2М, надо использовать новые
версии AWDFLASH, например 7.95. Новую версию AWDFLASH
можно скачать с той же страницы в Интернете,
что и BIOS для мат.платы.
5) Некоторые мат.платы не позволяют
прошивать BIOS для мат.плат другой фирмы,
например, на мат.плате Acorp можно залить
прошивку только для Acorp (наверное,
определяют по сигнатуре в прошивке, защита
от дурака, однако). Самое лучшее - прошивать
ПЗУ на мат.плате ASUS (неважно какой модели),
естественно, ASUSовой же прошивалкой - PFLASH или
AFLASH. На ASUSе можно залить в ПЗУ любую
информацию (естественно, соответствующего
объема - 128К или 256К) - хоть AMI-BIOS, хоть
текстовый файл.
6) Не все ПЗУ удается перепрошить -
прошивалка определяет их как UNKNOWN и не шьет.
Выход - искать другую ПЗУ. Можно извлечь ее
из дохлой матери (в некоторых 486 мат.платах
уже ставили 1М FLASH-ПЗУ), или же купить на
Савеловском рынке (например, на D-37 2М FLASH
стоит 5 у.е.).
Да, содержимое ПЗУ BIOS может испортиться,
и тогда при включении компьютер не подает
признаков жизни (впрочем, причина может
быть и в другом). Косвенным признаком
испорченного содержимого BIOS может быть
чуть теплый процессор, если снять радиатор (с
процессорами AMD этот опыт лучше не делать).
При нормальной работе процессор греется
довольно сильно, если же содержимое BIOS
неправильное, то мат.плата не
инициализируется, и процессор фактически
стоит, поэтому он греется слабо.
Причин порчи BIOS может быть несколько:
1) Случайность, статическое
электричество. Очень редко, но бывает.
2) Неисправность самой микросхемы ПЗУ -
самопроизвольная потеря информации. Если
после восстановления BIOS такая ситуация
будет повторяться, то надо подумать о
замене самой микросхемы ПЗУ.
3) Действие вируса, например Чернобыль (26
апреля каждого года). От Чернобыля обычно
еще исчезает все содержимое жесткого диска.
AWDFLASH в этом случае не подойдет, нужна
программа AMIFLASH. У нее красивый графический
интерфейс, и она имеет объем порядка 500К,
AWDFLASH - в пределах 40К. Единственное, что я не
понял - это как AMIFLASH сохраняет существующий
BIOS в файл. А в остальном суть та же - надо
сказать имя файла с прошивкой, подтвердить
продолжение и подождать несколько секунд.
Если все работает, и все устраивает -
лучше вообще ничего не перепрошивать.
Обратиться к специалисту, конечно же,
спокойнее. Во-первых, он это делал не раз (если
делал) и сделает это быстро. Во-вторых,
нормальный специалист несет ответственность
за свои действия, в том числе и материальную.
Стоить сия процедура для вас будет от 10 до 20
у.е., в зависимости от настроения
специалиста, а по времени это займет
несколько минут. Поэтому, если есть желание
сэкономить и получить новые навыки, то
лучше это сделать самому, тем более что
сложного в этом ничего нет.
Дмитрий Леонов
22 февраля 2002 г.