Puoi usare flashrom per aggiornare il BIOS di una scheda madre.
Esempio (Abit KN9 Ultra):
La scheda è AMD Athlon 64, AM2 Socket, chipset Nvidia, rilasciato dal 2006. Ha un chip flash da 256 KB che è sostituibile. Il BIOS è etichettato con "Award", che sembra essere un marchio di Phoenix.
Flashrom supporta quel chipset e quel chip flash.
Il supporto può essere testato con un comando come:
# 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.
Ha senso eseguire il backup del contenuto corrente del chip flash, innanzitutto:
# flashrom --programmer internal -c Pm49FL004 -r backup.bin
Quindi può essere confrontato con un file di immagine vaniglia dal fornitore (usando eg xxd
e vimdiff
).
Si prevedono alcune differenze, poiché alcuni BIOS 'memorizzano anche informazioni aggiuntive (ad es. DMI) e configurazione (ad es. Indirizzi MAC) nella memoria flash. Questo è anche il caso di Abit KN9 Ultra. I dati DMI vengono archiviati nei primi 1872 byte e vengono facilmente rigenerati dal BIOS durante l'avvio. Gli indirizzi MAC sono memorizzati nell'offset 0x74E30.
I file del firmware del fornitore sono impacchettati nell'archivio zip che contiene awdflash.exe
e un BIN
file, ad es M520A_23.BIN
. In questo esempio, il file bin contiene l'immagine del BIOS così com'è, ovvero può essere scritto direttamente sul chip flash con un comando come:
# 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.
A seconda dell'aggiornamento, potrebbe essere necessario cancellare il CMOS per il successivo riavvio, altrimenti il BIOS potrebbe non avviarsi. Su quella scheda il CMOS può essere cancellato tramite un'impostazione dei jumper. È anche possibile cancellare tramite software (ad es. Tramite CmosPwd ).
Per mantenere gli indirizzi MAC predefiniti univoci, è possibile applicare patch alla nuova immagine del fornitore prima di lampeggiare, ad esempio:
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
insidie:
- La scrittura flash potrebbe non riuscire a causa di un codice di abilitazione della scheda madre specifico (ovvero per disabilitare la protezione da scrittura) che non è ancora implementato da Flashrom.