Calibre can not send book to Kindle

11,741

Solution 1

If you're experiencing issues with your Kindle mounted as read-only it is probably due to some errors in the file system.

Find the folder of your device typing mount

In my case the output is:

/dev/sdc1 on /media/Kindle type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)

meaning that I have to correct the filesystem on /dev/sdc1

You can do that using fsck: sudo fsck.vfat -r /dev/sdc1

If you get ask which partition you want to correct select the first by pressing 1 and continue.

Unmount your Kindle and remove and plug again the USB cable, you should now be able to send and copy files from calibre to your device.

Solution 2

After running the fsck.vfat command, I was told that the dirty bit is set, which was probably because of unclean unmount. First I accepted to clear that bit, then it offered to correct the blocks in the first partition, which I declined. After reconnecting Kindle back, it mounted cleanly as RW partition. Thanks for the tip!

Share:
11,741
lucacerone
Author by

lucacerone

Updated on September 18, 2022

Comments

  • lucacerone
    lucacerone almost 2 years

    I don't know why but Calibre stopped sending working with my Kindle on Ubuntu 12.04 32 bits.

    Till a few time ago everything was working just fine, but now whenever I connect my Kindle and try to send some book on the main meory of the device I get this error:

    calibre, version 0.8.38
    ERROR: Error: Error communicating with device
    
    [Errno 30] Read-only file system: '/media/Kindle/documents/Blisett, Luther'
    
    Traceback (most recent call last):
      File "/usr/lib/calibre/calibre/gui2/device.py", line 81, in run
        self.result = self.func(*self.args, **self.kwargs)
      File "/usr/lib/calibre/calibre/gui2/device.py", line 411, in _upload_books
        metadata=metadata, end_session=False)
      File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 260, in upload_books
        filepath = self.normalize_path(self.create_upload_path(path, mdata, fname))
      File "/usr/lib/calibre/calibre/devices/usbms/device.py", line 1120, in create_upload_path
        os.makedirs(filedir)
      File "/usr/lib/python2.7/os.py", line 157, in makedirs
        mkdir(name, mode)
    OSError: [Errno 30] Read-only file system: '/media/Kindle/documents/Blisett, Luther'
    

    I realize it is something that has to do with the permissions, so I have tried to change them using chown: sudo chmod a+rwx /media/Kindle but I get this error: chmod: changing permissions of 'Kindle': Read-only file system

    How can I fix this?

  • niceman
    niceman about 6 years
    This is what solved my problem. Thank you for pointing this out.