なぜか同期されない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」というディレクトリを作成し、そこにフォントファイルを入れると、好きなフォントが指定できるようになります。

表示できました!

Kobo Touchのセットアップで楽天アカウントが使えない!


下記の記述はKoboのサービスが始まった2012年当初の話です。現在は関係無いので注意してください。とはいえ、初期セットアップ時に「日本語」を選択しない場合に似たような事態が発生するかもしれません。


Kobo Touchのセットアップで楽天アカウントが使えない!

そんなトラブルがありました。
Kobo Desktopのログイン画面で楽天ID入れろ、とあるので入れてみてもエラーになったり。

キャンセルしたあと、なんかかんやしていると、海外Koboのアカウントでログインできてしまって、楽天IDとの連携ができない、なんてことに・・・

kobo Touch ...

kobo Touch シルバー
価格:7,980円(税込、送料込)
楽天ブックスで詳細を見る

(ちなみに、うちで買ったのは↑の裏面がシルバーのモデル。黒か迷ったんですが・・・)

その場合は、一度、Kobo Touch上でログアウトし、Kobo Desktop上でもログアウトします。
その後、再度、Kobo Desktop上で、楽天IDを使ってログインしてみてください。
エラーがでるのであれば、ひとまず、諦めて、あとで再実行してみます。

ログインができると、Kobo Touch上のデータを消していいか、と聞かれますので、ひと思いにやっちゃいましょう(当然消されるけど)

うちの場合は、これで楽天IDでログインできるようになりました。

でさ・・・
うち、海外Koboにアカウントあるんだけど、久々に海外Koboのアカウント状態をWebで確認しようとKobo ebooksのサイトにいったら、「Rakuten ID」でのログインしかできないんですけど・・・
ブラウザの言語を英語のみにしても、日本のしか表示されないし、どうりゃいいんだろ・・・

Kobo Touchが届いた



本日発売の楽天Kobo Touchが、早速届きました。

箱がもうちょっと大きいのかと思っていたら、思いの外コンパクトだったなぁ、とか思いました。

で、届いたのが8時半頃で、セットアップを開始したところ、その時間だと楽天Koboサービスがちゃんと開始していなくて大変でした^^;;
1回、海外Koboアカウントでセットアップしちゃいました。

その後、9時過ぎてから、再度やってみたところ、ようやく楽天IDを利用したセットアップが完了しました。
なお、楽天IDで登録したメールアドレスを使って海外Kobo上にアカウントが作られる模様です。

とりあえず、パソコンにつないで、エクスプローラからKoboに対して、pdf,epub,テキストファイルをコピーしてみたところ、サブディレクトリ内も含めて、認識してくれました。

さすがに拡張子zbfのxmdf書籍は認識してくれませんでした。

まぁ、しばらく使ってみますかねぇ・・・

ちなみに、色は写真にあるようにシルバーを選択しています。
黒にするか悩んだんですが、「外で使うと、黒は熱を吸収して熱いよ」と言われ、あぁ、そういえば、以前、Eee Note EA800を外で使って、それを感じたっけ、と白系を選択した、という経緯があったりします。

kobo Touch シルバー

kobo Touch シルバー
価格:7,980円(税込、送料込)
楽天ブックスで詳細を見る

kobo Touch ブラック

kobo Touch ブラック
価格:7,980円(税込、送料込)
楽天ブックスで詳細を見る

Kobo Touchのカバーを買うかどうかは悩んだんですが、本体価格に対して、その半額程度を占めるカバーってどうなの?と買うのをためらっちゃう感じなんですよねぇ・・・
駄目ならもう1台、的な感じで・・・

追記1
・テキストファイルは、SJIS,UTF-8共に日本語が文字化けしました。
・pdfファイルの表示は右端が微妙に更新されない、表示されない、というバグがあるようです。
・上記pdfバグが治るかなと、「読書設定」で「ページリフレッシュ」の「画面リフレッシュレート」を「6ページ」となっているのを「1ページ」に変更してみても状況は変わらなかった。
・週間やまけい 創刊準備号は文字化けた

追記2
Koboをパソコンにつなぐと、.Koboという、いかにも設定ファイルが入ってそうなディレクトリがあって興味深い

.Kobo
.Kobo/images
.Kobo/kepub
.Kobo/kepub/bf087666-9b66-4c8e-9aea-c26c164587ed
.Kobo/kepub/d3186113-5302-4a38-bf84-b9d5077b9a9e
.Kobo/kepub/16e1c98a-6710-4a53-abad-995013530c50
.Kobo/kepub/7fdfdf2b-b986-4093-b395-75ff4c167bcc
.Kobo/kepub/2565f934-c253-463f-b640-63bfdd683e8c
.Kobo/kepub/5bd01eb7-aa01-48d2-9b54-45e0713549fa
.Kobo/kepub/a4d0ed0f-c1d2-4097-8cb6-05bd3c021348
.Kobo/KoboReader.sqlite
.Kobo/device.salt.conf
.Kobo/Trolltech.conf
.Kobo/version
.Kobo/Kobo
.Kobo/Kobo/Analytics.conf
.Kobo/Kobo/Kobo eReader.conf
.Kobo/affiliate.conf
# cat affiliate.conf
[General]
affiliate=RakutenBooks

# cat version
N905B26325589,2.6.35.3,2.0.1,2.6.35.3,2.6.35.3,00000000-0000-0000-0000-000000000310
#

Trolltech.confとimagesディレクトリは連携しているっぽい感じ。

そして、どうみてもSQLiteなファイル

# file KoboReader.sqlite
KoboReader.sqlite: SQLite 3.x database
$ sqlite3 KoboReader.sqlite
SQLite version 3.7.12.1 2012-05-22 02:45:53
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
AbTest              Rules               content_settings    volume_shortcovers
Achievement         Shelf               publications        volume_tabs
Bookmark            ShelfContent        ratings
DbVersion           content             shortcover_page
Event               content_keys        user
sqlite>