WHR-G301N を TFTP で DD-WRT から純正ファームウェアに戻す

タイミング合わせが難しい

TFTP を受け付けるタイミングがシビアなので結構しんどい
DD-WRT Wiki にやりやすい方法が載っていた

方法

WHR-G300N V2 - DD-WRT Wiki
サイト内 "Going back to Buffalo Firmware" の項目を手順通り行うと簡単に純正ファームウェアに戻せる

以下簡単に翻訳したものを記載

1. バッファロー純正ファームウェアを公式サイトから入手する

ソフトウェア ダウンロードサービス | BUFFALO バッファロー

2. Ubuntu に TFTP をインストールする

sudo apt-get update  
sudo apt-get install tftp

3. ルーターの底面にあるリセットボタンを10秒以上長押しして初期化

4. ルーターからすべてのLANケーブルと電源ケーブルを抜く

5. ルーターの電源を切ったままコンピュータとルーターをLANケーブルで接続する

6. NetworkManager を無効化する

sudo service network-manager stop

7. イーサネットインターフェースの IP アドレスを"192.168.11.2" に設定する

sudo ifconfig インターフェース名 192.168.11.2

インターフェース名の例 : eth0

8. サブネットマスクを "255.255.255.0" に設定する

sudo ifconfig インターフェース名 netmask 255.255.255.0

9. ルーターIPアドレスMACアドレスarp で指定

sudo arp -s 192.168.11.1 ルーターのMACアドレス

MACアドレスの例 : 00:00:00:00:00:00

10. TFTP の準備

tftpを実行

tftp

Verbose モードをオンに設定

tftp> verbose
Verbose mode on.

Binary モードをオンに設定

tftp> binary
mode set to octet

trace をオンに設定

tftp> trace
Packet tracing on.

パケット毎の再送タイムアウト時間を1秒に設定

tftp> rexmt 1

タイムアウトを60秒に設定

tftp> timeout 60

11. TFTP を 192.168.11.1 に接続(ルーターの電源はまだ入れない)

tftp> connect 192.168.11.1

ここでLANケーブルがルーターのWANポートではなくLANポートにつながっているか確認する(WANポートは青のポート)

12. TFTP でファームウェアを送信する

tftp> put ファイル名

ファイル名の例 : whrg301n-186

13. ルーター電源ケーブルを接続する

12 のコマンドを入力したらなるべく速めに
(とはいえタイムアウトを60秒に設定しているから十分余裕がある)

14. ファームウェアの送信が完了したら5~10分程度待つ

15. ワイヤレスの LED が点灯したら完了

16. NetworkManager を有効化する

まとめ

この方法だとタイミング合わせを TFTP がやってくれるので非常に楽で失敗がない(というか今までうまくできなかった)