Kobo Touch を kobo3-update-2.1.4 にアップデートした

少々遅くなりましたが、アップデートした時の作業記録をまとめておきました。

実はアップデート後の変更を失敗し、ファクトリーリセットをかけました。その後の手順をまとめています。

ファームウェアを更新する

ファームウェアをダウンロードして、USB 接続した Kobo Touch の .kobo/ に展開します。

$ wget http://download.kobobooks.com/firmwares/kobo3/andreychuk/kobo3-update-2.1.4.zip
$ unzip kobo3-update-2.1.4.zip -d /media/KOBOeReader/.kobo/

Kobo Touch を再起動するとファームウェアが更新されます。

起動したら、タイムゾーンを合わせます。

Dropbear をインストールする

Dropbear をインストールします。Dropbear の設定は後でします。

run.sh と usbnet 接続可能にする

ファームウェアを展開します。

$ mkdir kobo3-update-2.1.4
$ unzip kobo3-update-2.1.4.zip -d kobo3-update-2.1.4
$ cd kobo3-update-2.1.4/
$ tar xvf KoboRoot.tgz

rcS を変更します。

$ mkdir -p tmp/etc/init.d/
$ cp -p etc/init.d/rcS tmp/etc/init.d/rcS.orig
$ cp -p etc/init.d/rcS tmp/etc/init.d/
$ vi tmp/etc/init.d/rcS
--- tmp/etc/init.d/rcS.orig	2012-09-27 06:20:45.000000000 +0900
+++ tmp/etc/init.d/rcS	2012-10-04 11:04:37.389278082 +0900
@@ -118,6 +118,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 &
 
 (

USB ネット接続できるように変更します。

$ mkdir -p tmp/usr/local/Kobo/udev/
$ cp -p usr/local/Kobo/udev/plug tmp/usr/local/Kobo/udev/plug.orig
$ cp -p usr/local/Kobo/udev/plug tmp/usr/local/Kobo/udev/plug
$ vi tmp/usr/local/Kobo/udev/plug
--- tmp/usr/local/Kobo/udev/plug.orig	2012-10-01 19:26:49.000000000 +0900
+++ tmp/usr/local/Kobo/udev/plug	2012-10-04 11:38:10.434726517 +0900
@@ -11,3 +11,5 @@
 
 echo usb plug $ACTION >> /tmp/nickel-hardware-status &
 
+# activate usbnet interface
+ifconfig usb0 192.168.2.2

KoboRoot.tgz を作成します。

$ cd tmp
$ tar zcvf ../KoboRoot.tgz .

作成した KoboRoot.tgz を確認しておきます。

./
./etc/
./etc/init.d/
./etc/init.d/rcS.orig
./etc/init.d/rcS
./usr/
./usr/local/
./usr/local/Kobo/
./usr/local/Kobo/udev/
./usr/local/Kobo/udev/plug.orig
./usr/local/Kobo/udev/plug

作成した KoboRoot.tgz を USB 接続した Kobo Touch の .kobo/ にコピーします。

$ cp KoboRoot.tgz /media/KOBOeReader/.kobo

Dropbear の設定をするため、/media/KOBOeReader/run.sh に以下を記載します。

#!/bin/sh

mkdir -p /etc/dropbear
cd /etc/dropbear
test -f rsa_host_key || dropbearkey -t rsa -f rsa_host_key
test -f dss_host_key || dropbearkey -t dss -f dss_host_key

if ! grep -l dropbear /etc/inittab; then
  cp -p /etc/inittab /etc/inittab.orig
  echo '::respawn:/usr/sbin/dropbear -d /etc/dropbear/dss_host_key -r /etc/dropbear/rsa_host_key -F -s' >>/etc/inittab
fi

cp -p /etc/passwd /etc/passwd.orig
sed -i 's/^root::/root:*:/' /etc/passwd
sed -i 's/:root:\/:/:root:\/root:/' /etc/passwd

chown -R root:root /root
chmod 700 /root
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

sync

kill -1 1

Kobo Touch をアンマウントして USB ケーブルを抜きます。

これで Kobo が再起動すると、Wi-FiSSH 接続できるようになります。

USB ネット接続を有効にする

run.sh を以下に変更し、Kobo を再起動します。

#!/bin/sh
date=`date "+%Y/%m/%d %H:%M:%S"`
echo "[$date] Starting usbnet" >> /mnt/onboard/run.sh.log
/bin/busybox insmod /drivers/ntx508/usb/gadget/arcotg_udc.ko
/bin/busybox insmod /drivers/ntx508/usb/gadget/g_ether.ko

再起動すると、usbnet が使えるようになります。

/etc/hosts の変更

Kobo Touch の使用状況を Google Analytics に送信されないように hosts ファイルを変更します。

--- /etc/hosts.orig
+++ /etc/hosts
@@ -1 +1,2 @@
 127.0.0.1 host localhost.localdomain localhost localhost localhost.localdomain
+127.0.0.1 www.google-analytics.com ssl.google-analytics.com

tcpdump をインストールする

Wi-Fi での通信はすべて記録するようにしておきます。