Kobo Touchの内蔵メモリ交換


Kobo Touchのシステムは2GBのmicroSD上に構築されています。

なかをあけて取り出してみると、SanDiskを使っていました。

それをLinuxでマウントしてみるとこんな感じです。

root@lxf:~# fdisk -l /dev/sde
Disk /dev/sde: 1977 MB, 1977614336 bytes
4 heads, 16 sectors/track, 60352 cylinders, total 3862528 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0×00000000

Device Boot Start End Blocks Id System
/dev/sde1 19456 543744 262144+ 83 Linux
/dev/sde2 543745 1068033 262144+ 83 Linux
/dev/sde3 1068034 3862527 1397247 b W95 FAT32
root@lxf:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sde2 253871 151777 102094 60% /media/recoveryfs
/dev/sde1 253871 219036 34835 87% /media/rootfs
/dev/sde3 1394520 576964 817556 42% /media/KOBOeReader
root@lxf:~#

で、手持ちの8GB microSDにコピーしようとしました。
とりあえず、手法としては、一番簡単な、丸ごとddでコピーして、パーテーション拡張、というもの

# dd if=/dev/sde of=sde.dat bs=4096

でイメージを取得したあと、microSDを入れ替えて

# dd if=sde.dat of=/dev/sde bs=4096

を実行するだけ、というもの。

このあと、GUIのgpartedを使って、/dev/sde3のパーテーション拡張とファイルシステム拡張を行いました。

そして、その8GB microSDをKobo Touchの中に入れて電源を入れると・・・

無事、8GBメモリ搭載のKobo Touchが完成しました。
(2012/07/22 22:00追記:32GBも試しました)

Kobo Tocuhの中を開けて8GBにしてみませんか? 16GBはまだ試してないんですけど、行けそうな感じです32GBも行けました

楽天版Kobo Touchの出荷時firmwareと最新firmwareのURL


出荷時の楽天版Kobo Touchは、以下の状態でした。
Firmware v1.9.18
kernel 2.6.35.3

この状態で、Koboデスクトップによってfirmwareアップデートを行い、使える様にしますが、その際にダウンロードに行く2012/07/20 16:00時点での最新firmware URLは以下です。
http://download.kobobooks.com/firmwares/kobo3/Eel/kobo3-update-2.0.2.zip

2012/08/26にv2.1.1が出ました。
http://download.kobobooks.com/firmwares/kobo3/rgreen/kobo3-update-2.1.1.zip

2012/12/20現在はv2.3.1が最新です。
touch用 http://download.kobobooks.com/firmwares/kobo3/bryant/kobo-update-2.3.1.zip
glo用 http://download.kobobooks.com/firmwares/kobo4/bryant/kobo-update-2.3.1.zip

なお、旧版についてですが、v1.9.17のURL ( http://download.kobobooks.com/firmwares/kobo3/cod/kobo3-update-1.9.17.zip )は判明していますが、v1.9.18は不明です。

最新firmware URLを取得するためにKoboデスクトップアプリが行っている操作は、以下です。

POST http://mobile.kobobooks.com/65796/mobileRequest.ashx HTTP/1.1
送付するコンテンツの中身

<?xml version="1.0" encoding="UTF-8"?>
<ConfigurationRequest xmlns="http://kobobooks.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RequestBody>
<PlatformID>00000000-0000-0000-0000-000000000310</PlatformID>
<PlatformOS>2.6.35.3</PlatformOS>
<PlatformOsVersion>NA</PlatformOsVersion>
<DeviceModel>Kobo Touch</DeviceModel>
<ApplicationVersion>1.9.18</ApplicationVersion>
<AffiliateName>RakutenBooks</AffiliateName>
<SerialNumber>シリアル番号</SerialNumber>
</RequestBody>
</ConfigurationRequest>

返ってくるXMLの応答中に「http://download.kobobooks.com/firmwares/kobo3/Eel/kobo3-update-2.0.2.zip」がある。

なぜか同期されないKoboライブラリ


2019/10/10追記
このページの記載は過去のものです。いまは当てはまらないと思います。


結構、検索でくる人が多いので、内容を改訂しました。

Koboデスクトップアプリと、Kobo Touchの間での同期に問題が生じることがあります。
当方で確認した現象は以下の3種類。
(1)買ったはずの書籍がKoboデスクトップアプリのライブラリに表示されない
(2)Koboデスクトップアプリのライブラリにある書籍がKobo Touch側にコピーされない(同期されない)
(3)Kobo Touchに手動でコピーしたpdf/epubファイルが、表示されない

対処方法
(1)買ったはずの書籍がKoboデスクトップアプリのライブラリに表示されない
Koboデスクトップアプリが、楽天版ではない場合に発生します。
http://rakuten.kobosetup.com/から、入手したものを使用してください。
英語サイトからのだと、だめなようです。

(2)Koboデスクトップアプリのライブラリにある書籍がKobo Touch側にコピーされない(同期されない)
Kobo Touch上のデータベースが壊れている場合に発生するようです。
一回、Kobo Touchを初期化すれば治ります。
ただし、Kobo Touch内のデータは全部消えますので、手動でpdfやepubファイルをコピーしている場合は、手動でパソコンにコピーしておく必要があります。

発生原因ですが、おそらく、Koboデスクトップアプリで購入した書籍の同期と、手動でのpdf/epubファイルのコピーを同時に行うと、Kobo Touch内のデータベース作成に問題が生じてしまうようです。

(3)Kobo Touchに手動でコピーしたpdf/epubファイルが、表示されない
これも、(2)と同様にKobo Touch上のデータベースの問題なようで、初期化必須な感じです。

なお、(2)と(3)の対処方法ですが、もしかすると初期化ではなく「.Koboディレクトリ」全体を削除する、でもいいかもしれません。

Kobo Tocuhの中を開けて8GBにしてみませんか? 16GBはまだ試してないんですけど、行けそうな感じです

— 以下、最初に作成した記事 —
昨日の夜に、海外Koboから楽天ID宛に20%オフクーポンが来たわけです。
なので、とりあえず、何を買うかなぁ、と悩んだのですが、まぁ、Lerning Perlを買ってみたわけです。
で、ついでに、安いのなにかないかなぁ、と探してみたらGA文庫マガジン Vol.1なんてのもあったので買いました。

そういえば、Android版Koboアプリなんてのもあったっけ、とインストールしたところ、以前は海外Koboアカウントでログインだったものが、楽天IDでのログインとなっているのを発見。
で、楽天IDでログインすると、さきほど買った、「Lering Perl」と、おそらく英語版Kobo Touchでデフォルト書籍である2冊がダウンロードされてきました。
GA文庫マガジンは、eReadersのみ対応、とあるので、まぁ、当然といえば当然です。

で、問題はここから。
Kobo Desktopアプリを、別のパソコンにセットアップして、つなげて、ライブラリを同期してみました。

なぜか3冊しか表示されない・・・

Webでライブラリを確認すると下記の様に11冊あるはずなのに・・・

そんなこんなで、初期トラブルはまだまだ続きそうです・・・
— 追記 —

原因判明

http://www.kobosetup.com/から入手できるKoboデスクトップアプリ3.0.0では、現象が発生。
http://rakuten.kobosetup.com/から入手できるKoboデスクトップアプリ 3.0.1では、発生しない。

・・・なんでそんなことになったかというと、KoboデスクトップアプリのダウンロードURLがわからなかったので、ヘルプを見たら、Q.koboデスクトップの設定はどうすればいいですか?に「無料のkobo デスクトップをダウンロードし、インストールします。」と書いてあったから。(2012/07/23 このQAは修正されました)

— 追記2 —
マニュアルPDFを20個ばかり入れてみたら、「コンテンツを処理しています」の表示のまま30分以上待ちに・・・
ゆっくりとパーセンテージは増えているので、なにか処理は行っているみたいなんだけど・・・

あと、GA文庫マガジンは、Kobo Touch内に同期が完了しないのは何なんだろうか。
Koboデスクトップアプリの表示上はあと少しでコピーが完了しそうなのに、そこから30分経過しても何も変わらない。
.Kobo\epubフォルダをのぞくと、それっぽいファイルはコピーされているので、後処理に問題が生じているんだろうけど・・・

— 追記3 —
その後、何度やってもちゃんと登録されないので、Kobo Touchを初期化してみた。
そうしたら、同じpdf群を入れても比較的素早く認識するようになった。

おそらく、Koboデスクトップアプリによる書籍追加、と、エクスプローラ操作によるpdf/epubファイルコピーを同時に行うと、内部のSQLite3によるデータベース登録処理に問題が生じてしまう、というバグなんじゃないかと・・・

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
#

楽天版Kobo Touchで日本語epubが文字化ける



2014/09/26 追記

いまでも時々このページにアクセスがあるようなので、2014年9月現在で判明している状況を記載します。

Kobo Touch/Kobo gloともに、epubファイルの取り扱いに独特の仕様があります。

ファイルの拡張子によって、epub readerの動作が変わります。
・「.epub」英語圏の書籍用で、デフォルトフォントが英字
・「.kepub.epub」日本語環境の書籍用で、デフォルトフォントが日本語
(.epubはEPUB2 readerで、.kepub.epubはEPUB3 readerだ、という話もありますが、あんまりそのようには思えない・・・)

つまり・・・「週刊ヤマケイ 創刊準備号01.epub」というファイル名だと文字化けが発生し、下記の様に手動で表示するフォントを変更しなければならない。
「週刊ヤマケイ 創刊準備号01.kepub.epub」と、ちょっと気持ち悪いですが、拡張子を2つ並べることで、日本語も文字化けせずに読むことができるようになります。

このため、Kobo系の対応も考えて、epub書籍を配布する場合は、「.kepub.epub」という拡張子で配布してしまった方がいいでしょう。

以下は、2年前に書いた部分です。


週刊ヤマケイ 創刊準備号01が出た、というメールが来たのでさっそく楽天版Kobo Touchに入れてみました。

見事に文字化けです。


フォント「ドキュメント デフォルト」ではなく、日本語のフォントを指定してみます。

ちなみに、上記画像で指定しているのはやさしさゴシックというフォントです。
Koboをパソコンにつなげて出てくるドライブに「fonts」というディレクトリを作成し、そこにフォントファイルを入れると、好きなフォントが指定できるようになります。

表示できました!