kobo telnetdを入れてみた

http://d.hatena.ne.jp/toshi_hirasawa/20121023/1350992640
ここからの続き

Koboディレクトリ内にKoboRoot.tgzがあればそれを読み込み、アップデート開始する
アップデートの際は、もともと存在しているデータ、元の設定はのこる
KoboRoot.tgzは、標準イメージからのアップデート差分のみで構成されている






1. 書き換え済みのrcSのみが含まれたアップデータを入手
 http://blog.osakana.net/sw/kobo/KoboRoot-root.tgz
2. ダウンロードしたKoboRoot-root.tgzを「KoboRoot.tgz」という名前に変更
3. Kobo Touchをパソコンに接続し、.kobo ディレクトリの中に KoboRoot.tgzを ピーする
4. Kobo Touchをパソコンから切り離すと、アップデート開始
5. 再起動が終わるのを待つ
6. Kobo Touchをパソコンに接続し、「run-example.sh」というファイルを「run.sh」に変更する
7. run.shを編集して、実行したいコマンドを書く
8. Kobo Touchをパソコンから切り離す
9. Kobo Touchの電源を切る
10. Kobo Touchの電源を入れると、run.shが実行される

hirasawa@ubuntu1204-20:~/desktop/kobo_dir$ tar zftv KoboRoot.tgz 
drwxr-xr-x 1000/1000         0 2012-07-24 10:45 ./
drwxr-xr-x root/root         0 2012-07-24 10:47 ./etc/
drwxr-xr-x root/root         0 2012-07-24 10:47 ./etc/init.d/
-rwxr-xr-x root/root      3477 2012-07-24 10:24 ./etc/init.d/rcS
drwxr-xr-x root/root         0 2011-07-05 06:54 ./mnt/
drwxr-xr-x root/root         0 2012-07-24 10:58 ./mnt/onboard/
-rw-r--r-- root/root       109 2012-07-24 10:56 ./mnt/onboard/run-example.sh

rsSの中身はこんなになってますね。

hirasawa@ubuntu1204-20:~/desktop/kobo_dir$ cat etc/init.d/rcS 
#!/bin/sh

mount -o remount,noatime,nodiratime /dev/mmcblk0p1 /

PLATFORM=freescale
if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then
	PLATFORM=ntx508
fi

if [ $PLATFORM == freescale ]; then
	if [ ! -s /lib/firmware/imx/epdc_E60_V220.fw ]; then
		mkdir -p /lib/firmware/imx
		dd if=/dev/mmcblk0 bs=512K skip=10 count=1 | zcat > /lib/firmware/imx/epdc_E60_V220.fw
		sync
	fi
fi

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

for i in /proc /dev /root /tmp /sys /mnt/sd /mnt/onboard /mnt/user /var/lib /var/log /var/run /lib/modules/`uname -r`; do
	[ ! -d $i ] && mkdir -p $i
done;

/bin/mount -t proc  none  /proc
/bin/mount -t tmpfs none -o size=16m /tmp
/bin/mount -t tmpfs none /dev
/bin/mount -t tmpfs none -o size=16k /var/log
/bin/mount -t tmpfs none -o size=128k /var/run
/bin/mount -t sysfs none -o size=500k /sys

mkfifo /tmp/nickel-hardware-status
rm -rf /etc/udev/rules.d/70-persistent-net.rules

echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
/sbin/udevd -d
/sbin/udevadm control --env=STARTUP=1
/sbin/udevadm trigger
/sbin/udevadm settle --timeout=2
/sbin/udevadm control --env=STARTUP=

( usleep 400000; /etc/init.d/on-animator.sh ) &

dosfsck -a -w /dev/mmcblk0p3
mount -t vfat -o iocharset=utf8 /dev/mmcblk0p3 /mnt/onboard
rm -rf /mnt/onboard/fsck*
rm -rf /mnt/onboard/FSCK*

echo -n 8192 > /proc/sys/vm/min_free_kbytes

if [ ! -e /mnt/onboard/.kobo ]; then
	mkdir -p /mnt/onboard/.kobo
	tar zxf /usr/local/Kobo/db.tgz -C /mnt/onboard
	sync
	echo "Decompressed database"
fi

if [ -e /mnt/onboard/.kobo/Kobo.tgz ]; then
	zcat /mnt/onboard/.kobo/Kobo.tgz > /dev/null && tar zxf /mnt/onboard/.kobo/Kobo.tgz -C /usr/local/Kobo/
	rm /mnt/onboard/.kobo/Kobo.tgz
	echo "Done upgrading..."
fi
                               
if [ -e /mnt/onboard/.kobo/KoboRoot.tgz ]; then
	killall on-animator.sh
	zcat /etc/images/ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic
	/etc/init.d/update-animator.sh &
	zcat /mnt/onboard/.kobo/KoboRoot.tgz > /dev/null && tar zxf /mnt/onboard/.kobo/KoboRoot.tgz -C /
	if [ -e /mnt/onboard/.kobo/upgrade ]; then
		/etc/init.d/upgrade-wifi.sh
		rm -rf /mnt/onboard/.kobo/upgrade
	fi
	rm /mnt/onboard/.kobo/KoboRoot.tgz
	killall update-animator.sh
	echo "Done upgrading..."
	zcat /etc/images/ghostbuster.raw.gz | /usr/local/Kobo/pickel showpic
	zcat /etc/images/reboot.raw.gz | /usr/local/Kobo/pickel showpic
	sync
	reboot
fi

(
	/usr/local/Kobo/pickel disable.rtc.alarm

	if [ ! -e /etc/wpa_supplicant/wpa_supplicant.conf ]; then
		cp /etc/wpa_supplicant/wpa_supplicant.conf.template /etc/wpa_supplicant/wpa_supplicant.conf
	fi

	echo 1 > /sys/devices/platform/mxc_dvfs_core.0/enable

	/sbin/hwclock -s -u
) &

INTERFACE=wlan0
WIFI_MODULE=ar6000
if [ $PLATFORM == ntx508 ]; then
	INTERFACE=eth0
	WIFI_MODULE=dhd
fi

export INTERFACE
export WIFI_MODULE

export QWS_MOUSE_PROTO="tslib_nocal:/dev/input/event1"
export QWS_KEYBOARD=imx508kbd:/dev/input/event0
export QWS_DISPLAY=Transformed:imx508:Rot90
export NICKEL_HOME=/mnt/onboard/.kobo
export LD_LIBRARY_PATH=/usr/local/Kobo
export WIFI_MODULE_PATH=/drivers/$PLATFORM/wifi/$WIFI_MODULE.ko
export LANG=en_US.UTF-8
export UBOOT_MMC=/etc/u-boot/$PLATFORM/u-boot.mmc
export UBOOT_RECOVERY=/etc/u-boot/$PLATFORM/u-boot.recovery

/usr/local/Kobo/nickel -qws &

(
	if [ -e /dev/mmcblk1p1 ]; then
		ACTION=add DEVNAME=/dev/mmcblk1p1 /usr/local/Kobo/udev/sd
	fi
) &

/mnt/onboard/run.sh &

添付のrun-example.shの内容

	
#!/bin/sh
echo "Running run.sh" >> /mnt/onboard/command-output.txt
date >> /mnt/onboard/command-output.txt

これを、telnetを有効にしたい場合は、以下の様に変更する。

#!/bin/sh
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
/bin/busybox telnetd -l /bin/sh &


さて、無線LAN越しで接続してみる。

hirasawa@ubuntu1204-20:~$ nmap 192.168.1.223

Starting Nmap 5.21 ( http://nmap.org ) at 2012-10-23 22:26 JST
Nmap scan report for 192.168.1.223
Host is up (0.0039s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
23/tcp open  telnet

Nmap done: 1 IP address (1 host up) scanned in 2.90 seconds
hirasawa@ubuntu1204-20:~$ telnet 192.168.1.223
Trying 192.168.1.223...
Connected to 192.168.1.223.
Escape character is '^]'.

~ # pwd
/
~ # ls -ltr
total 746
dr-xr-xr-x   60 root     root             0 Jan  1  1970 proc
drwxr-xr-x    5 root     root          1024 Jul  5  2011 mnt
drwxr-xr-x    4 root     root          1024 Aug  9  2011 drivers
drwxr-xr-x    7 root     root          1024 May 29 05:49 usr
drwxr-xr-x   15 root     root          1024 Jul 24 10:47 etc
-rw-r--r--    1 root     root        731059 Aug 16 03:48 fs.md5sum
drwx------    2 root     root         12288 Oct 22 09:30 lost+found
drwxr-xr-x    9 root     root          6144 Oct 22 09:31 lib
lrwxrwxrwx    1 root     root            11 Oct 22 09:32 linuxrc -> bin/busybox
drwxr-xr-x    2 root     root          3072 Oct 22 09:32 sbin
drwxr-xr-x    3 root     root          1024 Oct 22 09:32 root
drwxr-xr-x    6 root     root          1024 Oct 22 09:33 libexec
drwxr-xr-x    5 root     root          1024 Oct 22 09:33 var
drwxr-xr-x    2 root     root          4096 Oct 23 20:38 bin
drwxr-xr-x   12 root     root             0 Oct 23 22:04 sys
drwxrwxrwt    8 root     root          2480 Oct 23 22:04 dev
drwxrwxrwt    3 root     root           100 Oct 23 22:25 tmp
~ # 

よっしゃw