Fwd: USB HID problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I just found your address as a better one than linux-kernel:

*******
My typing follows a line with a bunch of stars.  That is followed by
command output.

*******
I have a USB 3.0 hub and switch that I need to use to switch devices
between a Linux desktop, laptop and MacBook Pro.  At first, I was
testing with just a keyboard and mouse.
The switch is connected to USB Bus 1.
With keyboard and mouse plugged in, OS/X is all happy and sees them fine.
They do not show up with "lsusb -t"

# lsusb -t
[...]
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
   |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
       |__ Port 4: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M

# lsusb|sort
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 008: ID 05ac:1002 Apple, Inc. Extended Keyboard Hub [Mitsumi]
Bus 001 Device 010: ID 046d:c245 Logitech, Inc. G400 Optical Mouse
[...]

*******
As you see, with plain "lsusb",
the story is different, but the same story were my MS Natural
keyboard plugged in instead of the Apple.  Next, I plugged in
an SD card reader and, to my great surprise, it worked:

# lsusb -t
[...]
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
   |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
       |__ Port 1: Dev 25, If 0, Class=Mass Storage, Driver=usb-storage, 480M
       |__ Port 1: Dev 25, If 1, Class=Chip/SmartCard, Driver=, 480M
       |__ Port 4: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M

*******
so I was able to mount the device.

So therefore, Linux can work with USB devices hung off of a hub hanging off
of a switch, but not keyboards and mice.  And these are keyboards and mice
that work just fine when plugged directly into a motherboard USB port.

Why would that be?

Since I have tried several variations of hubs and switches, it gets down
to Linux needing some fixes.  Have they already been made?  If so,
where can I get the patch?  If not, please point me at some code so
I might be able to fix it -- at least for myself.

Thank you.  Regards, Bruce
*******
The failing devices using usb-devices script have "no such file" errors:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 27 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=1002 Rev=01.22
S:  Manufacturer=Mitsumi Electric
S:  Product=Hub in Apple Extended USB Keyboard
C:  #Ifs= 0 Cfg#= 0 Atr= MxPwr=
cat: /sys/bus/usb/devices/usb1/1-1/1-1.2/1-*:?.*/bInterfaceNumber: No
such file or directory
cat: /sys/bus/usb/devices/usb1/1-1/1-1.2/1-*:?.*/bAlternateSetting: No
such file or directory
cat: /sys/bus/usb/devices/usb1/1-1/1-1.2/1-*:?.*/bNumEndpoints: No
such file or directory
cat: /sys/bus/usb/devices/usb1/1-1/1-1.2/1-*:?.*/bInterfaceClass: No
such file or directory
cat: /sys/bus/usb/devices/usb1/1-1/1-1.2/1-*:?.*/bInterfaceSubClass:
No such file or directory
cat: /sys/bus/usb/devices/usb1/1-1/1-1.2/1-*:?.*/bInterfaceProtocol:
No such file or directory
/usr/bin/usb-devices: line 79: printf: (none): invalid number
I:  If#= 0 Alt= 0 #EPs= 0 Cls=() Sub= Prot= Driver=

T:  Bus=01 Lev=02 Prnt=02 Port=02 Cnt=03 Dev#= 28 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=046d ProdID=c245 Rev=69.00
S:  Manufacturer=Logitech
S:  Product=Gaming Mouse G400
C:  #Ifs= 0 Cfg#= 0 Atr= MxPwr=
cat: [...] No such file or directory
/usr/bin/usb-devices: line 79: printf: (none): invalid number
I:  If#= 0 Alt= 0 #EPs= 0 Cls=() Sub= Prot= Driver=

*******
The same information gotten from /sys/kernel/debug/usb/devices:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 27 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=1002 Rev= 1.22
S:  Manufacturer=Mitsumi Electric
S:  Product=Hub in Apple Extended USB Keyboard
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 50mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms

T:  Bus=01 Lev=02 Prnt=02 Port=02 Cnt=03 Dev#= 28 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=046d ProdID=c245 Rev=69.00
S:  Manufacturer=Logitech
S:  Product=Gaming Mouse G400
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 98mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=1ms
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=
E:  Ad=82(I) Atr=03(Int.) MxPS=   2 Ivl=1ms

*******
If it is any help, I plugged the Apple keyboard directly into a
motherboard port (bus 9):

# lsusb -t
/:  Bus 09.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M
   |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
   |__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
   |__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/3p, 12M
       |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
       |__ Port 1: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M

T:  Bus=09 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12   MxCh= 5
B:  Alloc= 30/900 us ( 3%), #Int=  5, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 4.01
S:  Manufacturer=Linux 4.1.27-24-default ohci_hcd
S:  Product=OHCI PCI host controller
S:  SerialNumber=0000:00:13.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=09 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=1.5  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=045e ProdID=00db Rev= 1.73
S:  Manufacturer=Microsoft
S:  Product=Natural�� Ergonomic Keyboard 4000
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

T:  Bus=09 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  3 Spd=12   MxCh= 3
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=1002 Rev= 1.22
S:  Manufacturer=Mitsumi Electric
S:  Product=Hub in Apple Extended USB Keyboard
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 50mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms

T:  Bus=09 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#=  4 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=0204 Rev= 1.22
S:  Manufacturer=Mitsumi Electric
S:  Product=Apple Extended USB Keyboard
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 50mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=82(I) Atr=03(Int.) MxPS=   4 Ivl=255ms

********
and the contents for Bus 9 in the kernel debug file system:

T:  Bus=09 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 5
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev=04.01
S:  Manufacturer=Linux 4.1.27-24-default ohci_hcd
S:  Product=OHCI PCI host controller
S:  SerialNumber=0000:00:13.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=09 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=045e ProdID=00db Rev=01.73
S:  Manufacturer=Microsoft
S:  Product=Natural�� Ergonomic Keyboard 4000
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid

T:  Bus=09 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  3 Spd=12  MxCh= 3
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=1002 Rev=01.22
S:  Manufacturer=Mitsumi Electric
S:  Product=Hub in Apple Extended USB Keyboard
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=50mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=09 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05ac ProdID=0204 Rev=01.22
S:  Manufacturer=Mitsumi Electric
S:  Product=Apple Extended USB Keyboard
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=50mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid

*******
Finally, some dmesg messages:
[13026.604365] usb 1-1.3: USB disconnect, device number 28
[13043.430087] usb 1-1.3: new full-speed USB device number 32 using xhci_hcd
[13043.528010] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c245
[13043.528018] usb 1-1.3: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
[13043.528023] usb 1-1.3: Product: Gaming Mouse G400
[13043.528027] usb 1-1.3: Manufacturer: Logitech
[13043.528309] usb 1-1.3: Not enough bandwidth for new device state.
[13043.528319] usb 1-1.3: can't set config #1, error -28
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux