RSS
 

Прошивка BIOS из LINUX

06 Апр

Для прошивания БИОСа в линуксе требуется только две вещи — сама прошивка БИОСа и программа, которая будет этот самый БИОС прошивать. Программу можно скачать в исходниках отсюда: http://openbios.info/FlashRom или же в Debian-based (например в Ubuntu) дистрибутивах поставить с помощью APT:

#apt-get install flashrom

Перед записью новой прошивки в БИОС, желательно сохранить старую версию, то есть скопировать прошивку, которая уже прошита в БИОСе, чтобы потом можно было легко восстановить все обратно:

#flashrom -r MyBIOS.bin

Где MyBIOS.bin — это имя файла, в который сохранится старая версия прошивки. После сохранения, можно уже на свой страх и риск записывать скачанную прошивку в БИОС:

#sudo flashrom -w NewBIOS.bin

Где NewBIOS.bin — это имя скачанной прошивки. Также, можно добавить ключ -v чтобы программа проверила записанную прошивку и еще можно добавить ключ -V чтобы вывод работы был более информативным:

#sudo flashrom -Vvw NewBIOS.bin

С остальными же ключами можно ознакомиться с помощью —help

$flashrom —help

Пример

На примере была испытана материнская плата GIGABYTE GA-965P-DQ6 rev2.0 с Ubuntu 8.04 GNU/Linux на борту
FlashRom при первом запуске без ключей показал вот такую информацию:

krik@krik-desktop:~/temp$ sudo flashrom
[sudo] password for krik:
Calibrating delay loop… OK.
No coreboot table found.
Found chipset «Intel ICH8/ICH8R», enabling flash write… OK.
Found chip «Macronix MX25L8005» (1024 KB) at physical address 0xfff00000.
Found chip «Macronix unknown Macronix SPI chip» (0 KB) at physical address 0x0.
Multiple flash chips were detected: MX25L8005 unknown Macronix SPI chip
Please specify which chip to use with the -c option.

На материнской плате установлено два чипа BIOS. Один главный, второй — запасной (в случае повреждения первого, прошивка восстанавливается со второго). Флэшер нашел оба этих чипа и предложил выбрать, который использовать. Чтобы выбрать чипсет — надо использовать ключ -c. Для этой материнской платы, чтобы прочитать уже стоящею прошивку БИОСа в файл, пришлось запустить ее с такими параметрами:

krik@krik-desktop:~/temp$ sudo flashrom -r MyBIOS.bin -c MX25L8005

Где MyBIOS.bin — это файл, куда сохранялась прошивка, а MX25L8005 — выбранный чипсет. После того, как прошивка была забекапена, можно уже приступать непосредственно к записи новой прошивки, которую можно скачать для этой материнской платы отсюда — http://www.gigabyte.ru/products/mb/bios/ga-965p-dq6_20.html но перед записью прошивки в БИОС можно проверить, ту ли прошивку вы скачали — достаточно сравнить размер MyBIOS.bin и 965PDQ6.12K или открыть оба файла в hex-редакторе и сравнить начало и конец. Если все в порядке, приступаем:

krik@krik-desktop:~/temp$ sudo flashrom -Vvw -c MX25L8005 965PDQ6.12K

Где файл 965PDQ6.12K — и есть сама прошивка с официального сайта (на сайте расположены exe-файлы, но это всего-лишь SFX-RAR архив с самой прошивкой и программой-флэшером для ДОСа). Теперь можно перезагрузиться с новым биосом.
Настройки NVRAM (CMOS)

В линуксе не только можно прошивать БИОС, но и также сохранять или записывать его текущие настройки, причем штатными средствами. Нужно всего-лишь подгрузить модуль nvram и считать информацию с устройства /dev/nvram:

#modprobe nvram
#sudo dd if=/dev/nvram of=my_bios_cfg.bin

Где my_bios_cfg.bin — это двоичный файл, куда сохранятся текущие настройки биоса. Записать настройки обратно можно тем-же путем, только поменяв if на of и of на if:

#sudo dd of=/dev/nvram if=my_bios_cfg.bin

Ссылки

 
Комментарии к записи Прошивка BIOS из LINUX отключены

Рубрика: Debian, Good-to-know

 

Comments are closed.