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