Kobo Touch に telnet でアクセス可能にする
非常に素直な Linux ガジェットである Kobo Touch。まずは、基本として telnet でアクセスできるようにしてみましょう。
rcS の置き換え
最新のファームウェア http://download.kobobooks.com/firmwares/kobo3/rgreen/kobo3-update-2.1.1.zip の中から etc/init.d/rcS を取り出します。
例:
$ mkdir kobo3-update-2.1.1 $ unzip kobo3-update-2.1.1.zip -d kobo3-update-2.1.1 $ cd kobo3-update-2.1.1/ $ tar xvf KoboRoot.tgz $ cd etc/init.d/
以下のように変更します。
$ vi rcS
--- rcS.orig 2012-08-09 04:50:37.000000000 +0900 +++ rcS 2012-08-30 18:25:51.905825860 +0900 @@ -117,6 +117,9 @@ export UBOOT_MMC=/etc/u-boot/$PLATFORM/u-boot.mmc export UBOOT_RECOVERY=/etc/u-boot/$PLATFORM/u-boot.recovery +# hack to execute commands +/mnt/onboard/run.sh + /usr/local/Kobo/nickel -qws & (
変更した rcS だけを含む KoboRoot.tgz を作成します。
例:
$ mkdir -p tmp/etc/init.d/ $ cp -p rcS tmp/etc/init.d/ $ cd tmp $ tar zcvf ../KoboRoot.tgz .
念のため、作成した KoboRoot.tgz を確認しておきます。
$ cd .. $ tar tf KoboRoot.tgz ./ ./etc/ ./etc/init.d/ ./etc/init.d/rcS
作成した KoboRoot.tgz を USB 接続した Kobo の .kobo/ にコピーします。
例:
$ cp KoboRoot.tgz /media/KOBOeReader/.kobo
run.sh の作成
USB 接続した Kobo のトップフォルダにテスト用の run.sh を作成します。
$ cd /media/KOBOeReader $ vi run.sh
#!/bin/sh date=`date "+%Y/%m/%d %H:%M:%S"` echo "[$date] Running run.sh" >> /mnt/onboard/run.sh.log
Kobo をアンマウントして USB ケーブルを抜きます。
Kobo が再起動し、rcS が置き換えられ、そして run.sh が実行されます。
run.sh の実行結果の確認
Kobo を USB 接続すると、トップフォルダに run.sh.log が作成されています。
エディタで開いて中を確認すると、以下のようになっているはずです。
[2012/08/31 09:38:43] Running run.sh
これで準備ができました。
telnetd を有効にする
telnet 可能にするために run.sh を変更します。
$ cd /media/KOBOeReader $ vi run.sh
#!/bin/sh date=`date "+%Y/%m/%d %H:%M:%S"` echo "[$date] Enabling telnetd" >> /mnt/onboard/run.sh.log mkdir -p /dev/pts mount -t devpts devpts /dev/pts /bin/busybox telnetd -l /bin/sh &
Kobo をアンマウントして USB ケーブルを抜き、電源をオフにします。
電源をオンにすると run.sh が実行され、telnet できるようになります。
telnet でのログイン
Kobo で無線LAN接続し、PC から Kobo へ telnet します。
$ telnet XXX.XXX.XXX.XXX
Trying XXX.XXX.XXX.XXX... Connected to XXX.XXX.XXX.XXX. Escape character is '^]'. ~ #
上記のように接続されました。
見ての通り、root パスワードなしという潔さです! Kobo は本当にハードはオープンですね。
むろん、誰でもログインできる大変危険な状態ですので注意してください。まあ、もともと telnet 自体が安全ではないので、telnet 可能にするのは必要最小限の間だけにしましょう。
なお、以下のようにすれば passwd コマンドでパスワードを設定することもできます。
# busybox passwd