Debian Jessie: Update BIOS Asus C60M1-I by flashrom

Итак, в домашнем использовании имеется материнка Asus C60M1-I. Захотелось глянуть какой там стоит BIOS — вдруг есть обновления? Для просмотра различных параметров «железа» в Linux есть прекрасная утилита — dmidecode. Она была у меня установлена, пользовать так:

root@debian:~# dmidecode --string bios-version
0205
0205
root@debian:~#

На сайте ASUS уже есть версия 0502 — нужно обновить BIOS! Вспомнил что когдато у меня была подобная материнка и я без проблем обновлял BIOS прямо из Windows — это было просто и удобно. Вдруг что-то подобное возможно в Linux? Быстрое гугление показало что это более чем возможно, так как существует множество различных программ нужного функционала.

Приглянулась программка flashrom — на официальном сайте огромное количество поддерживаемых Flash Chips. Решил поискать в репах прогу:

root@debian:~# apt-cache search flashrom
flashrom - Identify, read, write, erase, and verify BIOS/ROM/flash chips
root@debian:~#

Есть в официальных … установим:

root@debian:~# apt-get install flashrom

Как пользоваться программой — смотрите man или info файл. Минимально необходимые действия приведены ниже.
Узнать какой у меня BIOS Chip:

root@debian:~# flashrom --programmer internal
flashrom v0.9.7-r1782 on Linux 3.16.0-4-amd64 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found Winbond flash chip "W25Q32.V" (4096 kB, SPI) at physical address 0xffc00000.
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
Trying to unmap a nonexisting mapping!
Please report a bug at flashrom@flashrom.org
No operations were specified.
root@debian:~#

Вот главная строчка из всех:
Found Winbond flash chip «W25Q32.V» (4096 kB, SPI) at physical address 0xffc00000.
Она говорит нам о том что у нас чип W25Q32.V
Проверить поддерживает ли программа flashrom данный чип можно так:

root@debian:~# flashrom --programmer internal -L |grep W25Q32
Winbond       W25Q32.V               PREW           4096  SPI      
Winbond       W25Q32.W               PREW           4096  SPI      
root@debian:~#

Поддерживает!
Создаем бекап прошитого на данный момент биоса:

root@debian:~# flashrom --programmer internal -c "W25Q32.V" -r bios.bkp
flashrom v0.9.7-r1782 on Linux 3.16.0-4-amd64 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found Winbond flash chip "W25Q32.V" (4096 kB, SPI) at physical address 0xffc00000.
Reading flash... done.
root@debian:~#

Смотрим что вышло:

root@debian:~# ls -l
total 19784
-rw-r--r-- 1 root root  4194304 Apr  6 09:10 bios.bkp
-rw-r--r-- 1 root root 16062041 Apr  4 15:42 initrd.img-3.16.0-4-amd64
root@debian:~#

На своей рабочей машине я скачал zip файл с новым биосом и розпаковал его. Внутри была пара файликов: rom-файл (это и есть BIOS) и readme. ROM файл я залил на сервер с помощью scp:

user@workpc:~$ scp C60M1-I-ASUS-0502.ROM someuser@debian:~

Вот так он выглядит на сервере:

root@debian:~# ls -l /home/someuser/
total 4096
-rw-r--r-- 1 someuser someuser 4194304 Apr  6 09:14 C60M1-I-ASUS-0502.ROM
root@debian:~#

Переместим его в директорию /root и посмотрим листинг:

root@debian:~# mv /home/someuser/C60M1-I-ASUS-0502.ROM .
root@debian:~# ls -l
total 23880
-rw-r--r-- 1 root    root     4194304 Apr  6 09:10 bios.bkp
-rw-r--r-- 1 someuser someuser  4194304 Apr  6 09:14 C60M1-I-ASUS-0502.ROM
-rw-r--r-- 1 root    root    16062041 Apr  4 15:42 initrd.img-3.16.0-4-amd64
root@debian:~#

Ну а теперь — вперед прошивать BIOS!

root@debian:~# flashrom --programmer internal -c "W25Q32.V" -w C60M1-I-ASUS-0502.ROM
flashrom v0.9.7-r1782 on Linux 3.16.0-4-amd64 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found Winbond flash chip "W25Q32.V" (4096 kB, SPI) at physical address 0xffc00000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
root@debian:~#

Перезагрузка:

root@debian:~# reboot

После ребута сервер не поднялся 🙁 Но я не стал паниковать, знаю что часто после обновления BIOS комп просит настроить его при первой загрузке … ну или нажать некую кнопку для того чтобы пропустить настройку.
Убедился что так оно и есть когда добрался домой и подключил монитор. BIOS просил настройку и не грузил систему. После настройки биоса — перегрузка и … полет нормальный! Система загрузилась. Теперь имеем такую версию BIOS:

root@debian:~# dmidecode --string bios-version
0502
0502
root@debian:~#

Хай щастить!

  1. Комментов пока нет

  1. Трэкбэков пока нет.

Why ask?