オリジナルfirmwareへの復旧方法 > TFTP転送 > (2)バックアップ済firmwareを加工してTFTP転送(Buffalo)


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Buffaloの一部の機種はバックアップ済みのfirmwareを加工することで起動時にTFTPにてインストール可能です

TFTPでのインストール方法(3)OpenWRT-BHR-4GRV編 等で インストール前に自前に取得しておいた flashメモリのバックアップデータからリストア出来ます。

そのままの戻しはできず、少々の加工が必要です。加工方法は機種によって若干の違いがあります。

※加工方法はOpenWrt-ImageBuilderに含まれるmakeファイルを参考にしています。


WZR-HP-G300NH/WZR-HP-G302H(RevA2A0)/WZR-HP-G450H/BHR-4GRVの場合

必要なもの

  • /dev/mtdblock/6 のバックアップデータ
linux kernel と rootfs が連結されたデータが必要です。
事前のcat /proc/mtd で"firmware"となっている領域部分です。
mtd3 "linux" と mtd4 "rootfs" をcatで結合したデータでもOKです。
  • Linux/UNIX環境で作業する場合
ddコマンドが使用できればOKです。(CentOS6.4 x86_64版で実績あります)
  • Windows上だけで作業する場合
上記ヘッダ部分のバイナリデータ WZR_TFTP_headder.bin

加工方法

  • Linux/UNIX環境で作業する場合
mtd6.dd のデータを送り、shell consoleから以下のコマンドを実行し、ヘッダを付加します。
[bash ~]$ ( echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; dd if=mtd6.dd ) > stockfw-tftp.bin
  • Windows上で作業する場合
copy コマンドでヘッダとmtd6.dd を結合します。(バイナリデータを扱う /B がポイント)
C:\copy /B WZR_TFTP_headder.bin+mtd6.dd stockfw-tftp.bin

インストール方法

生成されたstockfw-tftp.binをOpenWrtのTFTPインストール方法と同様の方法でインストールします。
OpenWrt本体のものと比較するとファイルサイズが大きいので完了まで5分程度はかかります。
なお、事前にuboot変数 accept_open_rt_fmt に 1 が設定されている必要があります。

WHR-G300Nの場合

必要なもの

  • OpenWrt ImageBuilder に含まれる buffalo-tftp
  • 64bit Linux環境(x86_64版)
ImageBuilder がx86_64版のため。SDKからbuildする場合にはこの限りではありません
  • /dev/mtdblock/3 と/dev/mtdblock/4 のバックアップデータ
linux kernel と rootfs のデータが必要です。
事前のcat /proc/mtd で "linux"  "rootfs" と表示されている領域部分です。

準備

linux 環境に mtd3.dd , mtd4.dd のデータを送り、shell consoleから以下のコマンドで結合データを作ります。
[bash ~]$ cat mtd3.dd mtd4.dd > mtd3_4.tmp

OpenWrt ImageBuilderをダウンロードし、展開します。
[bash ~]$ wget https://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/OpenWrt-ImageBuilder-ramips_rt305x-for-linux-x86_64.tar.bz2
[bash ~]$ tar jxf OpenWrt-ImageBuilder-ramips_rt305x-for-linux-x86_64.tar.bz2

加工方法

shell consoleから以下のコマンドを実行してデータにヘッダを付加します。
[bash ~]$ ( echo -n -e "# Airstation FirmWare\nrun u_fw\nreset\n\n" | dd bs=512 count=1 conv=sync; dd if=mtd3_4.tmp; ) > stockfw-tftp.tmp
buffalo-tftp コマンドでデータをTFTP用に変換します。
[bash ~]$ ~/OpenWrt-ImageBuilder-ramips_rt305x-for-linux-x86_64/staging_dir/host/bin/bundled/buffalo-tftp -i stockfw-tftp.tmp -o stockfw-tftp.bin

インストール方法

生成されたstockfw-tftp.binをOpenWrtのTFTPインストール方法と同様の方法でインストールします。
WHR-G300N の場合には PC側を事前に192.168.11.2 にしておけば
MACアドレスをスタティック登録する必要はありません。

事前バックアップを取っていなかった場合

Buffaloからダウンロードできるアップデート用ファームウェアから必要データを抽出する方法があるようです。
ただし、該当ファームウェアの事前のmtd領域のデータサイズ情報(cat /proc/mtd の情報)が必要ですので、それすらない場合には困難を極めるでしょう。

2ch DD-WRTスレ10 183さんのこちらの blog を参考にしてみてください。
なお、blog中で使用されている buffalo-enc はSDK以外にもImageBuilderにも含まれています。

得られた stock_fw.bin にはヘッダ情報が含まれていないので、WZR-HP-G300NH/WZR-HP-G450Hの場合にはヘッダ追加が必要です。
添付ファイル