Open albfan opened 9 months ago
Following https://github.com/gregkh/usbview/issues/25
I'm checking if there's any way to allow root to read those without unbind.
Example with a drive I maintain: hid-t150 https://github.com/scarburato/t150_driver
$ sudo lsusb -d 044f:b677 Bus 001 Device 014: ID 044f:b677 ThrustMaster, Inc. T150 Racing Wheel
First, I'm not sure how to find the path for my usb (without look into dmesg) I did this:
$ grep b677 /sys/bus/usb/devices/*/idProduct /sys/bus/usb/devices/1-6/idProduct:b677
From that:
$ ls -d /sys/bus/usb/devices/1-6/1-6* /sys/bus/usb/devices/1-6/1-6:1.0
I think that's the path I need:
sudo bash -c "echo -n 1-6:1.0 >/sys/bus/usb/drivers/usbhid/unbind"
Then I can see:
$ sudo lsusb -vd 044f:b677 Bus 001 Device 014: ID 044f:b677 ThrustMaster, Inc. T150 Racing Wheel Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x044f ThrustMaster, Inc. idProduct 0xb677 T150 Racing Wheel bcdDevice 1.00 iManufacturer 1 Thrustmaster iProduct 2 Thrustmaster T150RS iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 200mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 130 Report Descriptor: (length is 130) Item(Global): Usage Page, data= [ 0x01 ] 1 Generic Desktop Controls Item(Local ): Usage, data= [ 0x04 ] 4 Joystick Item(Main ): Collection, data= [ 0x01 ] 1 Application Item(Local ): Usage, data= [ 0x01 ] 1 Pointer Item(Main ): Collection, data= [ 0x00 ] 0 Physical Item(Global): Report ID, data= [ 0x07 ] 7 Item(Local ): Usage, data= [ 0x30 ] 48 Direction-X Item(Global): Logical Minimum, data= [ 0x00 ] 0 Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535 Item(Global): Physical Minimum, data= [ 0x00 ] 0 Item(Global): Physical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535 Item(Global): Report Size, data= [ 0x10 ] 16 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x31 ] 49 Direction-Y Item(Global): Logical Maximum, data= [ 0xff 0x03 ] 1023 Item(Global): Physical Maximum, data= [ 0xff 0x03 ] 1023 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x35 ] 53 Rotate-Z Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x36 ] 54 Slider Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): Input, data= [ 0x03 ] 3 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Usage Page, data= [ 0x09 ] 9 Buttons Item(Local ): Usage Minimum, data= [ 0x01 ] 1 Button 1 (Primary) Item(Local ): Usage Maximum, data= [ 0x0d ] 13 (null) Item(Global): Logical Maximum, data= [ 0x01 ] 1 Item(Global): Physical Maximum, data= [ 0x01 ] 1 Item(Global): Report Size, data= [ 0x01 ] 1 Item(Global): Report Count, data= [ 0x0d ] 13 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report Size, data= [ 0x0b ] 11 Item(Global): Report Count, data= [ 0x01 ] 1 Item(Main ): Input, data= [ 0x03 ] 3 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Usage Page, data= [ 0x01 ] 1 Generic Desktop Controls Item(Local ): Usage, data= [ 0x39 ] 57 Hat Switch Item(Global): Logical Maximum, data= [ 0x07 ] 7 Item(Global): Physical Maximum, data= [ 0x3b 0x01 ] 315 Item(Global): Unit Exponent, data= [ 0x00 ] 0 Unit Exponent: 0 Item(Global): Unit, data= [ 0x14 ] 20 System: English Rotation, Unit: Degrees Item(Global): Report Size, data= [ 0x04 ] 4 Item(Main ): Input, data= [ 0x42 ] 66 Data Variable Absolute No_Wrap Linear Preferred_State Null_State Non_Volatile Bitfield Item(Global): Unit, data= [ 0x00 ] 0 System: None, Unit: (None) Item(Main ): Input, data= [ 0x03 ] 3 Constant Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x0a ] 10 Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 (null) Item(Local ): Usage, data= [ 0x0a ] 10 (null) Item(Global): Report Size, data= [ 0x08 ] 8 Item(Global): Report Count, data= [ 0x0e ] 14 Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255 Item(Global): Physical Maximum, data= [ 0xff 0x00 ] 255 Item(Main ): Output, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Global): Report ID, data= [ 0x02 ] 2 Item(Local ): Usage, data= [ 0x02 ] 2 (null) Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Local ): Usage, data= [ 0x14 ] 20 (null) Item(Global): Report ID, data= [ 0x14 ] 20 Item(Main ): Input, data= [ 0x02 ] 2 Data Variable Absolute No_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item(Main ): End Collection, data=none Item(Main ): End Collection, data=none Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0010 1x 16 bytes bInterval 2 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 4 Device Status: 0x0000 (Bus Powered)
Is there a way to see this info without unbind device? I think usbhid-dump shows basically same info
$ sudo usbhid-dump | grep -v : | xxd -r -p | hidrd-convert -o spec Usage Page (Desktop), ; Generic desktop controls (01h) Usage (Joystick), ; Joystick (04h, application collection) Collection (Application), Usage (Pointer), ; Pointer (01h, physical collection) Collection (Physical), Report ID (7), Usage (X), ; X (30h, dynamic value) Logical Minimum (0), Logical Maximum (65535), Physical Minimum (0), Physical Maximum (65535), Report Size (16), Report Count (1), Input (Variable), Usage (Y), ; Y (31h, dynamic value) Logical Maximum (1023), Physical Maximum (1023), Input (Variable), Usage (Rz), ; Rz (35h, dynamic value) Input (Variable), Usage (Slider), ; Slider (36h, dynamic value) Input (Variable), Input (Constant, Variable), Usage Page (Button), ; Button (09h) Usage Minimum (01h), Usage Maximum (0Dh), Logical Maximum (1), Physical Maximum (1), Report Size (1), Report Count (13), Input (Variable), Report Size (11), Report Count (1), Input (Constant, Variable), Usage Page (Desktop), ; Generic desktop controls (01h) Usage (Hat Switch), ; Hat switch (39h, dynamic value) Logical Maximum (7), Physical Maximum (315), Unit Exponent (0), Unit (Degrees), Report Size (4), Input (Variable, Null State), Unit, Input (Constant, Variable), Report ID (10), Usage Page (FF00h), ; FF00h, vendor-defined Usage (0Ah), Report Size (8), Report Count (14), Logical Maximum (255), Physical Maximum (255), Output (Variable), Report ID (2), Usage (02h), Input (Variable), Usage (14h), Report ID (20), Input (Variable), End Collection, End Collection
Not sure if makes sense to read that info directly on lsusb
Following https://github.com/gregkh/usbview/issues/25
I'm checking if there's any way to allow root to read those without unbind.
Example with a drive I maintain: hid-t150 https://github.com/scarburato/t150_driver
First, I'm not sure how to find the path for my usb (without look into dmesg) I did this:
From that:
I think that's the path I need:
Then I can see:
Is there a way to see this info without unbind device? I think usbhid-dump shows basically same info
Not sure if makes sense to read that info directly on lsusb