dd-wrtのファームウエア・バージョンアップに失敗した時の復旧方法をまとめました。対象機器はBuffalo WZR-HP-G301NHです。
なぜか管理画面でのアップデートに失敗し、エラーで立ち上がらなくなる確率がとても高いです。
先人の方々のリソースを最大限に利用し、復旧方法をまとめ整理しました。
かなりリスクの高い作業です、同じ手順で失敗しても当方は一切責任を負えません。自己責任でお願いします。
#1. パソコン環境
作業用パソコンのOSはUbuntu 14.10です。Synapticパッケージマネージャで下記をインストールをします。
パッケージ名 | 用途 |
---|---|
gtkterm | シリアルポート接続用 |
bless | ファームウェア修正用 |
tftpd-hpa | ファイル転送用 |
パソコンの有線LANのIPアドレスを192.168.11.2に設定します。なおWZR-HP-G301NHブート時のIPアドレスは192.168.11.1です。192.168.11.1にpingしても応答はありません。
#2. 必要なハードウェア
ハードウェア | 型式 | 備考 |
---|---|---|
USB-UART変換モジュール | USB2UART-CP2102 | 3.3V対応 |
LANケーブル | ||
ピンヘッダ | ||
ピンヘッダ用接続ケーブル |
WZR-HP-G301NHとUSB-UART変換モジュール USB2UART-CP2102を結線します。
WZR-HP-G301NHのゴム足を剥がすとネジがあるのでトルクス・ドライバで外し、慎重にケースを開けます。シリアルポートのピン配置は画像の通りです。
配線の組み合わせは下記の通りです。間違わないでください。
WZR-HP-G301NH | USB2UART-CP2102 |
---|---|
RX | TXD |
TX | RXD |
GND | GND |
VCC | 3.3V |
#3. 大まかな作業の流れ
- dd-wrtホームから最新ファームウェアをダウンロードする。
- ファームウェアをtftp用に修正し、転送できる状態にする。
- WZR-HP-G301NHとパソコンを接続する(LAN接続とシリアルポート接続)。
- 修正したファームウェアをWZR-HP-G301NHへ転送し更新する。
#4. いざ覚悟して実行
###4.1. dd-wrt Other Downloadsから最新ファームウエアをダウンロードします。
今回は12-15-2014-r25648版を利用しました。
###4.2. blessでファームウェアを編集する。
wzr-hp-g301nh-dd-wrt-webupgrade-MULTI.binを読み込み、
**"27 05 19 56"**より前を切り取り、 wzr-hp-g301nh-dd-wrt-webupgrade-MULTI.tftpに保存する。
###4.3. 修正したファームウェアをtftpdのディレクトリにコピーする。
wzr-hp-g301nh-dd-wrt-webupgrade-MULTI.tftpを**/var/lib/tftpboot**にコピーします。
###4.4. パソコンとWZR-HP-G301NHをLANケーブルで接続する。
WZR-HP-G301NH側はLAN 4ポートのいずれかに接続します。
###4.5. パソコンのUSBポートにUSB-UART変換モジュール USB2UART-CP2102を接続する。
その後WZR-HP-G301NHの電源を入れます。
パソコンでgtktermを実行し、通信ポートの設定をします。
きちんと文字が表示されれば大丈夫です。
属性 | 値 | 備考 |
---|---|---|
Port | /dev/ttyUSB0 | USB2UART-CP2102の場合です |
Baud Rate | 115200 |
###4.6. ファームウエアの転送と更新をします。
まずWZR-HP-G301NHの電源を入れ直します。
gtktermにブート・メッセージが表示されます。
**tftp server(recieve) go, waiting:4[sec]が表示されたら[Ctrl]+[c]**を連打して中断させます。
ファームウェアを自動転送させるような思わせぶりをしますが、実際にはされないので中断して手動でファイル転送します。
プロンプト**ar7100>**が表示され、下記を入力するとパソコンからの転送が始まります。
tftpboot 81f00000 wzr-hp-g301nh-dd-wrt-webupgrade-MULTI.tftp
転送が終わったら転送されたデータサイズを確認します。
今回は18e9000です。
そしてプログラム領域を初期化します。処理終了まで結構時間がかかります。
erase BE060000 BFFDFFFF
転送されたデータをプログラム領域にコピーします。ここで先程の18e9000を利用します。
cp.b 81f00000 be060000 18e9000
処理終了まで結構時間がかかります。
終了したらWZR-HP-G301NHの電源を入れ直して終了です。
#5. 最後に
dd-wrtのWiFi設定は下記で利用してください。
パラメータ | 値 |
---|---|
Regulatory Domain | Japan |
TX Power | 10dBm |
#6. 参考サイト