この記事の目的
この記事は 以前の記事 の兄弟編です。
以前の記事 では OpenWrt 化した WSR-2533DHP2 を Buffalo 純正ファームウェア に戻す手順を説明しましたが、今回の記事では OpenWrt 化した WSR-3200AX4S を Buffalo 純正ファームウェア に戻す手順を説明します。
WSR-1166DHP や WSR-2533DHP / DHPL / DHPL2 を Buffalo 純正ファームウェアに戻す場合は、以前の記事 を参照してください。
ネット脅威ブロッカー機能がある WSR-2533DHPLS は WSR-3200AX4S と同じ手順なのではないかと思います。
この記事は、以下のページの「〇おまけ 純正ファームウェアへの復元方法」のコードの可読性を高めるために作成しています。
手順概要
純正ファームウェアの書き込みは以下の手順で進みます。
- 書き込み用ファイルの作成
- 書き込み用ファイルの転送
- ファイルの書き込み
手順 1. 書き込み用ファイルの作成
1. WSR-3200AX4S の公式ファームウェアを取得
Buffalo 公式サイト から最新のファームウェアを取得します。
2. firmware-wintools を取得
以下の GitHub ページから最新の firmware-wintools を取得します。
3. firmware-wintools で WSR-3200AX4S の公式ファームウェアをリカバリデータに変換
取得した Buffalo ファームウェアを firmware-wintools.exe
と同じフォルダに移動/コピーして、コマンドラインで以下のコマンドを実行します。
👉 以下は 2025 年 6 月時点での実行例のため、ファームウェアのバージョンが変わった時はバージョン部分を修正して実行してください。
firmware-wintools buffalo-enc -i wsr_3200ax4s_jp_146 -o wsr_3200ax4s_jp_146.dec -d -O 0xc8 -l
: 改行を加えて見やすくするとこんな感じ
firmware-wintools buffalo-enc ^
-i wsr_3200ax4s_jp_146 ^
-o wsr_3200ax4s_jp_146.dec ^
-d -O 0xc8 -l
PowerShell で実行する場合は、上記コマンドの firmware-wintools
の部分が ./firmware-wintools.exe
に変わります。
./firmware-wintools.exe buffalo-enc -i wsr_3200ax4s_jp_146 -o wsr_3200ax4s_jp_146.dec -d -O 0xc8 -l
# 改行を加えて見やすくするとこうなります
./firmware-wintools.exe buffalo-enc `
-i wsr_3200ax4s_jp_146 `
-o wsr_3200ax4s_jp_146.dec `
-d -O 0xc8 -l
以下のような出力が表示されれば成功です。
===== buffalo-enc モード (復号) =====
マジック : 'start'
シード値 : 0xED
プロダクト名 : 'WSR-3200AX4S'
バージョン : '1.46'
データ長 : 18763776 bytes
チェックサム : 0x9785395
今回の例では、wsr_3200ax4s_jp_146.dec
が生成されます。
手順 2. ファイルの転送
生成されたファイルを WinSCP や以下のようなコマンドで WSR-3200AX4S の /tmp
に転送します。
scp -O wsr_3200ax4s_jp_146.dec root@192.168.1.1:/tmp
手順 3. ファイルの書き込み
以下のコマンドを実行して Buffalo 純正ファームウェアに戻します。
opkg update
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
echo "/dev/mtd3 0x0 0x1000 0x20000" > /etc/fw_env.config
fw_setenv boot2 "dual_image_check;if test ${dual_image} = good; then run boot_rd_img;bootm;fi"
mtd erase WTB
mtd erase firmware
cd /tmp
mtd -r write wsr_3200ax4s_jp_146.dec firmware
もしかすると以下のような 恐ろしいエラー が表示され、「書き込みに失敗したかも 😱 」と不安になるかもしれませんが、しばらく待っていると純正ファームウェアで起動します。
Writing from wsr_3200ax4s_jp_146.dec to firmware ...
Rebooting ...
sh: /sbin/reboot: I/O error
補足
WinSCP の接続設定について
WinSCP を使う場合は、 File protocol
を SCP
にしてください。
以下のコマンドの -O
オプションも、上記設定と同様に SCP プロトコルを使うための設定です。
scp -O original_firmware.bin root@192.168.1.1:/tmp
データの転送先に /tmp
を使う理由
/tmp
はメインメモリ内の領域です。
そのため、Flash としては空き容量が無くても、/tmp
であればリカバリデータが転送できます。
💡 OpenWrt では、起動時に圧縮されたカーネルイメージをメインメモリ (RAM) 上に展開して動作します。
/tmp
や/var
はそれらのファイルの一時的な保存場所です。 (👉 そのため再起動すると消去されます。)
💡 NAND メモリは 読むだけでも劣化していく 😱 ため、
/tmp
を使用する方が Flash への負担が少なくなります。