Вы можете использовать flashrom для обновления BIOS материнской платы.
Пример (Abit KN9 Ultra):
Плата AMD AMD Athlon 64, AM2 Socket, чипсет Nvidia, выпущенная с 2006 года. Она имеет флэш-чип на 256 КБ, который можно заменить. BIOS отмечен знаком «Award», который, по-видимому, является торговой маркой Phoenix.
Flashrom поддерживает этот чипсет и этот чип.
Поддержка может быть проверена с помощью команды:
# flashrom --programmer internal
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
Имеет смысл сначала сделать резервную копию текущего содержимого флеш-чипа:
# flashrom --programmer internal -c Pm49FL004 -r backup.bin
Затем его можно сравнить с файлом образа ванили от поставщика (используя, например, xxd
иvimdiff
).
Ожидаются некоторые различия - потому что некоторые BIOS также хранят дополнительную информацию (например, DMI) и конфигурацию (например, MAC-адреса) во флэш-памяти. Это также относится и к Abit KN9 Ultra. Данные DMI хранятся в первых 1872 байтах и легко воссоздаются BIOS во время загрузки. MAC-адреса хранятся со смещением 0x74E30.
Файлы прошивки производителя упакованы в zip-архив, который содержит awdflash.exe
и BIN
файл, например M520A_23.BIN
. В этом примере файл bin содержит образ BIOS «как есть», то есть он может быть непосредственно записан с помощью флэш-чипа с помощью такой команды:
# flashrom --programmer internal -c Pm49FL004 -w M520A_23.BIN
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
В зависимости от обновления может потребоваться очистить CMOS для следующей перезагрузки - в противном случае BIOS может не запуститься. На этой плате CMOS можно очистить с помощью перемычки. Очистка с помощью программного обеспечения также возможна (например, через CmosPwd ).
Для сохранения уникальных MAC-адресов по умолчанию перед обновлением может быть исправлен образ нового поставщика, например:
dd if=backup.bin of=mac.bin bs=1 count=16 skip=$(echo 16 i 74E30 p | dc)
dd if=mac.bin of=M520A_23_with_mac.bin bs=1 seek=$(echo 16 i 74E30 p | dc) \
conv=notrunc
Ловушки:
- Запись во флэш-память может завершиться неудачей из-за кода включения (например, для отключения защиты от записи) платы, специфичной для материнской платы, который еще не реализован во Flashrom.