flashromを使用して、マザーボードのBIOSを更新できます。
例(Abit KN9 Ultra):
ボードは、2006年からリリースされたAMD Athlon 64ボード、AM2ソケット、Nvidiaチップセットです。256KBのフラッシュチップは交換可能です。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に保存されます。
ベンダーのファームウェアファイルは、awdflash.exe
などのBIN
ファイルを含むzipアーカイブにパッケージ化されています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
落とし穴:
- フラッシュ書き込みは、フラッシュROMによってまだ実装されていないマザーボード固有のボードイネーブル(書き込み保護を無効にするため)コードが原因で失敗する場合があります。