プラネックス無線LANルーター MZK-MR150 を Realtek SDK カスタムファームウェアに書き換えて、USBメモリをマウントできた。
無線ルーターはいくつか持ってるが、USBポートがある無線ルーターは、この1台しか持ってない。
USBで、無線ルーターが大容量ストレージを持てるし、USBプリンタやUSBカメラをつないだりもしたい。
MZK-MR150 は、CPUクロックが390MHzあり、メモリ32M、フラッシュ4Mで比較的高性能。
コンパクトで、USBバスパワーで動くので、たぶん電池や携帯バッテリでも動く。
WiFiハッキングツールが動けば、電池で動くWiFiハッキングデバイスに仕立てられるかもしれない。
SDK のコンフィグで、USBサポートを設定してからカーネルをビルドする。
USBサポートの手順は、SDKの Document.tar.gz 内にある Realtek Kernel 2.6 SDK User Guide を参照する。
FWのフラッシュ書き込みは、USBシリアル変換モジュールでPCとMZKをシリアル接続して、電源投入後、ESCでブートを中断し、tftp でファームウェアを転送する。
ifconfig eth0 192.168.1.3
atftp -p -l fw.bin 192.168.1.6
fw.binの転送が終わるとブートが始まる。以下はシリアル接続のminicomの表示。
minicom は、/dev/sttyUSB0,38400,8N1
Booting...========== SPI =============---RealTek(RTL8196C)at 2010.09.10-11:24+0800 version v1.1f [16bit](390MHz)no sys signature at 00010000!no sys signature at 00020000!no rootfs signature at 000E0000!no rootfs signature at 000F0000!Jump to image start=0x80500000...decompressing kernel:Uncompressing Linux... done, booting the kernel.done decompressing kernel.start address: 0x80003600RTL8192C/RTL8188C driver version 1.6 (2011-07-18)init started: BusyBox v1.13.4 (2012-07-10 09:08:23 JST)Init Start...Init bridge interface...Init Wlan application...WiFi Simple Config v2.2 (2011.09.08-23:32+0000).Register to wlan0route: SIOCDELRT: No such processiwcontrol RegisterPID to (wlan0)IEEE 802.11f (IAPP) using interface br0 (v1.7)open /proc/sys/kernel/hotplug: No such file or directoryDEVPATH=/sys/block/sda/sda ACTION=add usbmount blockbasename(1)basename(2 /sys/block/sda/sda)basename(2 /block/sda/sda)basename(2 /sda/sda)basename(2 /sda)basename(3 sda)basename(1)basename(2 /sys/block/sda/sda)basename(2 /block/sda/sda)basename(2 /sda/sda)basename(2 /sda)basename(3 sda)DEVPATH=/sys/block/sda/sda1 ACTION=add usbmount blockbasename(1)basename(2 /sys/block/sda/sda1)basename(2 /block/sda/sda1)basename(2 /sda/sda1)basename(2 /sda1)basename(3 sda1)basename(1)basename(2 /sys/block/sda/sda1)basename(2 /block/sda/sda1)basename(2 /sda/sda1)basename(2 /sda1)basename(3 sda1)try_mount(1) sda1, /var/tmp/usb/sda1CMD: /bin/ntfs-3g /dev/sda1 /var/tmp/usb/sda1 -o force# cd /var/tmp/usb/sda1# lsKernel 2_6 SDK User Guide v1_29.pdf System_Note.pdfRTL819X_Firmware_Release_Note_v2.5.pdf WLAN_Application_Note_RTL819X.pdfRealtek_WPS_user_guide_V1.4.pdf
fat32のUSBメモリは、ntfs-3g のエラーになった。NTFSでフォーマットしておかないとマウントできなかった。
USBメモリの書き込みも遅い気がする。
dd if=/dev/zero of=testfile bs=1M count=10
それから、デバイスドライバーなどカーネルにいろいろ追加すると、すぐにカーネルがサイズオーバーになってしまう。
rootfs のオフセットを 0x130000 に変更で一応収まった。
これを0x140000 にするとコンパイルは通っても、なぜか起動しない。