View Single Post
Old 04-11-2015, 06:34 AM   #3
embryo
Fanatic
embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.embryo calls his or her ebook reader Vera.
 
embryo's Avatar
 
Posts: 529
Karma: 64554
Join Date: Aug 2013
Device: Kobo Glo, GloHD
Quote:
Originally Posted by davidfor View Post
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.
First of all, thank you for your time.
About my problem.
"The problem:
Calibre does not update the 'metadata.calibre' database on SD card and on board."
After I read your info, I should rephrase it as:
"Calibre does not see my books on the SD card and on board."
Quote:
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.
To clarify:
The appropriate method for Kobo is to check the KoboReader.sqlite?
It does not scan the SD card and the on board space?
Quote:
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.
I have configure the User Defined USB driver of Calibre.
I suppose it does use this protocol.
Quote:
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.
I didn't make it a system folder in Windows.
I just pointed out that it was treated 'as' system by Linux (Kobo and Android)
I set the Kobo driver to send books to the /.Books/ folder and when I tried it, it created a /_Books/ folder at the root.
So, even Calibre don't like 'dot starting' folders.
Quote:
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.
I think it does exactly that.
Quote:
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.
Yes. By fixing that the error in Calibre stoped.
Quote:
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.
Well, I must say that it was a very enlightening explanation!
So, now that I understand the things a little better, I must find a way for my system to work.

What I want, is to use the 'SD card/.Books/' as my main library folder.
There are almost 4k books in there that I don't want Nickel to see for obvious reasons.
But if Nickel can not see them, Calibre wont see them also.
I also can't use the User Defined USB driver of Calibre, since I have configure it for the Android part of the device.
I wish there was an option to use a second one.

So I must disable the Kobo drivers and learn how to use the "folder device" thing, or connect only through Android.

Thanks again for your help.
embryo is offline   Reply With Quote