JTAG により復旧させた WHR2-A54G54 です。 DD-WRT では、起動に 1 分程度の時間が掛かります。 |
作業に当たっては DD-WRT と OpenWrt の JTAG のページを参考にしました。
dd-wrt.com JTAG
http://www.dd-wrt.com/wiki/index.php/JTAG
OpenWrt Wireless Freedom JTAG
http://wiki.openwrt.org/doc/hardware/port.jtag
JTAG 用のピンヘッダ (2x6) を取り付けました。 すぐ脇の台座が水色のピンヘッダはシリアルコンソール用です。 |
JTAG で作業
昨日、製作したプリンタ・ポートを利用する JTAG ケーブルと JTAG 制御用ソフトウェアの HairyDairyMaid_WRT54G_Debrick_Utility を使いました。このツールの関係で、いつもの Debian Linux などではなく、Windows XP を使用して作業を行いました。HairyDairyMaid_WRT54G_Debrick_Utility の使い方の説明はこの記事では行いませんのでご了承ください。プリンタ・ポートと JTAG ソフトウェアの wrt54g.exe の間を繋ぐドライバ giveio.sys のインストールと起動が事前に必要なことが注意点です。私もハマりました(笑)。HairyDairyMaid_WRT54G_Debrick_Utility_v48.zip
http://sourceforge.net/projects/zjtag/files/hairydairymaid/v4.8/
JTAG 用ケーブルを接続して制御を行なっているところです。 |
JTAG で NVRAM の消去を試みる
具体的な作業としては、最初に NVRAM の消去を行いました。しかし、再起動しても OpenWrt が起動することはありませんでした。wrt54g.exe -erase:nvram
====================================
WRT54G/GS EJTAG Debrick Utility v4.8
====================================
Probing bus ... Done
Instruction Length set to 8
CPU Chip ID: 00000100011100000100000101111111 (0470417F)
*** Found a Broadcom BCM4704 Rev 8 CPU chip ***
- EJTAG IMPCODE ....... : 00000000100000000000100100000100 (00800904)
- EJTAG Version ....... : 1 or 2.0
- EJTAG DMA Support ... : Yes
Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ...... Done
Clearing Watchdog ... Done
Probing Flash at (Flash Window: 0x1fc00000) ... Done
Flash Vendor ID: 00000000000000000000000011000010 (000000C2)
Flash Device ID: 00000000000000000010001010100111 (000022A7)
*** Found a MX29LV320T 2Mx16 TopB (4MB) Flash Chip ***
- Flash Chip Window Start .... : 1fc00000
- Flash Chip Window Length ... : 00400000
- Selected Area Start ........ : 1fff0000
- Selected Area Length ....... : 00010000
*** You Selected to Erase the NVRAM.BIN ***
=========================
Erasing Routine Started
=========================
Total Blocks to Erase: 8
Erasing block: 64 (addr = 1fff0000)...Done
Erasing block: 65 (addr = 1fff2000)...Done
Erasing block: 66 (addr = 1fff4000)...Done
Erasing block: 67 (addr = 1fff6000)...Done
Erasing block: 68 (addr = 1fff8000)...Done
Erasing block: 69 (addr = 1fffa000)...Done
Erasing block: 70 (addr = 1fffc000)...Done
Erasing block: 71 (addr = 1fffe000)...Done
=========================
Erasing Routine Complete
=========================
elapsed time: 3 seconds
*** REQUESTED OPERATION IS COMPLETE ***
JTAG で NVRAN と カーネル の消去を試みる
そこで NVRAM と一緒に KERNEL も消去してみました。どうも NVRAM と KERNEL を消去することで、バッファロー社の無線 LAN ルータは再び TFTP による流し込みインストールが可能となる場合が多いとの情報があったためです。wrt54g.exe -erase:nvram
wrt54g.exe -erase:kernel
TFTP で流し込みインストール
再起動の時、TFTP による流し込みインストールの準備を行なってみました。一度目の TFTP インストールはタイムアウトで失敗しました。再び挑戦すると、今度は TFTP の流しこみを受け付けて、インストールに成功しました。インストールしたファームウェアは、WHR3-AG54 で 5GHz 帯が動作した DD-WRT (Broadcom VINT std-Webflash image = dd-wrt.v24-13941_VINT_std.bin)です。なお流し込み先の IP アドレスは、バッファロー社 初期 IP アドレスの 192.168.11.1 でした。インストールが終了した後、インストールを行ったパソコンの IP アドレスの再設定を行ったところ WHR2-A54G54 の DD-WRT から IP アドレスの配信(192.168.1.100)を受けました。そしてブラウザで 192.168.1.1 へアクセスしたところ、ちゃんと設定画面へとたどり着きました。また、すでに設定済みの初期値も異常な値ではなく、一般的な DD-WRT の初期値となっていました。DD-WRT のインストールも正常に成功していました。
早速、無線LAN環境を確認してみると、ちゃんと無線デバイスが二つある表示となっていました。そして設定も行えました。しかし 5GHz 帯のものしか通信が出来ませんでした。何故か 2.4GHz のものは、電波が発射され ESSID も確認ができるのですが通信が出来ないのです。それもセキュリティ無しの状態でもです。
5GHz 帯の動作を示す WIRELESS 1 の LED ランプが点滅していました。 |
2.4GHz 帯は Tomato ファームウェアでちゃんと通信が出来ていただけに、ちょっと納得の出来ないところです。今後の課題としたいところです。
今回 JTAG で復旧した WHR2-A54G54 (左)と シリアルコンソールで復旧した WHR3-AG54 (右)です。 |
分解時に爪を折ってしまった WHR2-A54G54 の天板のカラー部品です。 固定できないため、透明フィルムベースの両面テープで固定してみました。しかしテープの場所がしっかり判ります(笑)。 |
JTAG 用ソフトウェア
さて今回の JTAG での作業ですが、ソフトウェア探しで苦労しました。OpenOCD
当初は Debian Wheezy にもある OpenOCD の使用を考えていました。しかしどうも使い方が解らないのです。ターゲット設定ファイルが必要なのですが、BCM4704 に必要な設定が、バージョン 0.5.0 に見当たらないのです。そこで BCM47xx.cfg というターゲット設定ファイルが存在するバージョンの 0.8.0 をソースコードからビルドしてインストールしてみました。しかしターゲット設定ファイルの bcm47xx.cfg に問題があるようで、エラーで停止してしまいます。現時点では、私には問題解決が難しそうでした。UrJTAG
他にはないかと調べてみると UrJTAG がありました。とりあえず動作もするようですが、ターゲットとなるハードウェアの検査(プローブ)さえ出来ないのです。何か動作しているのですが、結果とあるプロセッサなどの情報が戻ってこないのです。HairyDairyMaid_WRT54G_Debrick_Utility
このまま行き詰ってしまうのかと頭を悩ませてしまいました。もしかして JTAG ケーブルに問題があるのでは・・・との思いもありました。そこでネット上で WHR2-A54G54 を JTAG 制御している記事を発見して、そこで使われているソフトウェアのHairyDairyMaid_WRT54G_Debrick_Utility を使ってみることとしました。名前から Linksys WRT54G シリーズの無線 LAN ルータを対象としたソフトウェアのようですが、ブロードコム社のチップであれば、だいたい動いてしまうようです。上記の記事のように、無事に JTAG 制御を行うことができて、それも JTAG ケーブルも問題なく?動作していることが確認出来ました。
JTAG ケーブルについては、D-SUB 25 Pin のコネクタが古くなっていて、接触が思わしくなく、無線LANルータのフラッシュメモリのデータバックアップ中に DMA エラーが発生することもありました。そのため、確実を期すために、連続して二回バックアップ作業を行なって、それぞれのハッシュ(md5)を比較して、同じ値であることを確認した上でバックアップデータとしました。なおバックアップしたデータは、フラッシュメモリ全体とフラッシュメモリの先頭部にある CFE と呼ばれる部分です。
wrt54g.exe -backup:cfe4MB のフラッシュメモリ全体のバックアップには、およそ20分から30分の時間が掛かりました。
wrt54g.exe -backup:wholeflash
参考ブログ
あたらし物好きの実験ブログ WHR2-A54G54 その1
http://yasuz2.blog80.fc2.com/blog-entry-19.html
あたらし物好きの実験ブログ WHR2-A54G54 その2
http://yasuz2.blog80.fc2.com/blog-entry-20.html
あたらし物好きの実験ブログ WHR2-A54G54 一歩前進
http://yasuz2.blog80.fc2.com/blog-entry-21.html
あたらし物好きの実験ブログ WHR2-A54G54 復活
http://yasuz2.blog80.fc2.com/blog-entry-22.html
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。