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 #