「BHR-4RVのCFEリストア方法」の編集履歴(バックアップ)一覧に戻る
BHR-4RVのCFEリストア方法 - (2012/09/02 (日) 16:14:43) のソース
<p>BHR-4RVのブートローダ―にはBuffaloがカスタマイズしたCFEが使われています。</p> <br /><p>何らかの理由で当ブートローダ―を破壊してしまった場合、シリアルコンソールでの</p> <br /><p>操作もできなくなりますが、JTAGを使用することで復旧できる場合があります。</p> <br /><p>またシリアルコンソールも、スルーホールに接続しただけでは使用できませんので</p> <br /><p>その使用手順についても併せて解説します。</p> <br /><br /><p><u>●シリアルコンソール使用手順</u></p> <br /><p>BHR-4RVの基板上にはシリアルコンソール用のスルーホールが存在していますが</p> <br /><p>RS232-TTLレベル変換ICであるSP3220Eが未実装(=シリアルコンソール未結線)と</p> <br /><p>なっているため、少々小細工が必要になります。</p> <br /><p>具体的にはSP3220Eの空きパターン上の必要な箇所をブリッジ接続することによって</p> <br /><p>シリアルコンソールのスルーホールでTTLレベルの信号が得られるようにします。</p> <br /><br /><p>シリアルコンソールは基板上にJ1と印刷されたスルーホールです。</p> <br /><p>リセットスイッチが左側を向いている位置(J1の印刷が天地逆)状態で</p> <br /><p>左から順に"TxD / RxD / NC / GND"です。</p> <br /><br /><p>SP3220Eは基板上にIC18と印刷された空きパターンです。</p> <br /><p>ピンの数え方は目印の半月状の欠けが上を向いた状態で、左上から反時計回りに</p> <br /><p>1→8(折り返して)9→16です。このうち8-9ピンと11-13ピンをそれぞれ接続することで</p> <br /><p>TTLレベルのシリアルコンソールが使用できるようになります。</p> <br /><br /><br /><p><u>●JTAGによるCFEの復旧</u></p> <br /><p>前述の通りBHR-4RVにはカスタマイズされたCFEがブートローダ―として</p> <br /><p>使用されています。Linksys WRT54GシリーズはCFEの生成用ソフト等もあるようですが</p> <br /><p>BHR-4RVで動作するCFEを生成することは難しいようです。</p> <br /><p>その為、事前にCFEのバックアップを取っておくことが重要になります。</p> <br /><p>万一バックアップを取っていなかった場合、違うBHR-4RVからJTAGを用いてファームを</p> <br /><p>吸出して移植することができますが、そのままでは吸出し元と同じMACアドレスに</p> <br /><p>なってしまいます。</p> <br /><br /><p>BHR-4RVのJTAGは基板上にCN10と印刷されたスルーホールです。</p> <br /><p>必要なピンは印刷されている番号に従って以下の通りです。</p> <br /><p> 3 - TDI</p> <br /><p> 5 - TDO</p> <br /><p> 6 - GND</p> <br /><p> 7 - TMS</p> <br /><p> 9 - TCK</p> <br /><p>JTAGケーブルは、"WRT54G EJTAG DeBrick Utility"のドキュメントに含まれる</p> <br /><p>回路図を参考に自作してください。EJTAGはgiveio.sysに依存しており</p> <br /><p>PCにパラレルポートが必須です。</p> <br /><p>また、64bit版のgiveio.sysは現時点で提供されていません。</p> <br /><p>http://www.dd-wrt.com/site/support/other-downloads</p> <br /><p>上記のファイルに含まれるバイナリではBHR-4RVには使用できないため</p> <br /><p>別途mod版のファイルを入手する必要があります。</p> <br /><p> http://download.modem-help.co.uk/utilities/JTAG/Software/Tjtag/v1-0--v4-8-1-/Tjtag.zip.php</p> <br /><br /><p>自作したJTAGケーブルでBHR-4RVと接続し、BHR-4RVの電源を入れた状態で</p> <br /><p>コマンドプロンプト上から以下のコマンドを入力するとカレントディレクトリ上に</p> <br /><p>バックアップイメージファイルが出力されます。</p> <br /><p> >"tjtag.exe" -backup:cfe /fc:63</p> <br /><p>出力されたイメージファイルを"CFE.BIN"にリネームして、今度は復旧させたい</p> <br /><p>BHR-4RVにJTAGケーブルを接続し、以下のコマンドを入力するとCFEが書き込まれます。</p> <br /><p> >"tjtag.exe" -flash:cfe /fc:63</p> <br /><p>ただこのツールはBHR-4RVに搭載されたフラッシュメモリに正式に対応していないらしく</p> <br /><p>時々不安定な挙動をします。フラッシュの消去が進まない等のおかしな動きをする場合は</p> <br /><p>消去中にBHR-4RVの電源を再投入するなどの荒業が必要な場合があります。</p> <br /><br /><br /><p><u>●MACアドレスの書き換え</u></p> <br /><p>ここまでの方法でCFEのブートまでは出来るようになっていると思います。</p> <br /><p>ただしこれだけでは、復旧したBHR-4RVのMACアドレスが、吸出し元のものと</p> <br /><p>同じになってしまいます。そこでバイナリエディタを用いてMACアドレスを書き換えます。</p> <br /><br /><p>吸いだしたイメージファイルをバイナリエディタで開くと、0x1014~0x1290の範囲に</p> <br /><p>設定項目が記載されていますので、eth0(LAN)とeth1(WAN)の値をBHR-4RVの</p> <br /><p>筐体に貼られているシールと同じに書き換えて保存してください。</p> <br /><br /><p>しかしこの状態のイメージをBHR-4RVに書き込んでも、CRCチェックによって</p> <br /><p>弾かれてしまいます。具体的には以下のようなメッセージです。</p> <br /><p> ** Bad CRC</p> <br /><p> crc=84 stored=19</p> <br /><p>このメッセージは「正しいCRCの値は84だが、現在書き込まれている値は19である」</p> <br /><p>といった意味です。そこでMACアドレスを変更済みのバイナリを再度バイナリエディタで</p> <br /><p>開くと、0x408のアドレスにstored=と同じ値(今回は19)が書き込まれていると思います。</p> <br /><p>これをcrc=と同じ値(今回は84)に書き換て保存します。</p> <br /><br /><p>こうして出来上がったイメージファイルをJTAG経由で再度書き込めば、今度は</p> <br /><p>CRCチェックで引っかかることも無く、CFEが正しくブートすると思います。</p> <br /><p>MACアドレスは各機器ごとにユニークな値ですので、この方法を用いてご自身が</p> <br /><p>所有している機器以外のMACアドレスに変更することはお控えください。</p> <br /><br />