SiliconImageのSlI3132という化石のようなeSATA/SATAのカードです。こいつのファームのバージョンをアップする手順を紹介します。
FreeDOSは公式サイトから拾ってきます。この時Lite版ではなくFull USB版にしましょう。今回はUSBメモリ版を使いました。
BIOSとUpdateUtilはこの辺から拾ってきました。公式サイトは会員登録が必須のようなのでマザーのサポートページなどから拾ってくる方が良いかもです。
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から起動させます。
USBから起動するとFreeDOSが立ち上がってきます。とりあえずオプションなしで
> updbios
を実行します。メニューがいくつか出てきますが、単にバージョンを表示するだけのメニューがあったはずなので、それを選択して現在のBIOSをメモしておきましょう(後で使うわけではないのでしなくても問題はないです
次にファームウェアを引数に指定するとアップデートが実施できます。
> updbios b7703.bin
ちなみにファームウェアにはrから始まるもの、bから始まるもの、無印があります。
r,bに比べて無印は異様にサイズが小さいのでかなり色んなものが省略されている気がします。rはRAID機能付きBIOSです。
RAIDが不要ならbから始まる物で良いでしょう。
下記はアップデートの画面です。C:\ >が出てきたら終了です。