Buffalo WHR-G300N OpenWrt r35420 のビルド #2 [OpenWRT/DD-WRT]
WHR-G300N は,前記事のとおり,OpenWrt r35420 でビルドしたファームが起動できたが,ファームウェアイメージをビルドするところで,make がアベンドしていた。
trunk/target/linux/ramips/image/Makefile を以下のように再度修正して,make が完了するようになった。
430行~
mtdlayout_whrg300n=mtdparts=physmap-flash.0:192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,960k(kernel),2752k(rootfs),64k(user)ro,3712k@0x50000(firmware)
define BuildFirmware/WHRG300N
$(call Image/Build/Template/GENERIC_4M,$(1),whr-g300n,WHR-G300N)
$(call BuildFirmware/Buffalo,$(1),whr-g300n,WHR-G300N,mtdlayout_whrg300n,983040,3801088)
( \
echo -n -e "# Airstation FirmWare\nrun u_fw\nreset\n\n" | \
dd bs=512 count=1 conv=sync; \
dd if=$(call sysupname,$(1),whr-g300n); \
) > $(KDIR)/whr-g300n-tftp.tmp
buffalo-tftp -i $(KDIR)/whr-g300n-tftp.tmp \
-o $(call imgname,$(1),whr-g300n)-tftp.bin
endef
732行~ (前回の修正)
define Image/Build/Profile/WHRG300N
$(call Image/Build/Template/$(fs_squash)/$(1),WHRG300N)
endef
機種毎のファームウェアイメージファイルは,このMakefileで,生成している。
手持ちのWifiルータで,Ralink RT305x を搭載している機種は,Fon2405e と IODATA WN-G300DGR がある。
Fon2405e はフラッシュが2Mしかないので難しい。WN-G300DGRは,http://royalwin.blog.so-net.ne.jp/2012-09-12 でシリアル接続はできているが,このMakefile には,対応機種として書かれていない。
どうやってファームウェアイメージを作ればいいのかわからない。
Buffalo WHR-G300N OpenWrt r35420 でのビルド [OpenWRT/DD-WRT]
WHR-G300N 用 OpenWrt の最近のスナップショット(@35420)をビルドできた。
ビルドやファームウェア書き換えは、BackTrack 5 R3 を使っている。
r30645 以降、機種毎のファームウェアを生成している trunk/target/linux/ramips/image/Makefile にバグがあり、WHR-G300N のファームウェアがビルドされない問題があった。
以下Makefileの611~613行だが、612行を以下のとおり変更した。
(fs_squashfs –> fs_squash)
define Image/Build/Profile/WHRG300N
$(call Image/Build/Template/$(fs_squashfs)/$(1),WHRG300N)
endef
https://dev.openwrt.org/browser/trunk/target/linux/ramips/image/Makefile
make menuconfig
make V=99 j=4
これで必要な openwrt-ramips-rt305x-whr-g300n-squashfs-sysupgrade.bin が作成されるが、make は作成直後にエラーでアベンドしてしまう。まだバグがあるみたいだ。
最新スナップでは、kernel 3.7.5 になった。動作は問題ないようだ。
OpenWrt のビルド方法、ファームウェア書き換え方法は機種によって異なる。
WHR-G300N の場合のビルド方法、ファームウェア書き換え方法は、こちらを参照
OpenWrt ファームウェアの初期設定は、以下のとおりで、変更はなかった。
(全機種共通)
- telnet 192.168.1.1 で接続して、/etc/config/wireless の option disabled を削除する。<再起動後無線が有効になる>
- telnet 192.168.1.1 で、passwd コマンド。root パスワードを設定<rootパスワードを設定すると、次回起動から telnet接続不可になる>
- ssh で接続する。公開キーのエラーが出たら、rm ~/.ssh/* で公開キーを削除して、再度ssh 接続する。
- scp [file名] 192.168.1.1:/tmp でファイル転送ができる。
- http://192.168.1.1 で Luci を起動して、ブラウザから設定を行う。
Buffalo WHR-G300N OpenWrt netperf [OpenWRT/DD-WRT]
netperf で、OpenWrt 化した WHR-G300N を通信速度計測機能付きルーターにした。 WHR-G300N に、Wifi や Ether で PC を接続して netperf を実行すれば、PC – WHR の通信速度を計測できる。
root@bt:~# netperf -H 192.168.1.1 -- -m 256k -s 256k -r 256k
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.1 (192.168.1.1) port 0 AF_INET : demo
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 262142 256000 10.05 26.26
root@bt:~#
OpenWrt ビルド時に netperf を組み込んだ。前記事参照
make menuconfig で Network –> <*> netperf にして、make すれば、netperf がコンパイルされて、OpenWrt ファームウェアに組み込まれる。
netperf サーバ(netserver)は自動起動するので、OpenWrt が起動すれば計測が可能だ。
Windows 7 からも netperf を実行したが、TCP STREAM TEST from … で止まってしまう。ウインドウズFirewallを無効にしてもだめだった。
http://code.google.com/p/netperf-win/