Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@somainit

シリアル接続でWZR-600DHP2に、DD-WRTやOpenWrtを焼いてみた

はじめに

BUFFALO WZR-600DHP2にWeb-GUIからDD-WRTをインストールしようとしたら、またもや再起不能になりました。やっちゃいました文鎮化。ツイてない!
でも大丈夫。箱を開けてシリアル接続すれば、意外と簡単に復旧させることができます。WZR-HP-G301NHと比べると雲泥の差です。ブートローダが賢くなっています。
さらに同じ方法でDD-WRTもOpenWrtもインストールできます。よかった!

参考:

まずはこれ

自己責任でお願いします。

箱を開けます

ここが一番の難所です。

参考:

パソコンを設定します

:one:今回のOSはUbuntu 18.10です。
:two:LANポートのIPアドレスは192.168.1.2です。
:three:必要なパッケージをインストールします。

$ sudo apt-get install tftpd-hpa
$ sudo apt-get install screen

WZR-600DHP2とパソコンを接続します

:one:WZR-600DHP2のシリアル・ピンを確認します。

:two:WZR-600DHP2とUSB-UART変換モジュールを結線します。

今回はUSB2UART-CP2102を利用しました。ピンの対応は下記のとおりです。

WZR-600DHP2 USB2UART-CP2102
RX TXD
TX RXD
GND GND

:three:USB2UART-CP2102をパソコンのUSBポートに接続します。

/dev/ttyUSB0 として認識されました。

$ dmesg | grep cp210x
[  938.409962] usbcore: registered new interface driver cp210x
[  938.409988] usbserial: USB Serial support registered for cp210x
[  938.410031] cp210x 1-1.2:1.0: cp210x converter detected
[  938.412473] usb 1-1.2: cp210x converter now attached to ttyUSB0

:four:screenコマンドを実行し、WZR-600DHP2のコンソールを表示するようにします。

$ sudo screen /dev/ttyUSB0 115200,cs8,-parenb,-cstopb

:five:WZR-600DHP2の電源を入れます。

するとコンソールにブート画面が表示されます。

WZR-600DHP2にDD-WRTやOpenWrtを焼きます

:one:まずはコンソールを確認します。

これでわかること。

  • ブートローダ起動直後、WZR-600DHP2のIPアドレスは192.168.1.1
  • tftpサーバのIPアドレスは192.168.1.2
  • tftpサーバのファイルlinux.trx-recoveryを転送しようとして失敗している。
Bootloader version v0.03 boot_version v0.03
Project name : WG9116H22
Press CTRL+C to cancel startup...
Device eth0:  hwaddr B0-C7-45-2C-BC-F9, ipaddr 192.168.1.1, mask 255.255.255.0
        gateway not set, nameserver not set
Invalid boot block on disk
Loader:raw Filesys:tftp Dev:eth0 File:192.168.1.2:linux.trx-recovery Options:(null)
Loading: Failed.
Could not load 192.168.1.2:linux.trx-recovery: Timeout occured

:two:ということで、下記を実施すればファームウェアを焼けると思いました。

  • パソコンのIPアドレスを192.168.1.2にする。(既に実施済み)
  • パソコンにtftpサーバ(tftpd-hpa)をインストールする。(既に実施済み)
  • DD-WRTやOpenWrtのファームウェアをダウンロードし、tftpサーバのディレクトリ(/var/lib/tftpboot/)にファイル名linux.trx-recoveryでコピーする。

DD-WRTの場合

$ wget https://download1.dd-wrt.com/dd-wrtv2/downloads/betas/2019/03-11-2019-r39144/buffalo_wzr-600dhp2/buffalo-wzr-600dhp2-webflash.bin
$ sudo cp buffalo-wzr-600dhp2-webflash.bin /var/lib/tftpboot/linux.trx-recovery

OpenWrtの場合

$ wget https://downloads.openwrt.org/releases/18.06.2/targets/bcm53xx/generic/openwrt-18.06.2-bcm53xx-buffalo-wzr-600dhp2-squashfs.trx
$ sudo cp openwrt-18.06.2-bcm53xx-buffalo-wzr-600dhp2-squashfs.trx /var/lib/tftpboot/linux.trx-recovery

:three:最後にWZR-600DHP2を再起動します。

そうするとファームウェアを取得し、新しいファームウェアで立ち上がります。

Bootloader version v0.03 boot_version v0.03
Project name : WG9116H22
Press CTRL+C to cancel startup...
Device eth0:  hwaddr B0-C7-45-2C-BC-F9, ipaddr 192.168.1.1, mask 255.255.255.0
        gateway not set, nameserver not set
Invalid boot block on disk
Loader:raw Filesys:tftp Dev:eth0 File:192.168.1.2:linux.trx-recovery Options:(null)
Loading: ... 27779072 bytes read
Entry at 0x010a3c38
Reading from 0x010a3c38: Programming...done. 27779072 bytes written
Booting(1): boot -raw -z -addr=0x8000 -max=0xef8000 nflash0.os2:
Loader:raw Filesys:raw Dev:nflash0.os2 File: Options:(null)

:four:OSが立ち上がったら、WZR-600DHP2とパソコン間のLANケーブルを抜きます。

再度ファームウェアを取得しないようにするためです。

:five:コマンドscreenを終了するには、[Ctrl]+[a][k]を入力します。

:six:USB2UART-CP2102をパソコンから取り外します。

さいごに

ださださオリジナル・ファームウェアを捨て、DD-WRTやOpenWrtでプロ仕様のルータ機能を楽しみましょう。(=^・^=)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?