On Thu, Feb 14, 2019 at 09:03:43AM -0700, Simon Wood wrote: > I am attempted to debug an android problem related to USB hubs. > > On desktop Linux 'lsusb -vv' details the HUB description, but 'lsusb' on > Android is the simple cousin and does not know this information. That's because Android is using toybox's version of 'lsusb'. I recommend using the real version if you need this information. > I have found the 'descriptors' file for the USB device under the '/sys' > interface, however this does not appear to contain the HUB specific > details. Really? It should, why does it not contain that information? That's a binary file that lists the USB descriptor information. You are going to have to "parse it by hand". > Is there another file somewhere, and can someone point me at it? > > Specifically I am looking for the binary file which decodes like this... > -- > Hub Descriptor: > bLength 9 > bDescriptorType 41 > nNbrPorts 4 > wHubCharacteristic 0x00e0 > Ganged power switching > Ganged overcurrent protection > TT think time 32 FS bits > Port indicators > bPwrOn2PwrGood 50 * 2 milli seconds > bHubContrCurrent 100 milli Ampere > DeviceRemovable 0x00 > PortPwrCtrlMask 0xff > Hub Port Status: > Port 1: 0000.0100 power > Port 2: 0000.0100 power > Port 3: 0000.0100 power > Port 4: 0000.0100 power > Device Qualifier (for other device speed): > bLength 10 > bDescriptorType 6 > bcdUSB 2.00 > bDeviceClass 9 Hub > bDeviceSubClass 0 Unused > bDeviceProtocol 0 Full speed (or root) hub > bMaxPacketSize0 64 > bNumConfigurations 1 > Device Status: 0x0001 > Self Powered > -- > > Many thanks in advance, > Simon. > 00000000 12 01 10 02 09 00 02 40 E3 05 10 06 03 93 01 02 .......@?....... > 00000010 00 01 09 02 29 00 01 01 00 E0 32 09 04 00 00 01 ....)....?2..... > 00000020 09 00 01 00 07 05 81 03 01 00 0C 09 04 00 01 01 ................ > 00000030 09 00 02 00 07 05 81 03 01 00 0C ........... > > > 0x12, // bLength > 0x01, // bDescriptorType (Device) > 0x10, 0x02, // bcdUSB 2.10 > 0x09, // bDeviceClass (Hub) > 0x00, // bDeviceSubClass > 0x02, // bDeviceProtocol (High Speed Hub with multiple TT) > 0x40, // bMaxPacketSize0 64 > 0xE3, 0x05, // idVendor 0x05E3 > 0x10, 0x06, // idProduct 0x0610 > 0x03, 0x93, // bcdDevice 240.03 > 0x01, // iManufacturer (String Index) > 0x02, // iProduct (String Index) > 0x00, // iSerialNumber (String Index) > 0x01, // bNumConfigurations 1 > > 0x09, // bLength > 0x02, // bDescriptorType (Configuration) > 0x29, 0x00, // wTotalLength 41 > 0x01, // bNumInterfaces 1 > 0x01, // bConfigurationValue > 0x00, // iConfiguration (String Index) > 0xE0, // bmAttributes Remote Wakeup, Self Powered > 0x32, // bMaxPower 100mA > > 0x09, // bLength > 0x04, // bDescriptorType (Interface) > 0x00, // bInterfaceNumber 0 > 0x00, // bAlternateSetting > 0x01, // bNumEndpoints 1 > 0x09, // bInterfaceClass > 0x00, // bInterfaceSubClass > 0x01, // bInterfaceProtocol > 0x00, // iInterface (String Index) > > 0x07, // bLength > 0x05, // bDescriptorType (Endpoint) > 0x81, // bEndpointAddress (IN/D2H) > 0x03, // bmAttributes (Interrupt) > 0x01, 0x00, // wMaxPacketSize 1 > 0x0C, // bInterval 12 (unit depends on device speed) > > 0x09, // bLength > 0x04, // bDescriptorType (Interface) > 0x00, // bInterfaceNumber 0 > 0x01, // bAlternateSetting > 0x01, // bNumEndpoints 1 > 0x09, // bInterfaceClass > 0x00, // bInterfaceSubClass > 0x02, // bInterfaceProtocol > 0x00, // iInterface (String Index) > > 0x07, // bLength > 0x05, // bDescriptorType (Endpoint) > 0x81, // bEndpointAddress (IN/D2H) > 0x03, // bmAttributes (Interrupt) > 0x01, 0x00, // wMaxPacketSize 1 > 0x0C, // bInterval 12 (unit depends on device speed) > > // 59 bytes That should be the descriptor file, what does it contain for your device? thanks, greg k-h