Current libmtp9 is unable to detect a Sony Corp. ILCE-7M4, a somewhat
professional camery, using USB in MTP mode.
| % strace -o trace ./examples/mtp-detect
| libmtp version: 1.1.23
|
| Listing raw device(s)
| No raw devices found.
It manages to read the USB descriptor, but does not like it:
| [pid 25417] openat(AT_FDCWD, "/dev/bus/usb/004/002", O_RDWR|O_CLOEXEC) = 7
| [pid 25417] ioctl(7, USBDEVFS_GET_CAPABILITIES, 0x555b3815482c) = 0
| [pid 25417] close(7) = 0
| [pid 25417] write(1, " No raw devices found.\n", 25 No raw devices found.
The complete descriptor as shown by lsusb:
| Bus 004 Device 002: ID 054c:0da6 Sony Corp. ILCE-7M4
| Negotiated speed: SuperSpeed+ (10Gbps)
| Device Descriptor:
| bLength 18
| bDescriptorType 1
| bcdUSB 3.20
| bDeviceClass 0 [unknown]
| bDeviceSubClass 0 [unknown]
| bDeviceProtocol 0
| bMaxPacketSize0 9
| idVendor 0x054c Sony Corp.
| idProduct 0x0da6 ILCE-7M4
| bcdDevice 2.00
| iManufacturer 1 Sony
| iProduct 2 ILCE-7M4
| iSerial 3 XXXXXXXXXXXX
| bNumConfigurations 1
| Configuration Descriptor:
| bLength 9
| bDescriptorType 2
| wTotalLength 0x0039
| bNumInterfaces 1
| bConfigurationValue 1
| iConfiguration 0
| bmAttributes 0xc0
| Self Powered
| MaxPower 0mA
| Interface Descriptor:
| bLength 9
| bDescriptorType 4
| bInterfaceNumber 0
| bAlternateSetting 0
| bNumEndpoints 3
| bInterfaceClass 6 Imaging
| bInterfaceSubClass 1 Still Image Capture
| bInterfaceProtocol 1 Picture Transfer Protocol (PIMA 15470)
| iInterface 0
| Endpoint Descriptor:
| bLength 7
| bDescriptorType 5
| bEndpointAddress 0x81 EP 1 IN
| bmAttributes 2
| Transfer Type Bulk
| Synch Type None
| Usage Type Data
| wMaxPacketSize 0x0400 1x 1024 bytes
| bInterval 0
| bMaxBurst 15
| Endpoint Descriptor:
| bLength 7
| bDescriptorType 5
| bEndpointAddress 0x02 EP 2 OUT
| bmAttributes 2
| Transfer Type Bulk
| Synch Type None
| Usage Type Data
| wMaxPacketSize 0x0400 1x 1024 bytes
| bInterval 0
| bMaxBurst 15
| Endpoint Descriptor:
| bLength 7
| bDescriptorType 5
| bEndpointAddress 0x83 EP 3 IN
| bmAttributes 3
| Transfer Type Interrupt
| Synch Type None
| Usage Type Data
| wMaxPacketSize 0x0020 1x 32 bytes
| bInterval 7
| bMaxBurst 0
| wBytesPerInterval 32
| Binary Object Store Descriptor:
| bLength 5
| bDescriptorType 15
| wTotalLength 0x002a
| bNumDeviceCaps 3
| USB 2.0 Extension Device Capability:
| bLength 7
| bDescriptorType 16
| bDevCapabilityType 2
| bmAttributes 0x00000006
| BESL Link Power Management (LPM) Supported
| SuperSpeed USB Device Capability:
| bLength 10
| bDescriptorType 16
| bDevCapabilityType 3
| bmAttributes 0x00
| wSpeedsSupported 0x000e
| Device can operate at Full Speed (12Mbps)
| Device can operate at High Speed (480Mbps)
| Device can operate at SuperSpeed (5Gbps)
| bFunctionalitySupport 1
| Lowest fully-functional device speed is Full Speed (12Mbps)
| bU1DevExitLat 10 micro seconds
| bU2DevExitLat 2047 micro seconds
| SuperSpeedPlus USB Device Capability:
| bLength 20
| bDescriptorType 16
| bDevCapabilityType 10
| bmAttributes 0x00000001
| Sublink Speed Attribute count 2
| Sublink Speed ID count 1
| wFunctionalitySupport 0x1100
| Min functional Speed Attribute ID: 0
| Min functional RX lanes: 1
| Min functional TX lanes: 1
| bmSublinkSpeedAttr[0] 0x000a4030
| Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
| bmSublinkSpeedAttr[1] 0x000a40b0
| Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
| Device Status: 0x0001
| Self Powered