2015年3月12日木曜日

Buffalo WHR3-AG54 で DD-WRT が復活

昨日 DD-WRT ファームウェアの設定で、何故か動作しなくなってしまった WHR3-AG54 ですが、分解を行なって、シリアルコンソールから復旧させることに成功しました。


以前にもシリアルコンソールで復旧させた WLAH-G54 と同様に NVRAM の異常により、起動が阻害されて PMON のモニタ部分で停止していました。WLAH-G54 の時とは違ったアドレスとなりますが、所定の NVRAM のアドレスを二箇所(Main, Sub)消去によって復旧しました。具体的な作業は以下の通りです。

分解・掃除

前回 WHR2-A54G54 で苦労した筐体の分解作業ですが、今回は爪の位置もしっかり把握しているので、爪の解除も難なく行なって、内部のプリント印刷基盤を取り出すことができました。以下はプリント印刷基盤の記念写真です。Broadcom BCM4309 チップの Mini PCI カードが搭載されていました。Tomato ファームウェアでは WHR2-A54G54 でも BCM4309 チップ側のデバイスを認識できませんでしたが、この WHR3-AG54 では、この認識出来なかった BCM4309 チップのデバイスしか存在していなかったので、無線 LAN 環境が使えない状態となっていた模様です。


せっかく分解したので、内部の掃除から始めました。筐体の表面はすでに綺麗に掃除をしていましたが、内部はまだだったので非常に汚れていました。筐体のプラスチック部品は、レンジ周り用のアルカリ洗剤でしっかりと汚れを落としました。バッファローの無線LANルータに特有のことなのですが、MAC アドレスなどが、普通の紙で出来たシールに印刷したものを張り付けているだけなので、このような洗浄を行なってしまうと、シール表面の表示が流れ落ちてしまいます。洗浄の前には事前にメモに控えておくか、写真に撮影しておくことをお奨めします。

筐体の内側の様子です。プラスチック特有のホコリが付着しています。
レンジ周り用のアルカリ性洗剤でしっかり汚れを落とします。
最後はしっかりシャワーで水洗しておきます。

シリアルコンソールのための加工

シリアルコンソールの端子は、いつものように IC8 の場所にある4ピンのホールへピンヘッダをハンダ付けしました。そして IC8 のパターンの中の二箇所をハンダブリッジ(#7-#8 と #11-#12-#13)でショートさせました。詳しくは WLAH-G54 と同じのため、そちらの記事を参照してください。
Buffalo WLAH-G54 が Shibby 版 Tomato ファームウェアで復活
http://near-unix.blogspot.jp/2014/12/buffalo-wlah-g54-shibby-tomato.html
WHR3-AG54 へ行ったシリアルコンソール接続の加工の様子です。

シリアルコンソールで制御

WHR3-AG54 のシリアルコンソールの準備が出来たところで、パソコン(Debian Wheezy)と WHR3-AG54 を USB シリアルケーブル(PL2303HX搭載)で接続して、パソコンの仮想端末から cu コマンドを使って WHR3-AG54 の出力の様子を観察してみました。なお WHR3-AG54 は、WHR2-A54G54 とは違って、ちゃんとシリアスコンソールによる通信が可能でした。

# chown uucp /dev/ttyUSB0
# cu -l /dev/ttyUSB0 -s 115200

(参考)終了時は、チルダ(~)+ピリオード(.)で終了します。リターンは不要です。
 PMON> ~.
USB シリアルケーブルを WHR3-AG54 へ接続したところです。

WHR3-AG54 の電源を投入すると起動時からの出力が流れて行きますので、これをつぶさに観察しました。出力された内容は長いため、今回注目した部分を掲載します。

Connected.
** Bad CRC
crc=7  stored=a6
Flash type "ST 29DW324DB 2Mx16 BotB"
  Main(bc3f8000) NVRAM is Bad!
   Sub(bc3e8000) NVRAM is good

上記のように、CRC エラーが発生しており、メインとなる Main(bc3f8000) NVRAM の部分が異常となっていました。そしてサブとなる Sub(bc3e8000) NVRAM は正常となっていました。

そこで WLAH-G54 と同じように nvErase コマンドで、問題の Main(bc3f8000) NVRAM の部分を消去してみました。

PMON> nvErase 0xbc3f8000 0x20000

すると一部アドレスで異常の表示が出ましたが、終了しました。再起動させてどのようになったのか確認しました。

残念ながら、前回と同じように PMON のモニタの部分で停止してしまいました。

そこで今回は、正常と表示されていた Sub(bc3e8000) NVRAM も一緒に消去してみました。

PMON> nvErase 0xbc3f8000 0x20000
PMON> nvErase 0xbc3e8000 0x20000

すると、今度は前回とは違った表示がシリアルコンソールに出力されて、無事に DD-WRT ファームウェアが起動しました。そしてパソコン側からブラウザで 192.168.1.1 へアクセスすると、設定画面へアクセスすることができました。そして設定画面を確認すると、前回異常値が各所に事前入力されていましたが、今回は普通の DD-WRT の初期値が設定されていました。

そして何より嬉しかったことは、5GHz 帯の IEEE 802.11 a モードの設定が出来たことと、そして無事に通信も可能であったことです。なお 5GHz 帯は、国際規格の W52 と W53 のチャンネルが設定できました。Tomato や DD-WRT のファームウェアをインストールする前は J52 チャンネルであったので、どうもチャンネルの制御はファームウェアの部分で行なっている模様でした。

残念なことは、2.4GHz 帯の設定ができなくなっていることでした。IEEE 802.11 b/g のモードを設定したとき、チャンネル選択で "Auto" (自動)しか表示されねくなり、設定も見かけ上 IEEE 802.11 b/g モードとなっていますが、実際には 5GHz 帯の IEEE 802.11 a モードで動作していました。[System Info] や [Status]-[Wireless] の項目で確認すると G-Only の表示となっていますが、チャンネルが 36 チャンネルと 5GHz 帯で動作しているのは解ります。今までは 2.4GHz と 5GHz の二つの帯域を装備している無線 LAN ルータの場合、2.4GHz 帯だけが有効であったことが多かっただけに、ちょっと不思議な感じとなりました。

結果

WHR3-AG54 については、5GHz 帯の IEEE 802.11 a モードしか使用できませんが、DD-WRT のファームウェア(Broadcom VINT std-Webflash image = dd-wrt.v24-13941_VINT_std.bin)を使用するのが正解のようです。2.4GHz 帯も 5GHz 帯も認識できなかった Tomato ファームウェアや OpenWrt とは相性がよくないようです。

以上のことから、まだ復旧していない WHR2-A54G54 については、DD-WRT をインストールしてみたいと思っています。2.4GHz 帯のデバイスと 5GHz 帯のデバイスの両方を持っていて、5GHz のデバイスが認識できることから、2.4GHz 帯と 5GHz 帯の両方が利用もできるのはないかと期待しています。

0 件のコメント:

コメントを投稿

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