Kobo Touchを改造


Kobo Touchをいろいろいじってたら、初期化しないでもtelnet/rootを有効にする方法がわかりました。
Kobo Touchのroot/telnet有効手順 改訂版」にて解説しています。
また、「Kobo Touchを32GB内蔵モデルに改造した」という記事もあります。

以上、2012/07/24追記分でした。
以下は、2012/07/19作成の元記事です。




さて、楽天Kobo Touch

とりあえず、買って使ってみましたが、まぁ、いろいろ不満点があるわけです。
ページめくり操作とかカスタマイズできたらいいなぁ、とか考えるわけです。

Sony Readerの時に情報源にしたMobileRead Wikiを探すとありました。
Kobo Touch Hacking

楽天版Kobo Touchでも同じでした。

手法の概要
・初期セットアップ時にfirmwareをダウンロードしてくるので、それを改造してtelnetを有効にする

そんなわけで、初期化が必須となります。

手順

1. 初期化する
2. Kobo Desktopでユーザ登録&firmwareダウンロードする。
3. Kobo Desktop上、作業が終わっても、Kobo TouchのUSBを抜かない
4. Kobo Touchをパソコンから開き、「.Kobo」ディレクトリ内にある「KoboRoot.tgz」あと、「upgradeディレクトリ」と「manifest.md5sum」をパソコンにコピー
5. 7zipでKoboRoot.tgzの中にある「KoboRoot.tar」を開く
6. KoboRoot.tgzの中の「etc\init.d\rcS」を編集する
 最終行に「/mnt/onboard/run.sh &」を追加する
7. 編集したrcSはKoboRoot.tgzに戻す
8. 変更したKoboRoot.tgzをKoboTouchの「.Kobo」ディレクトリに戻す
9. パソコンから開いたKobo Touchのドライブ直下に「run.sh」というファイルを作成
 内容は以下。なお、改行コードはUNIX準拠にすること

#!/bin/bash
cp /etc/inittab /mnt/onboard
cp /etc/inetd.conf /mnt/onboard
cp /etc/init.d/rcS /mnt/onboard

10. USBケーブルを外すと、firmware updateが開始
11. firmware update終了後、パソコンにつないでみると、「inetd.conf」「inittab」「rcS」がコピーされている

これを行うと、以後、run.shを編集するとなんでもできる、という感じです。

で、手順6,7を、inetd.confやinittabにも適用すると、ログインできるように・・・・

ということなんだけど、うちの環境だと、telnetが拒否られてる・・・
2012/07/20 1:20 追加

拒否られているように見えたけど、実は、違うIPにアクセスしようとしていたことが判明・・・
うちでは、wikiの内容とは別のやりかた、どちらかというとEA800やflucardの時に使ったやりかたでtelnetdを有効にしています。

/etc/init.d/rcS内に/mnt/onboard/run.shを実行する修正だけを行って、run.shの方に以下を書くやり方です。

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

inetd.confとinittabを書き換えなくても、これでokです。

なお、Kobo Touchの中をあけると、システムは2GBのmicroSDに入っている、というのがわかります。
このmicroSDを交換して、大容量にする、ということが可能だったります。
詳しくは「Kobo Touchの内蔵メモリ交換」にてっ!


以下は資料用情報です。

# uname -a 
Linux (none) 2.6.35.3-850-gbc67621+ #325 PREEMPT Wed May 23 09:35:44 CST 2012 armv7l GNU/Linux
# busybox
BusyBox v1.17.1 (2011-05-30 22:37:11 EDT) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

Currently defined functions:
	[, [[, acpid, addgroup, adduser, adjtimex, arp, arping, ash, awk,
	basename, beep, blkid, bootchartd, brctl, bunzip2, bzcat, bzip2, cal,
	cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot,
	chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw,
	cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod,
	devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname,
	dos2unix, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env,
	envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset,
	fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs,
	flock, fold, free, freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget,
	ftpput, fuser, getopt, getty, grep, gunzip, gzip, halt, hd, hdparm,
	head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig,
	ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice,
	ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel,
	kbd_mode, kill, killall, killall5, klogd, last, length, less, linux32,
	linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname,
	logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lspci, lsusb,
	lzcat, lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev,
	mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.ext3,
	mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo,
	modprobe, more, mount, mountpoint, mt, mv, nameif, nc, netstat, nice,
	nmeter, nohup, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof,
	ping, ping6, pipe_progress, pivot_root, pkill, popmaildir, poweroff,
	printenv, printf, ps, pscan, pwd, raidautorun, rdate, rdev, readahead,
	readlink, readprofile, realpath, reboot, reformime, renice, reset,
	resize, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake,
	run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed,
	sendmail, seq, setarch, setconsole, setfont, setkeycodes, setlogcons,
	setsid, setuidgid, sh, sha1sum, sha256sum, sha512sum, showkey,
	slattach, sleep, smemcap, softlimit, sort, split, start-stop-daemon,
	stat, strings, stty, su, sulogin, sum, sv, svlogd, swapoff, swapon,
	switch_root, sync, sysctl, syslogd, tac, tail, tar, tcpsvd, tee,
	telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr,
	traceroute, traceroute6, true, tty, ttysize, tunctl, udhcpc, udhcpd,
	udpsvd, umount, uname, unexpand, uniq, unix2dos, unlzma, unlzop, unxz,
	unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, volname,
	wall, watch, watchdog, wc, wget, which, who, whoami, xargs, xz, xzcat,
	yes, zcat, zcip

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               247.9M    213.9M     34.0M  86% /
none                     16.0M         0     16.0M   0% /tmp
none                    124.2M      4.0K    124.2M   0% /dev
none                     16.0K         0     16.0K   0% /var/log
none                    128.0K      8.0K    120.0K   6% /var/run
/dev/mmcblk0p3            1.3G     15.9M      1.3G   1% /mnt/onboard
# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext4 rw,noatime,nodiratime,barrier=1,data=ordered 0 0
none /proc proc rw,relatime 0 0
none /tmp tmpfs rw,relatime,size=16384k 0 0
none /dev tmpfs rw,relatime 0 0
none /var/log tmpfs rw,relatime,size=16k 0 0
none /var/run tmpfs rw,relatime,size=128k 0 0
none /sys sysfs rw,relatime 0 0
/dev/mmcblk0p3 /mnt/onboard vfat rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
# cat /proc/meminfo
MemTotal:         254388 kB
MemFree:          202872 kB
Buffers:            1928 kB
Cached:             7232 kB
SwapCached:            0 kB
Active:             3736 kB
Inactive:           6116 kB
Active(anon):        692 kB
Inactive(anon):       12 kB
Active(file):       3044 kB
Inactive(file):     6104 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         254388 kB
LowFree:          202872 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:           724 kB
Mapped:             1052 kB
Shmem:                12 kB
Slab:               2328 kB
SReclaimable:        852 kB
SUnreclaim:         1476 kB
KernelStack:         352 kB
PageTables:          188 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      127192 kB
Committed_AS:       6300 kB
VmallocTotal:    1638400 kB
VmallocUsed:        1420 kB
VmallocChunk:    1635384 kB
#
  1. HI,
    Your blog is very wonderful.But i have some questions.
    According to the steps,I couldn’t find two files, inittab and inetd.conf.
    How to solve it? thx 😛

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>