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

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

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

方法

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

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

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

WHR-G301N : ソフトウェア | バッファロー

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がやってくれるので非常に楽で失敗がない(というか今までうまくできなかった)