Прошиваем BIOS из линукса

Изображение пользователя stylliaga.

столкнулся с такой проблемой.
шеф дал ноут, который принес из сервиски.
грит, поставь вынь.
ставлю вынь - не хочет ибо установщик не находит хард, который есть sata.
в сервиске биос поставили старый, без поддержки usb что сильно зарудняет работу и возможности определения в ручную типа соединения харда.
через диск биос не обновить ибо в досе он не видит привод почемуто.
но вот линь поставился на ура и все увидел(хотя usb все таки проигнорировал)
ноут Acer Aspire 5110
пришла мысля поставить линь и через него прошить bios.
порылся в и-нете и наткнулся на статью.
думаю пригодиться.

Теория

* http://ru.wikipedia.org/wiki/BIOS

Практика

Для прошивания БИОСа в линуксе требуется только две вещи - сама прошивка БИОСа и программа, которая будет этот самый БИОС прошивать. Программу можно скачать в исходниках отсюда: 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

Ссылки

* http://www.pixelbeat.org/docs/bios/
* http://www.coreboot.org
* http://openbios.info
* http://www.hackzone.ru/articles/view/id/396/

Комментарии (34)

0
balamutick - 12 Февраль, 2009 - 12:25
Изображение пользователя balamutick.

О, так гораздо удобнее.

З.ы. статья супер. палочка выручалочка в подобных твоей ситуации.

0
stylliaga - 12 Февраль, 2009 - 13:19
Изображение пользователя stylliaga.

рад что понравилось.
эксперимент в процессе.
предложил директору оставить линь, а на виртуальную поставить вынь - он не против.

кто знает, может еще на одного приверженца больше станет :)

0
Ockonal - 12 Февраль, 2009 - 15:17
Изображение пользователя Ockonal.

Не станет =) За статью спасибо.

0
stylliaga - 12 Февраль, 2009 - 16:30
Изображение пользователя stylliaga.

скачал с сайта Acer последний bios, но вот только там не оказалось файла с расширением *.bin
вот незадача...
ищу решение как грузить *.rom и *.wph

0
Гость - 10 Август, 2009 - 22:36

Где там нашли биос с файлами *.rom и *.wph

Качаю биос для Aspire 7720 только *.exe а мне б Под линуксом биос прошить...

0
Robotex - 12 Февраль, 2009 - 19:09

Я слышал, что существует биос, основанний на линуксе. Его можно так поставить? Он на все машины ставится?

0
balamutick - 12 Февраль, 2009 - 19:17
Изображение пользователя balamutick.

Википедия - про BIOS
Какие разновидности BIOS существуют

Графическая оболочка BIOS, основанного на микрокоде Award Различия прошивок сводятся не только к обилию настроек и диапазонам регулировки отдельных параметров. В первую очередь это микрокод определенного разработчика, который в итоге определяет визуальную оболочку. К примеру, BIOS материнских плат от ASUS основан на коде от AMI (меню с синими символами на сером фоне), большинство производителей использует Award/Phoenix (синий фон, желтые буквы). В последнее время получают распространение расширяемые интерфейсы встроенного ПО EFI (Extensible Firmware Interface), выделяющиеся неординарным графическим интерфейсом. Они позволяют проводить навигацию, используя не только клавиатуру, но и мышку, а пункты меню стали еще более интуитивно понятными

Возможно ты путаешь с (ссылка на мой пост о) BUSYBOX ? BusyBox — набор UNIX‐утилит командной строки, используется в качестве основного интерфейса во встраиваемых операционных системах.

=======дописано по мотивам поста SeaJey========
Coreboot, он же Linuxbios(ориг.англ.)
Coreboot, он же Linuxbios (Русск.)

0
SeaJey - 12 Февраль, 2009 - 22:01
0
Гость - 12 Февраль, 2009 - 22:03

Боюсь расстроить, но в Acer это стандартная проблема. Ставить нужно Windwos Sp3. Либо в биосе ставить IDE mode - все встанет. Потом после установки перекличить в sata.
За то что использовали ситуацию в своих целях - пять баллов. Нужно так делать - пусть люди знают - выбор есть всегда.

0
stylliaga - 13 Февраль, 2009 - 22:35
Изображение пользователя stylliaga.

дело в том что я как раз ставил винду 3 с паком.
но установщик все равно не хотел видеть хард и в биосе не было опции установки определения соединения как IDE(я уже писал об этом) потому что биос стоит старый.

0
rooltak - 12 Февраль, 2009 - 22:07

Неспорю статья хорошая но проще помоему бяло бы отключить в BIOS ACHI или зашить драйвер на HDD в дистр вынь с помощью nLite помоему делаеться это очень просто.
Говорю это по тому что согласен с третьим постом ))

0
picaro - 13 Февраль, 2009 - 12:47
Изображение пользователя picaro.

Крутые производители материнок (intel например) делают обновление биоса с флешки без участия человека и операционной системы. По моему - это наилучший вариант.

0
balamutick - 13 Февраль, 2009 - 13:34
Изображение пользователя balamutick.

Ага, ибо инженерам - инженерово. (намёк на кесарю - кесарево).
И так много проблемм для пользователей\администраторов, ещё и биос обновить - целый длинный большой костыль...

0
Гость - 13 Февраль, 2009 - 20:00

Вопрос как прошивать остальные чипы? cdrom/hdd/video/sound?

0
balamutick - 15 Февраль, 2009 - 18:24
Изображение пользователя balamutick.

Тут не в тему (!).

0
Гость - 16 Февраль, 2009 - 20:03

Либо в биосе ставить IDE mode
правильно сказали, зачем себя так мучать...
еще возможно надо было драйвер подгрузить, JMicron или что там за контроллер. Но для этого нужен USB FDD.
а история улыбнула)))

0
breass - 17 Февраль, 2009 - 12:01
Изображение пользователя breass.

На моём буке (Acer Aspire 5673) при выполнении команды # flashrom -r My_BIOS.bin бук вырубается и включить его можно только после отключения от сети и вынимания батареи.

0
balamutick - 17 Февраль, 2009 - 12:14
Изображение пользователя balamutick.

бук вырубается и включить его можно только после отключения от сети Внимание, не делайте таких экспериментов. Попортить BIOS - это легко, восстановить его часто стоит немало денег.

0
Buy - 6 Март, 2009 - 00:30

>но перед записью прошивки в БИОС можно проверить, ту ли прошивку вы скачали - достаточно сравнить размер MyBIOS.bin и 965PDQ6.12K или открыть оба файла в hex-редакторе и сравнить начало и конец.
___________________________________________

Хотелось бы узнать, а играет ли роль такая вещь как номер ревизии материнки? У меня ASrock ConRoe1333-D667, но какая ревизия не написано в инструкции (а на сайте разные варианты есть R1 и R3). Можно ли узнать номер ревизии моей платы и как?

Потом, если сравнивать размеры прошивок, то там они все разные (для ConRoe1333-D667) каждая новая версия отличаеться от старой по размеру(см. например для R2: http://www.asrock.com/mb/download.ru.asp?Model=ConRoe1333-D667%20R1.0 ), как же по размеру можно определить та-ли прошивка?

Далее сразу извиняюсь за изложение ибо не разбираюсь(но хочу понять).
Сравнивал в hex-редакторе, но "начало" и "конец" не совсем понятно. В той новой что скачал вначале от 00000000 до 00002С8F все значения FF, а потом уже разные начинаються. В моей(что сохранил) от 00000000 до 00004488 все FF. В самом конце в той что скачал 0007FFF8 : 31 31 2F 30 37 00 FC 00 в моей 0007FFF8: 31 39 2F 30 37 00 FC 00 , тоесть одна циферка не совпадает. Значит не то что надо? :(

0
fisinaa - 7 Март, 2009 - 20:55
Изображение пользователя fisinaa.

я щил свой биос средствами биоса, (комп не ноут)..первый раз было страшно )) ща пофик, над будет попробывать прошить с линуха, когда выйдет прошивка новая ))

0
Buy - 10 Март, 2009 - 01:35

>я щил свой биос средствами биоса

Даже не знаю как это... Там опция такая есть? Если так, то наверное самый безопасный вариант, биос сам себя не обманет ведь ;) Тут самое ответственное в процессе, чтоб само обновление было верным и не оказалось битым после скачки.
Но у меня в биосе нет такой опции :(

0
WiZ_Ed - 18 Март, 2009 - 11:10

О! А БИОС можно из-под оси ставить? О_о
А я всё время через биос и USB flash ставлю.

0
llyll - 20 Март, 2009 - 23:36

Подобная функция присутствует во всех более-менее современных материнках..

0
Гость - 20 Март, 2009 - 19:40

Купил 4 Гб памяти для моей ASUS P5B Deluxe. Скачал последнюю пршивку (там пишут что с ней мать увидит наконец недостающий гиг). Прошивка в виде *.rom. Так и не нашли решени как прошить из линукса? придётся грузить винду

0
llyll - 22 Март, 2009 - 13:09

мать даже в биосе не видит этот гиг О_о

0
Гость - 21 Апрель, 2009 - 08:03

изначально проблема решалась иначе, скачиваются драйвера для SATA, при установке винды нажимается F6 подсовывается дискета с драйвером, и проблема решена. Если есть проблема с дисководом, то можно интегрировать драйвер в сам дистрибутив винды (nligth-ом например).

0
balamutick - 21 Апрель, 2009 - 09:43
Изображение пользователя balamutick.

вот я с этим на*****ся... по молодости... пока понял в чём дело и как решить.

0
Firemies - 23 Октябрь, 2009 - 18:55
Изображение пользователя Firemies.

А подскажите где посмотреть возможно или нет установить openbios или coreboot на мой старый ноут HP Pavilion ZV 6279 ea, 2005 года выпуска, а то последний выпуск на мой ноут датируется 2006 годом,заранее благодарен.гугл не дал внятного ответа скажи что какая инфа мне из моего бтоса поможет мне понять могу я поставить openbios или coreboot на свой ноут.Спасибо

0
9nobog - 22 Февраль, 2010 - 20:03
Изображение пользователя 9nobog.

maloy@maloy-desktop:~$ sudo flashrom -Vvw A7388AMS.850
flashrom v0.9.1-r706
More than one operation specified. Aborting.

и как узнать что за операция

0
Гость - 28 Март, 2010 - 00:03

Кажется в примере ошибка, ключи vw вместе не работают, т.к. w-запись во флэш а v-проверка

0
salt - 28 Март, 2010 - 00:29
Изображение пользователя salt.

Похоже, ключи v и w одновременно не работают.

0
Гость - 27 Март, 2010 - 23:58

Народ, делайте сначала проверку sudo flashrom -v MyLuckyStarBIOS.bin а то, похоже, я уже вторую старую плату запарываю :)
This flash part has status UNTESTED for operations: WRITE
Please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -rV,
-wV, -EV), and mention which mainboard you tested. Thanks for your help!

+1
salt - 1 Апрель, 2010 - 10:13
Изображение пользователя salt.

Будьте предельно внимательны, прошивка довольно рискованна... Перед прошивкой проверьте поддерживается ли Ваша плата и чипы http://flashrom.org/Supported_hardware Можно сначала выполнить проверку и внимательно прочитать результат sudo flashrom -v NewBIOS.bin Я этого вовремя не сделал и похоже, запорол пару стареньких биосов в платах Zida (BX3D-CT) и LuckyStar (5MVP3). Не очень жалко, т.к. им красная цена 100 руб, но, блин, обидно. Может найду программатор где-нибудь ;) Будьте предусмотрительнее меня!!! Не делайте так как я, сейчас позвонил в контору в которой есть программатор, они только за одну прошивку зарядили 400р. лет пять-семь назад доводилось прошиваться рублей за 100, вот так то ;) может ещё найду и дешевле, если подвернется ;)
Вот пара стареньких статей по теме: Как перепрошить BIOS и Как и зачем перепрошивать BIOS?
На крайняк можно использовать для прошивки FreeDOS http://www.freedos.org/ но нужно учитывать то, что эта ось работает только с ФС типа FAT FAT32

0
Xenomorph - 31 Август, 2010 - 01:58
Изображение пользователя Xenomorph.

Добавил в подшивку.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры