2026年7月12日日曜日

WRC-X3200GST3をE8450化して復活させた。

 電源が入らないというジャンクで出品されていたWRC-X3200GST3だけども、とりあえずRAMで起動して問題ないことがわかったし、Flashも実は問題なさそうだったのでどうにかFlashから起動できるように改造してみた。

といってもFlashの中身が飛んだ状態で売られていたジャンク品なのでPreloaderやubootのバックアップはないし…

ということで他の機種のデータを使えないか試してみた。MT7622搭載デバイスのデータで色々試してみたんだけど、他の機種だと1ddrとかの制約があったのでE8450化してうまくフラッシュから起動することができるようになった。

Linksys E8450のリカバリ方法をほぼそのまま実行すればUBIバージョンのLinksys E8450になることがわかった。

実行したのはLinksys E8450のリカバリのRecovery instructions - Reload OpenWRT 24.10 from scratchのところ。

WRC-X3200GST3の方はmtk_uartbootでE8450のデータでブートするところまでやって、Ctrl+Cで

MT7622> <INTERRUPT>
MT7622> 

のところまでやっておく。あとTFTPでデータを転送するために

setenv ethaddr 00:11:22:33:44:55
setenv eth1addr 00:11:22:33:44:56
setenv serverip 192.168.1.254
setenv ipaddr 192.168.1.1

まで設定を済ませておく。これで本体側の準備はOK

PC側もファイルをダウンロードしてファイル名を変更しておく。
openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin
openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip
openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
factory.bin

これらのファイルをダウンロードしておく。ダウンロードしたファイル名とリンクのファイル名が違うので、リンクのファイル名に直しておく。

ファイル名を上のリンクどおりに揃えたらTFTPサーバの直下に置いておく。

ubi detach; mtd erase ubi && ubi part ubi
mw $loadaddr 0xff 0x1f000
run boot_tftp_write_bl2
run boot_tftp_write_fip
tftpboot factory.bin && ubi create factory $filesize static && ubi write $loadaddr factory $filesize
run boot_tftp_recovery

これでOpenWRTがリカバリモードで起動するはず。E8450とWRC-X3200GST3のLANポートの割り当てが少し違うので注意。WRC-X3200GST3のWANはE8450でいうLAN1で、WRC-X3200GST3のLAN1はE8450でいうWANになっている。なのでPCをつなぐときはWRC-X3200GST3のLAN2~4かWANに繋いでおかないと繋がらない。とりあえずPCをLAN4に繋いで192.168.1.1に接続。SystemのBack up/Flash Firmwareからopenwrt-25.12.5-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itbにアップデートして完了。

これでSPI Flashにうまく書き込まれてるようで普通に起動するようになった。E8450として起動するのでPower LEDがついていない。2.4GHzのLEDは点灯している。

cat /sys/class/gpio/gpiochip*/base | head -n1

が512だったのでPower LED(緑)がGPIO 49ということなので

echo "561" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio561/direction
echo "1" > /sys/class/gpio/gpio561/value

でPowerを緑色で点灯することが出来た。スタートアップスクリプトにでも入れておこう。

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

#Power Green
echo "561" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio561/direction
echo "1" > /sys/class/gpio/gpio561/value

#2.4GHz LED
echo "597" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio597/direction
echo "1" > /sys/class/gpio/gpio597/value

#5GHz LED
echo "601" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio601/direction
echo "1" > /sys/class/gpio/gpio601/value

exit 0

とりあえずLAN1をWANに設定して、WANをbr-lanに含める設定をしてみた。

MT7915もちゃんと認識してるし、スキャンも出来てるので使えそう。

とりあえず文鎮化していたジャンクなWRC-X3200GST3をE8450として蘇らせることが出来たっぽい。LEDの設定とかちゃんとすればそこそこ使えるんじゃないかな。

あとおそらく前オーナが文鎮化させてしまった原因の可能性であるFlash容量の少なさもE8450化で解決しているような。WRC-X3200GST3のOpenWRTだと8MBぐらいしか無いDisk SpaceもE8450化したことによって86.91MBもあるし。

MACアドレスとかはランダムのが使われてそうなのでラベルに書いてあるやつとかを手動で入力すればいいかな…
WiFiのSSIDを見るとLAN側のMACアドレス-1がWiFiのMACアドレスっぽい。

とりあえずだいぶ安くゲット出来たジャンク品が普通に使えるようになったので何より。いまのところ問題が出ていないけどGPIOがどこにつながってるかわからないので問題が起きても自己責任で。

1000円未満のジャンクにしてはだいぶ遊べたし勉強になった。

0 件のコメント:

コメントを投稿