SiliconImageのBIOSアップデート


tkp_8tE3Wr91Wzqt5nNMwWMvGuK42v1.jpg

SiliconImageのSlI3132という化石のようなeSATA/SATAのカードです。こいつのファームのバージョンをアップする手順を紹介します。

準備物

FreeDOSは公式サイトから拾ってきます。この時Lite版ではなくFull USB版にしましょう。今回はUSBメモリ版を使いました。

BIOSとUpdateUtilはこの辺から拾ってきました。公式サイトは会員登録が必須のようなのでマザーのサポートページなどから拾ってくる方が良いかもです。

FreeDOSのイメージの準備

FreeDOSのイメージのUSBメモリに焼くのですが、その前にBIOS本体とUpdateUtilを入れる作業をします。mountすれば通常のファイル読み書きと同じ操作ができるのですが、単にファイルをマウントしてもうまく行きません。ファイルシステムが開始する点が少しズレているためです。そこでpartedコマンドで開始点を確認します。

# parted ./FD12FULL.img
GNU Parted 3.2
Using /XXXXX/FD12FULL.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s                                                           
(parted) print                                                            
Model:  (file)
Disk /XXXXX/FD12FULL.img: 63488s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End     Size    Type     File system  Flags
 1      63s    63377s  63315s  primary  fat16        boot
 
(parted) quit                                                            

unit sとした後にprintしただけです。これを見ると1番目のパーテーションは63s(セクタ)から始まっています。Sector sizeは512バイトなので、このイメージをマウントする時は下記のようにします。

# mount -o loop,offset=$((63*512)) ./FD12FULL.img ./MNT

./MNTは予め作っておいてください。マウントすると読み書きを自由に行う事ができます。先程ダウンロードしたBIOSなどをここにコピーします。最終的には下記のようになります。

# ls
7703.bin      FDCONFIG.SYS  ReadMe.doc	  b7703.bin
AUTOEXEC.BAT  FDSETUP	    SETUP.BAT	  r7703.bin
COMMAND.COM   KERNEL.SYS    UPDFLASH.EXE

準備が済んだらumountします。PCの電源を切ってUSBから起動させます。

FreeDOSの起動とBIOSアップデート

USBから起動するとFreeDOSが立ち上がってきます。とりあえずオプションなしで

> updbios

を実行します。メニューがいくつか出てきますが、単にバージョンを表示するだけのメニューがあったはずなので、それを選択して現在のBIOSをメモしておきましょう(後で使うわけではないのでしなくても問題はないです

次にファームウェアを引数に指定するとアップデートが実施できます。

> updbios b7703.bin

ちなみにファームウェアにはrから始まるもの、bから始まるもの、無印があります。

r,bに比べて無印は異様にサイズが小さいのでかなり色んなものが省略されている気がします。rはRAID機能付きBIOSです。

RAIDが不要ならbから始まる物で良いでしょう。

下記はアップデートの画面です。C:\ >が出てきたら終了です。

tkp_EHqY_2DYh2zkeWu7QRoH_wYC-Be58KR.jpg