Ralink AP SoC SDK をコンパイルして,FON Simpl (FON2305e, FON2405e)の改造ファームウェアを作成している。

改造ファームの書き換え方法
改造ファームの作成方法 (Ralink AP SoC SDK)

FON Simpl はフラッシュが 2MB しかない。(2,048KB)
ブートローダー,コンフィグ等で192KB 必要なので,Linux カーネルイメージファイルは,1,856KB=1,900,544Byte 以内にしなければならない。
軽量 ssh サーバの dropbear ならバイナリが255KBで,lzmaで圧縮されるので,更に軽量になる。
dropbear を含めた Linux カーネルイメージ

 ra20120103.img (1.8MB)

FON Simpl の改造ファームを作成する方法は,下の3パターンが見つかった。

  1. Ralink AP SoC SDK
  2. wive-ng rtnl 
  3. FON Simpl GPL ソース

Ralink AP SoC SDK のバージョンは,3.3.0.1 だが,もっと新しい 3.5.0.0 がある。いろいろ探し回ってみたが,ダウンロードサイトを発見できなかった。
2. wive-ng rtnl は,Ralink AP SoC SDK をベースに作成しているみたいだ。
3.FON Simpl GPLソースは,未だ試していない。
wive-ng rtnlはコンパイルは通るが,今のところ FON Simpl で起動できない。

VFS: Cannot open root device "mtdblock4" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

wive-ng rtnl がFON Simpl で起動できれば,もっといろんなことができそうだ。
今回はwive-ng rtnl を参考にして,Ralink AP SDKに ssh サーバの dropbear を追加してみた。

wive-ng のソースをコンパイルすると,dropbear の実行ファイルが出来上がるので,それをコピーした。実行に必要な libgcc_s.so.1 もコピーする。

~/sdk3301/RT288x_SDK/source/romfs/bin/dropbear
~/sdk3301/RT288x_SDK/source/romfs/bin/dropbearkey
~/sdk3301/RT288x_SDK/source/romfs/lib/libgcc_s.so.1

dropbear は,inetd で動作するので,inetd をインストールする。

cd ~/sdk3301/RT288x_SDK/source/
make menuconfig

kernel config –> network configで INET を指定し,busybox config で,inetd を指定する。 

以前作成したカーネルイメージでは,iptables がエラーになっていた。
packet filtering を選択する。

ralink apsoc sdk では,/etc_ro/rcS というスクリプトが,ブート時に実行される。~/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052/rcS に追記すると,~/sdk3301/RT288x_SDK/source/romfs/etc_ro/rcS が変更できる。
~/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052/rcS に dropbear 起動のための追記を行う。

#for dropbear
mkdir -p /etc/dropbear
dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
echo > /etc/inetd.conf
echo "22 stream tcp nowait admin /bin/dropbear dropbear -i -K60 -I360 -m" >> /etc/inetd.conf
inetd -R 30 -q 64

起動時に /etc/dropbear に鍵を生成し,/etc/inetd.conf も作成している。
コンフィグが終わったら,ビルドする。

make V=99

./images/root_uImage がビルドしたカーネルイメージなので,ra.img 等にリネームして,FON Simpl のファームウェアを書き換える。
改造ファームの書き換え方法

FON Simpl に,BackTrack 5 (ubuntu)から ssh 接続した。