BUFFALO WHR-HP-G54 のファーム書き換え


無線LANの代替ファームウエアを調べていて、BUFFALOの機種ではファームウエアのアップデートに失敗して起動しなくなった機械を復帰させることができるらしいことを知ったので試して見たくなりました。
ヤフオクをあさってWHR-HP-G54のジャンクを2台入手しました。
1台はファームウエアのアップデートに失敗して動かなくなったとのこと。
もう1台は詳細不明のジャンク品です。

1台は起動はしないもののPINGが通るのが確認できたので、再起動直後にTFTPでファームを送り込んでみたところ、簡単に復帰できました。
もう1台は、電源は入るもののLANのランプが全点灯したままでPINGも通らない状態でした。
そこで以下のサイトの情報をもとにリカバリーを試みることにしました。

WHR-HP-G54の開け方
サイトに書いてあるとおりですが、側面のネジが特殊で普通のドライバーでは外せません。T9サイズのトルクスレンチが必要です。
T9が入手できなかったのでT10でどうにか開けました。あと爪の外し方がパズルみたいです。

シリアルコンソール
WHR-HP-G54の基盤とシリアルピン(参考)
シリアルコンソール(参考)
シリアルレベルコンバータ(参考)
UP12 USB-PDC Converter(参考)
シリアル入出力は必須ではありませんが、起動時の状態をみるのに面白そうだったので準備しました。
ケータイマスターケーブル(UP12 USB-PDC Converter)を使用
Magic Control Technology(MCT)の、U232-P9のドライバを使用
線の色と信号 黒:GND 、緑:RxD 、白:TxD
ボード側 ピン位置と信号
Connector J1
        |
   rx ○ |
   tx ○ |
  gnd ○ |
  vcc ○ |
――――――
115200 8-N-1 フローなし
モニタには teraterm を使用


フラッシュメモリーの壊れたWHR-HP-G54のリカバー方法 を参考にやってみました。

1:フラッシュメモリーの12番ピンをショートさせてリセットをかける方法
何度かやっていたらPINGに応答するようになりました。TFTPでファームを送って見ましたが、途中でエラーになり、その後は2度と反応しなくなりました。残念。

2:JTAGを使ってフラッシュメモリーを書き換える方法
上記サイトに載っている第2の方法を試すことにしました。
JTAGケーブル製作
JTAGアクセス(参考)
JTAG_Cable(参考)
部品屋さんで100Ω抵抗とDSub25Pinコネクタ等を買ってきました
ケーブルはLANケーブルを切って使用し、結線は以下のようにしました

DSub25Pin = JTAG
2 = 3 (100Ω)
3 = 9 (100Ω)
4 = 7 (100Ω)
13 = 5 (100Ω)
20+25 = 2+4+6+8

パラレルポート(プリンタポート)が必要ですが、最近のPCには付いていないので、古いノートパソコンを押入れから出してきました。
パラレルポートに何か繋いで制御するのは昔PC98全盛時代によく雑誌で見たものでした、懐かしい気分です。
ケーブルを作ったら、基盤にJTAGのピンを立てないといけません。余った抵抗の足をハンダ付けしました。


読み書きには次のソフトを使用します。バージョン48です。
HairyDairyMaid_WRT54G_Debrick_Utility_v48.zip     別のところ
giveio.sysをインスツール
giveio.sysをC:\WINDOWS\system32\drivers(C:\WINNT\system32\drivers)にコピー
LoadDrv.exeを起動しフルパスを指定[C:\WINDOWS\system32\drivers\giveio.sys] Install Start を順に押す

コマンドプロンプト立ち上げwrt54g.exeのあるディレクトリに移動
コマンド /noemwが無いと途中で止まる /fc:29が必要
領域の説明
nvram:設定が書き込まれている部分
kernel:動作プログラムが書き込まれている部分
cfe:起動プログラム(PCならBIOSみたいな部分)が書き込まれている部分

nvramの不良が起動しない原因のことが多いらしいのでnvramの消去をまず試します。
wrt54g -backup:nvram /noemw /fc:29……nvramをバックアップ
wrt54g -erase:nvram /noemw /fc:29……nvramを消去
起動せず。

wrt54g -erase:wholeflash /noemw /fc:29……フラッシュの全領域消去
wrt54g -flash:cfe /noemw /fc:29……cfeの書込
cfe.binはTomatoが動いているルーターから取得できます。
 Debugging (Miscellaneous)
  Download CFE:
起動せず。

kernelにtomato.trxをリネームして書込んでみました。4時間かかりました。
wrt54g -flash:kernel /noemw /fc:29……kernel.bin(tomato.trxをリネーム)の書込
最初は起動せず。しばらく放っておいたら何と起動するようになりました!!

シリアルの出力も特に異常はなく、WEB画面での設定も普通にできるようになりました、電波もちゃんと出るようになりました。
喜んだのも束の間、しばらくすると止まってしまいます。何度か試しましたが最初は動作しますが時間がたつと止まってしまいます。
PCなら熱暴走?を疑いますが、なにかハードに障害があるようです。残念ながらこちらは通常使用はできませんでした。




ケータイマスターのケーブルです。




ファームを書き込んでいるところです。

最初はジャンクを修理して使えば安上がりと思って始めたのに、途中から完全に手段が目的になってしまっていますが、まあ細かいことは気にしない、ということで。




2009/12/30

TOPに戻る