Обновление BIOS из под Ubuntu 10.10. Весь процесс от начала и до конца.
BIOS (базовая система ввода/вывода), позволяющая операционным системам и оборудованию корректно взаимодействовать друг с другом, присутствует в каждом современном компьютере и располагается в чипе на материнской плате.
Чтобы узнать версию BIOS , выполните в Ubuntu следующую команду:
$ sudo dmidecode -s bios-version
Чтобы посмотреть дату релиза BIOS вашего компьютера , выполните команду:
$ sudo dmidecode -s bios-release-date
04/09/2009
Узнаем марку нашей материнской платы :
$ sudo dmidecode —type baseboard
Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: GA-MA770-UD3
Как видим в моем случаем материнская плата фирмы Gigabyte. Заходим на официальный сайт и смотрим есть ли обновления для моего биоса. Оказывается я давненько не следил за обновлениями: у меня самый первый релиз.
Для обновления версии Биоса из под Операционной системы Ubuntu понадобится следующая утилита: — flashrom.
$ sudo aptitude search flashrom
p flashrom — Identify, read, write, erase, and verify BIOS/ROM/flash chips
$ sudo aptitude install flashrom
Перед записью новой прошивки в БИОС, желательно сохранить старую версию , то есть скопировать прошивку, которая уже прошита в БИОСе, чтобы потом можно было легко восстановить все обратно:
/bios$ sudo flashrom -r bios_fa_09_04_2009.bin
Смотрим информация по нашему файлу:
/bios$ file bios_fa_09_04_2009.bin
Скачав последнюю версию Биоса обнаруживаем, что программа предназначена под операционную систему Windows, исправив это воспользуемся пакетом эмуляции wine, он поможет распаковать исполняемый файл.
Где файл MA77UD32.FKd — и есть сама прошивка с официального сайта (на сайте расположены exe-файлы, но это всего лишь SFX-RAR архив с самой прошивкой и программой-флэшером для ДОСа).
Записываем скачанную прошивку в Биос на свой собственный риск:
/bios$ sudo flashrom -w MA77UD32.FKd
flashrom v0.9.2-r1028 on Linux 2.6.35-32-generic (x86_64), built with libpci 3.0.0, GCC 4.4.4, little endian
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop… OK.
No coreboot table found.
Found ITE Super I/O, id 8720
Found chipset «AMD SB700/SB710/SB750», enabling flash write… OK.
This chipset supports the following protocols: LPC,FWH,SPI.
Found chip «Macronix MX25L8005» (1024 KB, SPI) at physical address 0xfff00000.
This flash part has status UNTESTED for operations: ERASE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
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, -Vr,
-Vw, -VE), and mention which mainboard or programmer you tested.
Thanks for your help!
Flash image seems to be a legacy BIOS. Disabling checks.
Writing flash chip… Erasing flash before programming… Erasing flash chip… SUCCESS.
Programming flash done.
Verifying flash… VERIFIED.
Теперь можно перезагрузиться с новым биосом .
Хм, после перезагрузки отказала мышка (USB), клавиатура (USB), выходом пока почему, так получилось буду разбираться, а пока поставил работать мышь и клавиатуру через переходники PS/2 на usb.
В ходе анализ экрана самотестирования устройств при загрузки и логов системы, причиной не работающих устройств подключенных к USB оказалось, что в БИОСЕ была отключена поддержка.
Включаем поддержку через BIOS:
Перезагружаем компьютер, F2 — Integrated Peripherals — USB Controllers было DISABLED. Включаю :
USB Controllers — Enable
USB Legacy Function — Enable
USB Storage Funtion — Enable
Смотрим версию биоса и дату после обновления:
/bios$ sudo dmidecode -s bios-version && sudo dmidecode -s bios-release-date
Таким вот образом можно пере прошивать БИОС из под нашей системы Ubuntu. На этом всё. А пока обновлю на предыдущий релиз.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Прошиваем BIOS из линукса
столкнулся с такой проблемой.
шеф дал ноут, который принес из сервиски.
грит, поставь вынь.
ставлю вынь — не хочет ибо установщик не находит хард, который есть sata.
в сервиске биос поставили старый, без поддержки usb что сильно зарудняет работу и возможности определения в ручную типа соединения харда.
через диск биос не обновить ибо в досе он не видит привод почемуто.
но вот линь поставился на ура и все увидел(хотя usb все таки проигнорировал)
ноут Acer Aspire 5110
пришла мысля поставить линь и через него прошить 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 при первом запуске без ключей показал вот такую информацию:
/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. Для этой материнской платы, чтобы прочитать уже стоящею прошивку БИОСа в файл, пришлось запустить ее с такими параметрами:
/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-редакторе и сравнить начало и конец. Если все в порядке, приступаем:
/temp$ sudo flashrom -Vvw -c MX25L8005 965PDQ6.12K
Где файл 965PDQ6.12K — и есть сама прошивка с официального сайта (на сайте расположены exe-файлы, но это всего-лишь SFX-RAR архив с самой прошивкой и программой-флэшером для ДОСа). Теперь можно перезагрузиться с новым биосом.
Настройки NVRAM (CMOS)
Используем flashrom
Сборка flashrom под ARM на примере OrangePi One
Для прошивки SPI Flash можно пользоваться специализированными программаторами но при отсутствии таковых можно применить случайно оказавшийся под рукой микрокомпьютер с Linux на борту. Например OrangePi One с Armbian или RaspberryPi.
Подключение
Внимание! все соединения необходимо производить при отключенном питании.
Так что сделаем это заранее.
TODO Здесь должно быть фото
TODO А здесь табличка
Сборка
Качаем свежие исходники flashrom. На данный момент это версия 0.9.9.
Распаковываем полученный файл:
В armbian уже установлен компилятор, так что можем сразу запустить сборку:
Параметры указывают не использовать PCI и USB программаторы.
Если же поддержка USB программаторов нужна, то предварительно установим библиотеку для работы с USB:
И библиотеку для работы с устройствами на базе FTDI если ваш программатор основан на этой микросхеме:
В случае успеха у нас появится бинарный файл.
Прошивка
Для начала проверим видит ли программатор подключённый чип.
TODO запись
На сладкое
Во flashrom наконец добавили поддержку “народного” программатора на базе микросхемы CH341A
К сожалению поддерживается только SPI но не I2C.