Техника перепрошивки BIOS


Уроки кройки и шитья в IT-мире

или

Как прошить BIOS


Скажу сразу, что если вам ни разу в жизни не приходилось менять firmware микросхемы базовой системы ввода/вывода и вы никогда и не задумывались о необходимости ощущения действа, то лучше ничего не трогайте! Последствия неправильной перепрошивки BIOS могут быть печальными вплоть до необходимости явки c материнской платой в сервис-центр. Зачем вообще нужно что-то вытворять с содержимым микросхемы BIOS? Если у вас все и так прекрасно работает, то совершенно незачем. В этом случае можно сделать только хуже. О необходимости смены firmware следует подумать в следующих случаях:


Вы купили новинку. Так как сегодня на рынке действует ожесточенная конкурентная борьба, любой производитель старается выпустить свою модель материнской платы раньше, чем это сделают конкуренты. В результате страдает качество микрокода, так как программисты, работающие на производителя мамки, ограничены во времени - ведь надо успеть к релизу. Из-за этого firmware BIOS новинки иногда бывает сырой - либо отсутствует поддержка некоторых устройств (отдельных моделей процессоров, памяти и прочего железа), либо исходный код написан настолько криво, что глюки выскакивают буквально после каждого нажатия. Если определяется не весь hardware или система работает откровенно глюкаво, имеет смысл перепрошить BIOS;


Если у вас, напротив, древняя (умеренно) системная плата, а вы купили новомодный CPU, который в сокет, в принципе, влезает, но материнка камень идентифицировать отказывается категорически. Но это может помочь только в  том случае, если на сайте производителя вашей материнской платы есть новая версия firmware, и в перечне того, что исправлено в обновленном микрокоде, сказано:"да, новая версия прошивки добавляет такой-то процессор в список поддерживаемых такой-то материнской платы устройств". Если ничего такого на офф.сайте вашей материнской платы не сказано, прошивка либо не принесет никакой пользы, либо, если будет осуществлена неправильно, повлечет за собой порчу оборудования;




Содержимое микросхемы BIOS просто запоролось по каким-либо причинам (среди них неумело проделанная операция прошивки или заражение вирусом).


Ни секунды не сомневаясь в том, что вы десять раз подумали, прежде чем сделать, тем не менее считаю нужным предупредить, что автор данной статьи не несет ровным счетом никакой ответственности за проведение вами всего того, что описано ниже.


Способов перепрошивки существует три: один из среды Windows и как минимум два в DOS. Сейчас мы подробно разберем каждый из них.


Перепрошивка под Windows


Для начала нужно обзавестись необходимым набором софта. В данном случае нам потребуются программа-прошивальщик (обычно идет на CD, который поставляется в комплекте с матплатой; если там нужной программки не обнаружилось, скачайте нужный софт из Интернета, лучше с официального сайта производителя) и бинарный файл с самим микрокодом, который и будет прошит в EEPROM. Теперь, когда все готово к работе, ВЫКЛЮЧАЕМ ВСЕ АНТИВИРУСЫ и запускаем программу-прошивальщик. В ней указываем путь к бинарному файлу и запускаем процесс перепрошивки. В результате по истечении нескольких минут содержимое EEPROM будет обновлено. Такой способ примечателен простотой (не требует почти никаких знаний со стороны пользователя), но уступает по надежности перепрошивке из среды DOS. Например, после выполнения вышеописанных операций из "окошек" температура центрального процессора в BIOS может ни с того ни с сего принять отрицательное значение. Не исключены и другие "неожиданности".


Перепрошивка под DOS


Более надежна, так как процесс происходит в более спокойной "обстановке" (системных данных в ОЗУ загружено значительно меньше, поэтому и "желающих" глюкнуть будет меньше). Но DOS есть DOS со всеми присущими командной строке достоинствами и недостатками, следовательно, управление процессом перепрошивки будет производиться с помощью досовских команд. Для работы нам потребуются программа-прошивальщик, сама прошивка и дискета, отформатированная как системная и на которую все это будет записано и впоследствии загружено. Внимание! Под программой-прошивальщиком имеется в виду не та софтина, которую я упоминал в первом способе, а несколько другое ПО. Оно также должно быть скачано с офф.сайта производителя либо, что крайне нежелательно, с других ресурсов (альтернативный код, написанный сторонними разработчиками). Офф.сайт следует предпочесть всяким софтовым развалам потому, что сторонний софт может быть написан криво, а ошибки в микрокоде BIOS недопустимы и могут привести к неработоспособности всей системы и необходимости навестить сервис-центр. Итак, вы создали загрузочную дискету, записали туда прошивальщик и прошивку и уже готовы к самому процессу. Но это еще не все. Последний этап перед прошивкой - редактирование файла autoexec.bat. Замените его содержимое на следующее:


@echo off

if exist oldBIOS.bin goto old

awdflash.exe newBIOS.bin oldBIOS.bin /py /sy /cc /cp /cd /sb /r

goto end

ld

awdflash.exe oldBIOS.bin /py /sn /cc /cp /cd /sb /r

:end


За этой непонятной телегой скрывается вполне интуитивный код, командующий действиями программы-прошивальщика. Давайте разберемся, что к чему. Содержимое autoexec.bat заставляет компьютер пройти по следующим пунктам: сохранение на дискете старой версии BIOS, прошивка новой версии, а после перезагрузки компьютера (если не успеете вытащить дискету из дисковода) на место обновленного микрокода будет прошита его старая версия. Последнее пригодиться в том случае, если обновленная firmware оказалась кривой, и требуется восстановить старый микрокод из созданного бэкапа. Так мы хоть и готовимся к худшему, но надеемся все-таки на лучшее, вынимаем дискету сразу после того, как система уйдет в перезагрузку. Если после смены прошивки BIOS компьютер грузиться наотрез отказывается, преспокойно вставляем дискету обратно и давим Reset. Autoexec сам сделает нужную работу для приведения всего в исходное состояние.


Обновление BIOS из BIOS


Некоторые BIOS позволяют осуществить собственную перепрошивку через встроенное меню FlashRom. Зайдя в него, нужно лишь указать место расположения bin-файла прошивки (он должен находиться на дискете) и запустить процесс обновления firmware.


Ключи autoexec


Как вы, наверное, уже обратили внимание, в исходном коде "батника" присутствуют странные обозначения со слешами, например, /py /sy /cc. Это ключи, которые определяют действия autoexec.bat во время перепрошивки. Приведу краткую аннотацию предназначений каждого ключа:


«/?» – Помощь. Если вы хотите творить самодеятельность в «Award Flash Memory Writer», обязательно ознакомьтесь с файлом справки программы.


Пользуясь ключами "/Py" и "Pn" можно разрешить/запретить запись в микросхему BIOS. Последнее полезно в том случае, если вы хотите не перепрошивать, а лишь сделать бэкап существующей версии.


Указываем «/Sy», чтобы сохранит предыдущую версию до начала перепрошивки либо «/Sn», чтобы отменить сохранение. В первом случае нужно будет дать добро (если вы уверены в целесообразности смены firmware) на вопрос "Do You Want To Save BIOS (Y/N)" программы. Ключ "/Sn" пригодиться в случае, если обстоятельства заставляют прошивать без монитора.


«/CC» — Очистить CMOS после программирования. Лучше применять этот ключ, так как иной раз для успешной смены  прошивки необходим сброс настроек CMOS. Действие «/CC» аналогично извлечению питающей BIOS батарейки или манипуляций со сбрасывающей установки CMOS перемычкой. Применяйте данный прием, если физический доступ к системной матплате затруднен.


«/CP» — Обнулить таблицу «PnP (ESCD) Data» после программирования. Указывайте этот ключ в autoexec.bat, если при старой версии firmware не распознаются какие-либо подключенные к матплате PnP-устройства. Того же результата можно добиться использованием параметра «Reset Configuration Data» в меню «PnP/PCI Configuration CMOS SetUp».


«/CD» — Обнулить пул «DMI Data» после программирования. DMI – это база данных, в которой содержится вся информация о компьютерной системе в целом. «/CD» будет полезен как при неопределении PnP-устройств, так и при замене любого компонента системы.


«/SB» — Не программировать «BootBlock» . Загрузочный блок, который при старте системы выполняется в первую очередь. При этом он крайне редко изменяется, поэтому необходимость перезаписывать его возникает с такой же частотой. Перезаписывайте «BootBlock»только в случае, если об этом вас просят на офф. сайте производителя материнской платы. Если производителем материнской платы не оговорено противное, нет необходимости перепрограммировать «BootBlock». Кроме того, сбой при его программировании может привести к невозможности восстановления процессора программными средствами. Некоторые матплаты несут на борту перемычку «BootBlock Protection» . Если она установлена, без указания в autoexec.bat ключа «/SB» программирование BIOS будет невозможно или приведет к ошибкам.


«/SD» — Сохранить данные DMI пула в файле. Область DMI может быть сохранена для последующего использования программным обеспечением. Хоть ключ и упоминается в файле справки «Award Flash Memory Writer», его использование не дает никакого результата. Попросту говоря, это параметр не работает.


«/R» — Выполнение перезагрузки по окончании процесса перепрошивки. Полезна при смене firmware с помощью bat-файла.


«/Tiny» — Использовать меньше оперативной памяти.

Без указания этого ключа утилита «AwardFlash» пытается загрузить в оперативную память весь файл BIOS для последующего его программирования. Если в процессе выполнении записи, несмотря на все принятые в процессе подготовки к обновлению, меры программа выдаст сообщение «Insufficient Memory», повторите процедуру, но уже «/Tiny». Теперь бинарный файл будет помещаться в ОЗУ не целиком, а блоками.


«/E» — Возврат в DOS по окончании процесса перепрошивки.


«/F» — Программировать средствами системного BIOS. Большинство современных BIOS содержат процедуры записи «FlashROM» . Используя ключ «/F», программа «AwardFlash» программирует «FlashROM» алгоритмами, которые находятся в текущей версии BIOS. Если материнская плата выполнена с такими конструктивными особенностями, что использование алгоритмов «AwardFlash» Writer не приводит к успешному результату, следует воспользоваться ключом «/F» .


«/LD» — Обнулить настройки CMOS после программирования и не выводить системное сообщения «Press F1 to continue or DEL to setup».


«/CKS» — Отображение контрольной суммы файла XXXXh. Контрольная сумма файла выводится на экран монитора в шестнадцатеричном представлении. Полезно использовать с ключом верификации.


«/CKSxxxx» — Сравнить контрольную сумму файла с XXXXh. Если контрольные суммы не совпадают, выводится сообщение: "The program file's part number does not match with your system!». Значение XXXXh для каждого файла обновления BIOS, как правило, публикуется производителем материнской платы на своем сайте.


Если вы все-таки запороли BIOS


Если вы таки умудрились напортачить в этом простом, но ответственном деле, попытаемся восстановить работоспособность базовой системы ввода/вывода вашей матплаты. Существуют два способа: программный и аппаратно-программный. Разберем сначала первый, так как он относительно проще. Заключается он в попытке повторной перепрошивки. Если загрузка компа доходит хотя бы до прохождения POST, и система способна загрузиться с флоппика, пихаем в него нашу системную дискету с прошивальщиком и прошивкой и повторяем процесс перепрошивки сначала. Если повезет, то вскоре монитор, как и давеча, обрадует вас родными "окошками". Если вы довели BIOS до такого состояния, что загрузка компьютера не доходит даже до POST, дела намного хуже. Либо придется навестить сервис-центр, либо, если микросхема EEPROM не впаяна в матплату, а просто туда вставляется и может быть легко демонтирована, вынимаем ее и идем туда, где нам доверят такую же материнку с таким же демонтируемым BIOS'ом.


Заключительное слово


В этой статье я рассказал о способах перепрошивки системного BIOS. Как видите процедура, в принципе, несложная, если браться за дело с умом и прямыми руками. Так что о последствиях я вас предупредил, а дальше решайте сами.