OpenWrt 化した WSR-3200AX4S を Buffalo 純正ファームウェアに戻す (Restoring Stock Firmware)

## この記事の目的

この記事は [以前の記事](https://qiita.com/Bacalhau/items/3ee93499083bcaffcd91) の兄弟編です。

以前の記事 では OpenWrt 化した [WSR-2533DHP2](https://qiita.com/Bacalhau/items/0e5e1ee2382257bf7ef8) を [Buffalo 純正ファームウェア](https://qiita.com/Bacalhau/items/0e5e1ee2382257bf7ef8) に戻す手順を説明しましたが、今回の記事では OpenWrt 化した [WSR-3200AX4S](https://qiita.com/Bacalhau/items/803d97ebeae8deaf3c7e) を [Buffalo 純正ファームウェア](https://www.buffalo.jp/product/detail/software/wsr-3200ax4s-bk.html) に戻す手順を説明します。

[WSR-1166DHP](https://techinfodepot.shoutwiki.com/wiki/Buffalo_WSR-1166DHP) や [WSR-2533DHP / DHPL](https://taiha.hatenablog.jp/entry/2020/04/13/buffalo-wsr-2533dhpl/) / [DHPL2](https://taiha.hatenablog.jp/entry/2024/06/08/205236) を Buffalo 純正ファームウェアに戻す場合は、[以前の記事](https://qiita.com/Bacalhau/items/3ee93499083bcaffcd91) を参照してください。

ネット脅威ブロッカー機能がある [WSR-2533DHPLS](https://taiha.hatenablog.jp/entry/2024/06/08/205236) は WSR-3200AX4S と同じ手順なのではないかと思います。

この記事は、以下のページの「〇おまけ 純正ファームウェアへの復元方法」の可読性を高めるために作成しています。

<!-- ■BUFFALO WSR-3200AX4S 最大限空き容量確保ビルド -->

https://writening.net/page?uLy3gN

## 手順概要

純正ファームウェアの書き込みは以下の手順で進みます。

1. 書き込み用ファイルの作成
2. 書き込み用ファイルの転送
3. ファイルの書き込み

## 手順 1. 書き込み用ファイルの作成

### 1. WSR-3200AX4S の公式ファームウェアを取得

[Buffalo 公式サイト](https://www.buffalo.jp/product/detail/software/wsr-3200ax4s-bk.html) から最新のファームウェアを取得します。

<!-- WSR-3200AX4S-BK : ソフトウェア | バッファロー -->

https://www.buffalo.jp/product/detail/software/wsr-3200ax4s-bk.html

### 2. firmware-wintools を取得

以下の GitHub ページから最新の firmware-wintools を取得します。

<!-- OpenWrtのfirmware-utilsのWindows移植版 -->

https://github.com/musashino205/firmware-wintools/releases

### 3. firmware-wintools で WSR-3200AX4S の公式ファームウェアをリカバリデータに変換

取得した Buffalo ファームウェアを `firmware-wintools.exe` と同じフォルダに移動/コピーして、コマンドラインで以下のコマンドを実行します。  
👉 以下は 2025 年 6 月時点での実行例のため、ファームウェアのバージョンが変わった時はバージョン部分を修正して実行してください。

```bat
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` に変わります。

```powershell
./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](https://qiita.com/Bacalhau/items/3ee93499083bcaffcd91#winscp-%E3%81%AE%E6%8E%A5%E7%B6%9A%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6) や以下のようなコマンドで WSR-3200AX4S の `/tmp` に転送します。

```shell
scp -O wsr_3200ax4s_jp_146.dec root@192.168.1.1:/tmp
```

## 手順 3. ファイルの書き込み

以下のコマンドを実行して Buffalo 純正ファームウェアに戻します。

```shell
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
```

もしかすると以下のような **恐ろしいエラー** が表示され、「書き込みに失敗したかも 😱 」と不安になるかもしれませんが、しばらく待っていると純正ファームウェアで起動します。

```shell
Writing from wsr_3200ax4s_jp_146.dec to firmware ...
Rebooting ...
sh: /sbin/reboot: I/O error
```

## 補足 : WinSCP の接続設定について

[WinSCP](https://winscp.net/eng/docs/lang:jp) を使う場合は、 `File protocol` を `SCP` にしてください。

![WinSCP_SCP](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566576/64139f6d-9cc0-7216-4037-3cede8122ad3.png)

以下のコマンドの `-O` オプションも、上記設定と同様に SCP プロトコルを使うための設定です。

```shell
scp -O original_firmware.bin root@192.168.1.1:/tmp
```