2010年9月13日月曜日

Intersil Prism2.5 firmware 書き換え

Intersil社の Prism2.5 の wifi card のファームウェアの書き換えをしました。

ネット上には先人たちの苦労の結果がいくつか掲載されていましたが、私が実際に書き換えに当たって苦労した点を書き残しておきます。

今回のファームウェアの書き換えのもともとの発端は無線LANのアクセスポイントを置いてある場所の変更でした。変更そのものは特に問題はなかったのですが、たまたま手持ちの無線LANのPCカードをいろいろとノートパソコンに付け替えては動作確認をしていたことに遡ります。

私は WPA は 802.11b だけのカードでは使用できないものと思い込んでいました。しかしたまたま 802.11b オンリーの NETGEAR MA521 で動作確認をしていたとき、普通に WPA2(AES) で通信をしていたことを発見したことでした。

もう使用することはないカードだと思っていたものだけにラッキーな気持ちと不思議な感じを受けました。

そこでネット上でいろいろ調べてみると 802.11b 世代のカードでもファームウェアの書き換えで WPA に対応するものがあることが判りました。

そこで手持ちの中にいくつか Intersil 社のPrism 2.5 を使用したものがあったため、このファームウェアを書き換えて WPA に対応させてやろうと思ったわけです。

もちろんファームウェアを書き換える前には WPA で通信することはできず、debian lenny のgnomeのデスクトップ上では WPA ではなく WEP を設定するダイアログボックスが表示されるだけでした。

作業を行ったのは IBM ThinkPad 535X を使用しました。

ファームウェアを書き換えるソフトのIntersil社の flash.exe は version 0.5e を使用しました。ネット上にはこれより古いものも出回っているようで私も最初に古いものを使用したためネット情報と差異に悩まされました。これから Prism のファームウェアを書き換えようとする人は注意してください。バージョンの確認は DOS 上で単純に flash.exe を実行させると右上に表示されています。

それから書き換えるファームウェアは1個のチップに2種類のファームウェアを書き込むこととなります。

基本のプライマリのものは PK010101.HEX で問題ないようです。しかしセカンダリのSF******.HEX はちょっと古めの SF010704.HEX がよさそうです。私の場合には最新の SF010804.HEX ではパケットロスが20パーセントほど発生していました。このパケロスはちょっと大きいので、よほどの理由がないかぎり安定版?の SF010704.HEX を使用したほうがよいことでしょう。こちらはパケロスはほとんど確認できませんでした。

ファームウェアの書き換えで使用する flash.exe では設定ファイルの flash.ini が必要となります。これもノートパソコンでよく使用されている Texas Instruments PCI 1250 の cardbus のチップを使う場合の参考例がネット上に掲載されていますので、これをそのまま使用しました。しかし ThinkPad 535X で実際に書き込むのときにはレガシー( -legacy)モードで動作させるため、flash.ini の設定はそれほどシビアに確認することはないようです。(訂正:以前リコーの cardbus チップと記述していましたが間違えでした。)
flash.ini の参考ページはこちら
http://lists.shmoo.com/pipermail/hostap/2003-April/002266.html

なお作業に当たっては DOS 6.2 のブートディスクを作成して、この中に flash.exe , flash.ini , PK010101.HEX , SF010704.HEX を一緒に詰め込んで書き込みを行いました。

それでは実際に DOS で行った作業です。

カードの確認です。これでカードの情報がすんなりと読み出せない場合には何か問題があります。

 > flash -legacy -3v -s

カード情報の一番下にファームウェアのバージョンが2種類表示されると思います。これが最新のものであれば書き換えの必要はありません。

それでは基本のプライマリ・ファームウェアの書き換えです。

 > flash -legacy -3v -d PK010101.HEX



プライマリ・ファームウェアの書き換えで問題なければセカンダリ・ファームウェアの書き換えを行います。

 > flash -legacy -3v -d SF010704.HEX



これも正常に書き換えが行われたら、カード情報を再度読み出してみます。

 > flash -legacy -3v -s



一番下に当たらしファームウェアのバージョンが表示されれば終了です。

今回書き換え作業を行ったのは次のカードです。

I/O DATA WN-B11/PCM PK010005.HEX SF010304.HEX

BUFFALO WLI2-CF-S11 PK010100.HEX SF010804.HEX <--- br="br" cf="cf">


このどちらもファームウェアを PK010101.HEX , SF010704.HEX へ書き換えて WPA2 で通信をすることが出来ることを確認しました。
なお動作確認は debian lenny 上で WPA 通信が出来る hostap ドライバーを使用しました。通常呼び出される orinoco のドライバーは /etc/modprobe.d/blacklist へ追加して自動的に呼び込まれなくしています。

なおこの書き換えで失敗するとカードが使用できなくなる可能性があります。ファームウェアの書き換えに伴う危険性(リスク)をよく理解してファームウェアのバージョンアップが必要な人は行ってください。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。