Yuichiro_S の Twitterでは文字数が足りないもの

Twitterに書くには向いてないことを書きます。文字数制限だとか、検索に引っかからないだとか、流れてしまって読んでもらえないだとか。

Buffalo WZR-HP-AG300Hのtftpによる復旧

概要

Buffalo WZR-HP-AG300Hに間違えたdd-wrtファームウェアを焼いて文鎮化しかけたので,その復旧方法をメモしておきます.

http://wiki.openwrt.org/toh/buffalo/wzr-hp-ag300h に書いてあるのと内容は基本的に同じだと思って下さい.

前置き

このルータは,LANポートの初期化後,数秒間だけ(4秒間?)tftpでのファームウェア書き換えを受け付けます. tftpでのファームウェア書き換えは以下の条件でのみ受け付けます.

  • ルータのLANポートに,MACアドレス 02:aa:bb:cc:dd:20に向けて送信する.
  • ルータのLANポートに,192.168.11.1に向けて送信する.
  • 192.168.11.2からの送信.
  • ファイル名にtftpを含む.

手順

今回はOS Xから行いました.

  • ルータからすべてのLANケーブルを抜き,MacBook Pro(適当に読み替えてください)とLANケーブルでLAN 1ポートに直結します.MacBook Proに192.168.11.1/24を固定で割り当てます.
  • OS X上で

$ sudo arp -s 192.168.11.1 02:aa:bb:cc:dd:20

と実行し,MACアドレスIPアドレスを関連付けます(この表現が適切かどうかはわかりません).

$ netstat -r -n

を実行して

  Routing tables
 
Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
192.168.11.1       2:aa:bb:cc:dd:20   UHLS            0        0     en0
192.168.11.2       127.0.0.1          UHS             1        0     lo0

となっていれば大丈夫です.

  • Buffalo公式のファームウェアをダウンロードし,tftp.binにリネームします.

  • エディタ等で以下の内容を作成し,クリップボードにコピーします.最後に改行を含むようにします.

connect 192.168.11.1
binary
rexmt 1
timeout 1
put tftp.bin
  • tftpをターミナルで起動します.ルータの電源を入れ,イーサネットがリンクしたタイミングで(Hardware Growlerを使用しているとわかりやすい),tftpに4. でコピーした内容をペーストして実行します.最後に改行を含むようにしていれば,ペーストしただけで実行されるはずです.タイミングがズレて失敗したら,成功するまで繰り返しペーストします.

  • 転送に成功したら,ルータが再起動して起動完了するまで5分祈ります.

  • 最後に

$ sudo arp -da

してルーティングテーブル(2. で設定した)を掃除します.