Comment 6 for bug 1797890

Revision history for this message
James Cuzella (trinitronx) wrote :

Same issue observed in calibre 4.99.4+dfsg+really4.12.0-1build1
on Focal 20.04 LTS
with Kindle Fire HD 8 plus (10th generation)

Following the guide here seems to help: https://manual.calibre-ebook.com/faq.html#android-usb

If you miss or can't find the USB notification by swiping down:

- Swipe down from top of the device's screen
- Swipe down again to expand the system control widgets (WiFi, Bluetooth, etc...)
- Tap the Gear icon in the lower right to open Settings (OR just tap "Settings" icon from the device's homescreen)
- Tap "Connected Devices"
- Tap "USB"
- Under "Use USB for", tap "File Transfer"

Note: When trying to switch "USB controlled by" to "Connected device", it did not seem to work and just says "Couldn't switch".

After enabling File Transfer mode, the device was mounted under an unusual path (when compared to most standard USB mass storage devices):

    /run/user/1000/gvfs/mtp:host=Amazon_XXXXXX_XXXXXXXXXXXXXXXX/Internal storage

The device's product ID and serial number should be listed in place of the X's.

After doing this, I opened up Calibre via the command line. It threw this exception error:

Device 0 (VID=1949 and PID=0581) is UNKNOWN in libmtp v1.1.17.
Please report this VID/PID and the device model to the libmtp development team
error returned by libusb_claim_interface() = -6LIBMTP PANIC: Unable to initialize device
Error while trying to open MTPDevice(busnum=1, devnum=35, vendor_id=6473, product_id=1409, bcd=547, serial='XXXXXXXXXXXXXXXX', manufacturer='Amazon', product='XXXXXX') (Driver: <calibre.devices.mtp.driver.MTP_DEVICE object at 0x7f294280d880>)
Traceback (most recent call last):
  File "/usr/lib/calibre/calibre/devices/mtp/unix/driver.py", line 218, in open
    self.dev = self.create_device(connected_device)
  File "/usr/lib/calibre/calibre/devices/mtp/base.py", line 25, in synchronizer
    return func(self, *args, **kwargs)
  File "/usr/lib/calibre/calibre/devices/mtp/unix/driver.py", line 171, in create_device
    return self.libmtp.Device(d.busnum, d.devnum, d.vendor_id,
libmtp.MTPError: Unable to open MTP device with busnum=1 and devnum=35, tried 1 such devices

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/calibre/calibre/gui2/device.py", line 297, in detect_device
    dev.open(cd, self.current_library_uuid)
  File "/usr/lib/calibre/calibre/devices/mtp/driver.py", line 125, in open
    BASE.open(self, device, library_uuid)
  File "/usr/lib/calibre/calibre/devices/mtp/base.py", line 25, in synchronizer
    return func(self, *args, **kwargs)
  File "/usr/lib/calibre/calibre/devices/mtp/unix/driver.py", line 221, in open
    raise OpenFailed('Failed to open %s: Error: %s'%(
calibre.devices.errors.OpenFailed: Failed to open MTPDevice(busnum=1, devnum=35, vendor_id=6473, product_id=1409, bcd=547, serial='XXXXXXXXXXXXXXXX', manufacturer='Amazon', product='XXXXXX'): Error: Unable to open MTP device with busnum=1 and devnum=35, tried 1 such devices

So in this case it appears to be an error caused by an unrecognizable device in the current version of libmtp:

    Device 0 (VID=1949 and PID=0581) is UNKNOWN in libmtp v1.1.17.

The packages in Ubuntu's official repository are probably due for an update. Updating libmtp would probably enable many new devices to work under Ubuntu.

Calibre is currently at version: 5.6.0
libmtp is currently at 1.1.18