Broadcom Arm系SoCを使ったBuffaloの一部のルータでのみHTTP転送が可能です。
※2018/1/5現在で
WZR-900DHPではLEDE/DD-WRT書き換え後、無線出力が極端に減衰する事象が報告されています。(5GHz帯使用不可、2.4GHz帯が5mも届かない)
Broadcom bcm53xx targetの他メーカ機種での報告ではflashメモリ上に暗号化して配置された無線LANチップ用firmwareをロードできないためと想定されています。
この暗号化されたfirmwareはメーカー配布のfirmware imageには含まれておらず、事前取得したflashメモリのフルバックアップ以外では復旧できないようです。
Buffaloのbcm53xx系機種(
WZR-600DHP2以降/900DHP/1166DHP/1750DHP/1900DHPなど)へLEDE/DD-WRTをインストールする際にはご注意ください。
概要
ただ、純正ファームウェアはサイズが大きいため、AOSSボタンを押下+curlを使用した手順では転送時間が間に合いません。
そこで一度 OpenWrt/LEDEをインストールし、nvram コマンドでboot_waitの値を大きく取って間に合うように調整します。
準備
Windows環境の場合にはcurlを準備します。
バックアップ済みファームウェアがある場合
事前にflashメモリの内容をバックアップしておいた場合には、/dev/mtdblock/2 と/dev/mtdblock/3 のデータを結合してリカバリ用のファームウェアを生成します。
Windows環境ではcopy /b コマンドを使ってlinuxやmacであればcatコマンドで結合してください。
copy /b mtdblock2.dd+mtdblock3.dd wzr900dhp_cfe.trx
cat mtdblock2.dd mtdblock3.dd > wzr900dhp_cfe.trx
純正firmwareからの生成
注意点
buffalo-encコマンドの準備
純正ファームウェアの準備
メーカーサポートページから純正のアップグレード用ファームウェアをダウンロードし、展開しておきます。
加工
1)ddで先頭200byteをカット
$ dd if=<buffalo_firm> of=temp.bin bs=1 skip=200
2)確認
$ hexdump -C temp.bin | head で先頭がstart で始まっていることを確認
3)buffalo-encコマンドで加工
$ buffalo-enc -d -i temp.bin -o temp2.bin
4)加工済みfirmから先頭46byteをカット
$ dd if=temp2.bin of=wzr900dhp_cfe.trx bs=1 skip=46
5)確認
$ hexdump -C wzr900dhp_cfe.trx | head で先頭がHDR0 で始まっていることを確認
CFEのwait_time設定
一度、ルータにLEDEをインストールし、nvramコマンドでbootloaderのCFE用のパラメータが読み書きできることを確認します。
以下のコマンドでboot時のwait_timeを設定します。
# nvram set boot_wait=on
# nvram set wait_time=30
# nvram commit
インストール
リカバリ用のファームウェアを C:\temp\ 以下に置きます。
wzr900dhp_cfe.trx
PCのIPアドレスを 192.168.1.2/24 に設定します。
インストール実施
1)あらかじめ ping -t 192.168.1.1 を実行します。
2)別Windowで以下コマンドラインを準備(まだEnterしないでください)
curl -F "name=@c:\temp\wzr900dhp_cfe.trx"
http://192.168.1.1/f2.htm
(f2.htm のフォーム内の name に指定したファイルの内容をPOSTメソッドで送信)
3)AOSSボタンを押しながら電源を入れます。
正面のLED全点灯後 緑のPower LEDだけが点灯するまで押し続けます。
4)192.168.1.1 から TTL=100でping応答があったらすかさず別窓のcurl を enter
成功すれば Upload completedの文字列が含まれる HTML が返ってきます。
curl: (56) Recv failure: や curl: (7) Failed to connect to 192.168.1.1 port 80: は失敗です。
5)nvramの内容をreset
OpenWrt/LEDEから純正の戻した場合にはnvramの内容をresetしないと起動できません。
「30-30-30 reset」もしくは mini CFE Web Server 起動中に以下のようにしてCFE用のnvramパラメータを消去します。
curl
http://192.168.1.1/do.htm?cmd=nvram+erase
※reset後はboot_wait等の設定も初期化されます。
6)再起動後の再ファームウェアインストール
電源OFF/ON後、メーカー純正ファームウェアで起動してきたら、メンテナンスページからもう一度ファームウェアをインストールし直します。
参考情報
最終更新:2018年10月08日 23:18