PF-50WG 独自ファームの構築

[`google_buzz` not found]
[`friendfeed` not found]
このエントリーをはてなブックマークに追加
[`yahoo` not found]
[`livedoor` not found]

telnetdを組み込んだ改造ファームウェアを構築する。
また、今後プログラムをコンパイルするたびにファームを作り直すのは面倒なので、
画像保存用のフラッシュメモリ領域にあるプログラムを定期的に起動するようなスクリプトも組み込んでおく。
telnetd(busybox)のファイルサイズ増加に対し、ファームウェアのファイルサイズを合わせるため、Picasa、Flickr、FrameIt 関連ファイルを削除。

$ cd squashfs-root
$ sudo cp -p ../opensrc/busybox-1.13.3/busybox bin/busybox2
$ for f in gunzip gzip tar head tail touch awk cmp diff sed vi find grep xargs less telnetd traceroute wget ; do sudo ln -s busybox2 bin/$f; done
$ sudo vi etc/inittab
$ sudo vi etc/init.d/S40telnetd
$ sudo chmod +x etc/init.d/S40telnetd
$ sudo vi etc/init.d/S50hourly
$ sudo chmod +x etc/init.d/S50hourly
$ sudo vi sbin/invoke_hourly
$ sudo chmod +x sbin/invoke_hourly
$ sudo rm sbin/flickrfs sbin/frameit sbin/picasafuse

etc/inittab の編集内容(末尾2行を追加)

console::sysinit:/etc/init.d/rcS
ttyS0::askfirst:-/bin/sh
::respawn:/bin/appmgr
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
::sysinit:/etc/init.d/S40telnetd
::sysinit:/etc/init.d/S50hourly

etc/init.d/S40telnetd の作成内容

#! /bin/sh
/bin/telnetd -l /bin/sh & 

etc/init.d/S50hourly の作成内容

#! /bin/sh
/sbin/invoke_hourly &

sbin/invoke_hourly の作成内容

#! /bin/sh
sleep 120
if [ -x /mnt/LStorage/sknand/runonce ]; then
                /mnt/LStorage/sknand/runonce
fi
while true; do
        if [ -x /mnt/LStorage/sknand/hourly ]; then
                /mnt/LStorage/sknand/hourly
        fi
        sleep 3600
done

以上の修正を行ったあと、ファームファイルを再構築し、PF-50WG にインストールする。

telnetd が動くようになったので、PF-50WGにtelnetログインして各種操作ができるようになった。

$ telnet <PF-50WGのIPアドレス>
Trying <PF-50WGのIPアドレス>...
Connected to <PF-50WGのIPアドレス>.
Escape character is '^]'.

BusyBox v1.13.3 (2009-05-08 15:20:45 CST) built-in shell (msh)
Enter 'help' for a list of built-in commands.

# uname -a
Linux (none) 2.4.29 #5 Fri May 8 15:26:58 CST 2009 arc unknown
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                 8960      8960         0 100% /
none                     16440        56     16384   0% /tmp
none                     16440         0     16440   0% /mnt/LStorage
/dev/sknanda             12246      4270      7976  35% /tmp/conf
/dev/sknandb             88386     47744     40642  54% /mnt/LStorage/sknand
#