LinuxだけでBIOSを更新する方法

WindowsFreeDOSを使わずに,LinuxだけでマザーボードBIOSを更新する手順をまとめます.

同じ手順で,マザーボードだけでなく,NICRAIDカード,グラッフィックボードまで様々なデバイスファームウェアが更新できます.

手順1) flashrom のインストール

BIOS更新には flashrom というツールを使います.

インストール方法は,debianubuntuなら

$ sudo apt-get install flashrom

です.fedora等なら yum 経由でインストールできるそうです.

手順2) flashrom の動作確認

flashrom がマザーボードに対応しているか調べるために,試しに BIOSのバックアップを取ってみます.

$ sudo flashrom

以下のような出力が出るはずです.

flashrom v0.9.6.1-r1563 on Linux 3.10.0 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Please select a programmer with the --programmer parameter.
Valid choices are:
internal, dummy, nic3com, nicrealtek, gfxnvidia, drkaiser, satasii, ft2232_spi,
serprog, buspirate_spi, rayer_spi, pony_spi, nicintel, nicintel_spi, ogp_spi,
satamv

internal, dummy, nic3com 等が対応しているデバイスです.それぞれ,internal はマザーボード, nic3com はネットワークカード…です.

マザーボードに対応しているので,試しに BIOSのバックアップを取ってみます.

$ sudo flashrom --programmer internal --read bios.backup

これで,motherboard のbiosのバックアップが bios.backup というファイル名で保存できます.

手順3) BIOSのダウンロード

必要なファイルを web からダウンロードします.

ちなみにマザーボードの型番や,BIOSのバージョン番号は,以下のコマンドで確認できます

$ cat /sys/class/dmi/id/board_name
$ cat /sys/class/dmi/id/bios_version

手順4) ファイルの展開

ダウンロードしたファイルは大抵圧縮されているので,展開して必要なBIOSのファイルを取り出します.

GIGABYTE 社のBIOSの場合

GIGABYTEBIOSは自己解凍形式 *.exe で配布されていますが,これは 7-Zip形式なので 7zr コマンドをつかえばLinux上でも展開できます.

7zrコマンドは p7zip パッケージとして配布されています.未インストールの場合は

$ sudo apt-get install p7zip

でインストールします.

7zr コマンドでファイル hogehoge.exe を展開するには

$ 7zr  e  hogehoge.exe

とします.これで BIOSのファイルが取り出せます.

ASUS社のBIOSの場合

後日書きます.

Intel社のBIOSの場合

後日書きます.

最後の手段

形式が不明の *.exe しか入手出来ない場合は,Windowsエミュレータ(?)であるwineを使います.

wine をインストールして

$ sudo apt-get install wine

wine 経由で hogehoge.exe を起動します.

$ wine hogehoge.exe

あとはGUIの指示に従いましょう.

手順5) biosの更新

念の為,現在のBIOSのバージョンを確認します

$ cat /sys/class/dmi/id/bios_version 

flashrom コマンドで BIOSを更新します

$ sudo flashrom --programmer internal --write BIOSのファイル名

成功すると以下のような表示が出ます.

Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.      

あとはPCを再起動.BIOSの設定画面で再設定を行なうだけです.