GeekFactory

int128.hatenablog.com

WZR-HP-AG300Hのファームウェアを書き換える (macOS)

macOSでWZR-HP-AG300Hのファームウェアを書き換える方法を説明します。DD-WRTの書き込みや純正ファームへの書き戻しに使えます。

まず、WZR-HP-AG300HのLAN側ポートを有線LANでMacBookに接続します。IPアドレスは以下を設定します。

WZR-HP-AG300Hは電源を入れておきます。

NICのインタフェース名を確認します。ここでは en2 とします。

$ ifconfig
en2: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

APRテーブルを手動で設定します。

sudo arp -s 192.168.11.1 02:AA:BB:CC:DD:20 en2
$ arp -a
? (192.168.11.1) at 2:aa:bb:cc:dd:20 on en2 permanent [ethernet]

ここで、WZR-HP-AG300Hの電源を入れ直します。すると、数秒後にTFTPのアップロードを実行できるタイミングが来ます。

  1. USBコネクタのLEDが光る(2〜3秒)
  2. USBコネクタのLEDが消える
  3. EthernetポートすべてのLEDが光る(2〜3秒)
  4. EthernetポートすべてのLEDが消える
  5. MacBookと接続しているポートのLEDが光る
  6. TFTPのアップロードを実行できる(4秒間)

下記の記事が分かりやすいので参照してみてください。

koyama4284.blogspot.com

TFTPのアップロードを実行できるタイミングがきたら以下を実行します。

echo -e "verbose\nbinary\nput wzr_hp_ag300h_jp_175" | tftp 192.168.11.1

MacBookと接続しているポートのLEDが光ったら何回か実行してみてください。以下のように、最初の数回はエラーが出ると思います。

% echo -e "verbose\nbinary\nput wzr_hp_ag300h_jp_175" | tftp 192.168.11.1
Verbose mode on.
mode set to octet
putting wzr_hp_ag300h_jp_175 to 192.168.11.1:wzr_hp_ag300h_jp_175 [octet]
tftp: sendto: Can't assign requested address

% echo -e "verbose\nbinary\nput wzr_hp_ag300h_jp_175" | tftp 192.168.11.1
Verbose mode on.
mode set to octet
putting wzr_hp_ag300h_jp_175 to 192.168.11.1:wzr_hp_ag300h_jp_175 [octet]
Sent 20472060 bytes in 9.4 seconds [17423030 bits/sec]

TFTPのアップロードが完了したら、正面のLEDが赤色になってファームウェアの焼き込みが始まります。数分後に正面のLEDが緑色になれば成功です。

先ほど設定したARPテーブルのエントリを削除します。

sudo arp -d 192.168.11.1

ブラウザで http://192.168.11.1 を開くと見慣れた設定画面が表示されるはずです。