View Single Post
Old 04-10-2015, 10:21 PM   #2
davidfor
Grand Sorcerer
davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.davidfor ought to be getting tired of karma fortunes by now.
 
Posts: 24,905
Karma: 47303824
Join Date: Jul 2011
Location: Sydney, Australia
Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos
I'm not completely sure what you are asking and what you really want. So, I'm going to dump some information. This is based on what you have described and what I know about how calibre and the Kobo firmware works.

And as a short answer: Apart from the last error, I believe it is all working the way it is supposed to.


I think this really depends on how are you connecting calibre to the device? There are several ways and what books are seen by calibre depends on the way the books that will be found.

But firstly, you might have a misunderstanding about the "metadata.calibre" file. This is not really a database of books on the device. It is an aid for calibre to connect the books on the device to the books in the calibre library. Calibre finds the books on the device using the appropriate method for the device. Then it matches those books to the books in the library. Then it writes the metadata.calibre file to help the matching the next time. The metadata.calibre file will also be updated when you send a book to the device, delete a book or use the "Match book to library" function.

The "normal" way for calibre to find books on a Kobo device is the KoboTouch or KoboTouchExtend driver. The driver reads the database on the device. Any book that is in the database will be shown in the device list. If there are books that are on the device and not in the database, calibre knows nothing about them.

Another way is to disable the drivers and "Connect to folder" to treat a folder on the device as a a "folder device". Whit this, calibre scans the folder and subfolders for books. The books that are found are shown in the device list. If there is a metadata.calibre in the folder being used as the root, then it is used to aid matching the books to the library.

By "With Android" I think you mean as an MTP device. In this case, the device presents a folder to the OS and calibre scans that. The folder is probably the root folder of the device and calibre scans all the folders. After the first scan, you can configure the MTP driver to only scan particular folders. And I think this can be configured separately for each Android device.

The last way I can think of is to use "Save to disk" to put the books on the device. This means just treating the device as a MSD and probably needs the drivers disabled or calibre told to ignore the device. In this case, calibre has no idea of what is on the device.

I'm not sure exactly what happens with a system folder called ".books". In Linux, Mac and I think Android, folders whose name start with a dot are usually ignored when scanning. Hence putting books inside one on the Kobo device means that nickel won't find them. But, for XP, it's just a directory but making it a system folder might mean it isn't scanned by calibre when looking for books. From your results, this is probably what is happening.

As I don't use KSM, I'm not sure what you mean by "With KSM normally" and "With KSM using the nickel ID". I suspect that is whether KSM presents the device with the correct vendor and product ids. If so, then if the ids used are correct, then the driver will see the device as a Kobo device and handle it as I have described above. Hence, it won't see books in the .Books folder.

The error message means that the calibre is seeing the ereader as a Kobo device and using the driver. And the database on the device is corrupt. That's the KoboReader.sqlite database that nickel uses is corrupt. If you are going to use nickel, that needs to be fixed.

Still here?

I believe all that is correct, but I might have missed something or messed up the explanation. If you want clarification, ask away.
davidfor is offline   Reply With Quote