文鎮化したWZR-1750DHPの修理

文鎮化したWZR-1750DHP(Buffaloの802.11ac対応WiFiルータ)が手に入ったので修理してみました。

なぜ文鎮化したかですが、直接私が何かしたわけではないので詳しくはわからないのですが、
DD-WRTというCFW(Custom Firm-Ware)上でNVRAMいぢったりとかしたら文鎮化したらしいです。

簡単に手順を書いておくと、

  1. 殻割り(外装をバラして基板に直接アクセスできるようにします)
  2. UARTを探す(大抵デバッグとか修理用にUARTでconsole接続できるようになっている)
  3. UARTをつないでconsole出力を眺める(どんなブートローダーかなーとか)
  4. NVRAMをクリアする
  5. 再起動→NVRAMが修復される
  6. 再起動→DD-WRTが復活するやったー!

という感じです。

殻割り

殻割りの手順としてはこんな感じです。

  1. 裏面のシール(USBとか書いてあるやつ)を剥がします。
  2. トルクスドライバ(T6)でネジをはずします。
  3. LANのポートを見ると、隙間から基板が見えるので、基板が見える側を下にした状態にします。
  4. シルバーグレイの枠が、裏面の本体側と爪で固定されているので、爪を浮かして、下側(基板側)に少しずらしておきます(上側だと後で蓋をあけるときに邪魔になるので)。
  5. シルバーグレイの枠が外れると、蓋と外装の間に隙間ができるので、そこにマイナスドライバを差し込んで、外装内側の爪を浮かせながら蓋を外していきます。
  6. すべての爪がはずれると、あとは冷却用の金属板が両面テープで固定されているだけの状態になるので、両面テープをぺりぺり剥がします。

http://instagram.com/p/aLuNtsv60J/
裏面のシールをはがすとネジが見えています。

f:id:crimsonwoods:20130608195651j:plain
判りづらいですが、バーコードのシールの角のあたりにシルバーグレイの枠から本体内側に向かって爪が出ているのが見えます。
これをはずすときは、枠と外装の間にマイナスドライバを差し込み、蓋を上に浮かせながら枠を外に向かって押し出します。

f:id:crimsonwoods:20130608195746j:plain
本体外装の内側についている爪です。
これを蓋からはずすときは、外装と蓋の隙間にマイナスドライバを差し込み、外装部分を外側に引っ張りながら蓋を浮かせるように押し上げます。

f:id:crimsonwoods:20130608200046j:plain
最後に冷却用金属板の両面テープを剥がします。

UART接続

UARTの接続は下記のような手順で行います。

  1. 基板が露出したら、4本のピンが立っているところを探します。シルクには「J14」とあり、ファクトリーリセットボタンの比較的近くにあります。
  2. 4本のピンは▽マークがある場所から純にVCC,GND,TX,RX(TXとRXは逆かも)と並んでいるので、これをレベル変換基板やUSB-UARTを挟んで(私はCPUを抜いたArduinoをよく使います)PCに接続します。
  3. TeraTermなどのTerminal Emulatorで「115200bps, 8bit, パリティ無し, 1ストップビット」に設定します。

f:id:crimsonwoods:20130608202309j:plain
画像中央辺りにある4本のピンがUART用のピンになります。

NVRAMの消去

NVRAMの消去はBootloaderから行います。

  1. 本体に電源を投入します。
  2. UARTにBootloaderのログが出力されます。
  3. Flashからの起動に失敗したら、「Ctrl+C」を押して、対話モードに移行します。
  4. 「nvram erase」と入力して、NVRAMを消去します。
  5. 電源を切って再起動します(私の場合はここでなぜか一度起動に失敗したのでさらに再起動をしています)。
  6. NVRAMが修復されて、DD-WRTが起動すれば成功です。

https://pbs.twimg.com/media/BMPAhwvCEAA4plO.png
起動時のBootloaderはこんな感じの出力を行います。

f:id:crimsonwoods:20130608234813p:plain
何かを修復しているような感じの出力が出ました。

おまけ

WZR-1750DHPは、電源投入直後にAOSSボタンを暫く押しっぱなしにすることで、tftpによるfirmware更新モードで動作します。
NVRAMが壊れていなければ、通常はこのtftpによるfirmware updateでファームウェアが書き換えられるのではないかと思います。

https://pbs.twimg.com/media/BMPDoZqCUAEeLEC.png
192.168.11.2からfirmware.ramというファイルをtftpで取得しようとしているのが判ります。

https://pbs.twimg.com/media/BMPay_hCEAEFdEc.png
WZR-1750DHPで使用されているCFEというBootloaderで使用出来るコマンドの一覧です。