planex W04NUにopenWrt Backfire 10.03.1-RC5-testing を導入

PlanexのW04NUはopenwrtを導入できる市販ルータです。
USB1ポート付き、メモリは32MBでフラッシュは8MBです。

必ず予備のルータを用意すること、失敗するとネットへ接続できず情報を得られなくなります。

もしPlanex W04NUを購入してopenwrtを入れようとするなら、お金を惜しまずWZR-HP-G300NHの中古品を購入すること。メモリが64MBでフラッシュは32MBもあり、国内で手に入る一般向けルータとしては最高のハードウェアです。フラッシュが8MBしかないということは、それしかソフトを導入できないということですからとても重要な事なのです。

うまくいった記録です。
フラッシュの流し込みはシリアル接続のターミナルからtftpd32を利用しました。
vistaでtftpd32を利用してファームを流し込むにはアンチウィルスソフトを停止し、セキュリティセンターのファイアウォールを無効にする。

PCのネットワークポートとW04NUのLAN側ポートを普通のLANケーブル(クロスでなくてもよい)で接続します。

以下のコマンドはシリアルで接続したTeraTermを用います。
ボーレート=115200bps、データ=8bit、パリティ=無し、ストップbit=1bit、フロー制御=Xon/Xof


U-Boot 1.1.4 (Oct 25 2007 - 15:28:59)

AP81 (ar7100) U-boot
DRAM:
sri
32 MB
Top of RAM usable for U-Boot at: 82000000
Reserving 222k for U-Boot at: 81fc8000
Reserving 192k for malloc() at: 81f98000
Reserving 44 Bytes for Board Info at: 81f97fd4
Reserving 36 Bytes for Global Data at: 81f97fb0
Reserving 128k for boot params() at: 81f77fb0
Stack Pointer at: 81f77f98
Now running in RAM - U-Boot at: 81fc8000
id read 0x100000ff
flash size 8MB, sector count = 128
Flash: 8 MB
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: ag7100_enet_initialize...
Fetching MAC Address from 0x81fedb10
eth0: 00:22:cf:04:e8:17
dup 1 speed 100
eth0 up
eth0
====check reset button function====
### main_loop entered: bootdelay=4

### main_loop: bootcmd="bootm 0xbf050000"
Hit any key to stop autoboot: 0[ここでキーを押下してブートをとめる]
ar7100> printenv[環境変数を表示します]
bootargs=console=ttyS0,115200 root=31:03 rootfstype=jffs2 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),1408k(uImage),6208k(rootfs),128k(config),128k(ART)
bootcmd=bootm 0xbf050000
bootdelay=4
baudrate=115200
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee
ipaddr=192.168.1.10[ルータのLANポートに設定されているIP]
serverip=192.168.1.230[tftpサーバがあるPC側のIP(PCのネットワーク設定をこれに合わせます)]
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
filesize=770000

Environment size: 378/65532 bytes

ar7100> ping 192.168.1.230[tftpサーバがあるPC側のIPと疎通確認]
Using eth0 device
host 192.168.1.230 is alive

ar7100> tftp 0xa0800000 rc5-openwrt-ar71xx-mzk-w04nu-squashfs-factory.bin[tftpサーバからファームを取得]
Using eth0 device
TFTP from server 192.168.1.230; our IP address is 192.168.1.10
Filename 'rc5-openwrt-ar71xx-mzk-w04nu-squashfs-factory.bin'.
Load address: 0xa0800000
Loading: checksum bad
checksum bad
#################################################################

##########################################
done
Bytes transferred = 7864320 (780000 hex)
ar7100> cp.b 0xa0800022 0xa0800000 0x77ffde[※理解できないがやらないとだめ]
ar7100> iminfo 0xa0800000[転送したファームを確認]

## Checking Image at a0800000 ...
Image Name: MIPS OpenWrt Linux-2.6.32.27
Created: 2011-05-27 13:15:21 UTC
Image Type: MIPS Linux Kernel Image (gzip compressed)
Data Size: 1241199 Bytes = 1.2 MB
Load Address: 80060000
Entry Point: 80060000
Verifying Checksum ... OK

ar7100> erase 0xbf050000 +0x780000[書き込み前準備]

Erase Flash from 0xbf050000 to 0xbf7cffff in Bank # 1
First 0x5 last 0x7c sector size 0x10000
124
Erased 120 sectors
ar7100> cp.b 0xa0800000 0xbf050000 0x780000[書き込み]
Copy to Flash... write addr: bf050000
done
ar7100> iminfo 0xbf050000[書き込みしたエリアを表示]

## Checking Image at bf050000 ...
Image Name: MIPS OpenWrt Linux-2.6.32.27[転送したファームと同じになっているはず]
Created: 2011-05-27 13:15:21 UTC
Image Type: MIPS Linux Kernel Image (gzip compressed)
Data Size: 1241199 Bytes = 1.2 MB
Load Address: 80060000
Entry Point: 80060000
Verifying Checksum ... OK
ar7100>reset


resetコマンドで自動的に再起動されます。
openwrtが起動して、LANポートはDHCPサーバが動いています。
PCのネットワーク設定をDHCPクライアントにしてIPアドレスを取得します。
(無線はoffになっているので有線で接続する)
コマンドブロンドプロンプトを起動し、ipconfigを実行してディフォルトゲートウェイアドレスを調べます。
そのアドレスへブラウザで接続するとweb経由の設定が可能です。
Firmwareアップグレード画面からopenwrt-ar71xx-mzk-w04nu-squashfs-sysupgrade.bin(もちろん同バージョン)を指定してアップグレードします。

これで書き込み完了です。
無線のチャンネルをautoにすると無線が有効になりません。

追加パッケージを入れたら3TのHDDをマウントできました。
(10.03.1-rc4は追加パッケージを入れてもカーネルオプションが設定されていないので3Tをマウントしようとするとエラーになります)

[※理解できないがやらないとだめ]
ここは恐らくfirmwareのheaderを削除しているのだと思います。
下図上段左は今回導入したBackfire 10.03.1-RC5-testing、上段右がbackfire/10.03(安定リリース版)です。
下段は今回導入したsysupgradeです。

ファーム種別 webから導入できるかどうか
Backfire 10.03.1-RC5-testing webから導入できない(不正と蹴られる)
Backfire 10.03.1-RC5-testingからバイナリエディタで34byteカット(赤線部分カット)したもの 不正と蹴られない(導入はしていない)
Backfire 10.03.1-RC5-testingのsysupgrade webから導入できる
backfire/10.03(安定リリース版) 不正と蹴られない(導入したか忘れた)

尚Planex純正を確認したところヘッダ付きでした。

もしやPlanexの純正のweb経由はヘッダ付きを要求し、openwrtのweb経由はヘッダ無しを要求するということ?
純正からopenwrtはBackfire 10.03.1-RC5-testingそのままweb経由。
openwrtからBackfire 10.03.1-RC5-testingはweb経由は駄目、バイナリカットしてweb経由またはtftp(バイナリカット)
そういうこと???