I bought a small portable USB keyboard. Stowaway (ThinkOutside), PN: PA850U. It works on windows as expected, but on linux (all linuxen I've tried it on), it behaves weird. Plugging it in detects it, and I am able to type, but I get this strange software stuck-key effect. Again, this doesn't occur on Windows XP (on the same computer in a dual-boot configuration). Reproducible: Always Steps to Reproduce: 1. Plug in USB keyboard 2. Type anything 3. Actual Results: Keyboard is detected fine, dmesg says: usb 2-4: new low speed USB device using ohci_hcd and address 2 usb 2-4: config 1 has an invalid interface number: 1 but max is 0 usb 2-4: config 1 has 2 interfaces, different from the descriptor's value: 1 usb 2-4: configuration #1 chosen from 1 choice input: HOLTEK USB Portable Keyboard as /class/input/input3 input: USB HID v1.10 Keyboard [HOLTEK USB Portable Keyboard] on usb-0000:00:0b.0-4 input: HOLTEK USB Portable Keyboard as /class/input/input4 input: USB HID v1.10 Keyboard [HOLTEK USB Portable Keyboard] on usb-0000:00:0b.0-4 When I go to type something -- say "pine" -- with no carriage return, on the command line, I get: kers@willdkers ~ $ pineeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee [... until I press something else to stop the repeat, any character besides backspace -- say typing the word "stop" will result in the following:] kers@willdkers ~ $ pineeeeeeeeeeeeeeeeeeeeeeeeeestoppppppppppppppppp [... and so on] Expected Results: kers@willdkers ~ $ pine [with no repeated last character, and a cursor waiting for additional input] I had a strange dmesg entry after the last time I tried the keyboard... Output was: usb 2-4: new low speed USB device using ohci_hcd and address 2 usb 2-4: config 1 has an invalid interface number: 1 but max is 0 usb 2-4: config 1 has 2 interfaces, different from the descriptor's value: 1 usb 2-4: configuration #1 chosen from 1 choice input: HOLTEK USB Portable Keyboard as /class/input/input3 input: USB HID v1.10 Keyboard [HOLTEK USB Portable Keyboard] on usb-0000:00:0b.0-4 input: HOLTEK USB Portable Keyboard as /class/input/input4 input: USB HID v1.10 Keyboard [HOLTEK USB Portable Keyboard] on usb-0000:00:0b.0-4 kobject_add failed for usbdev2.2_ep81 with -EEXIST, don't try to register things with the same name in the same directory. Call Trace: [<ffffffff802b1b44>] kobject_add+0x16b/0x196 [<ffffffff8030b4ac>] device_add+0x9a/0x545 [<ffffffff8014ed9d>] kobject_get+0x12/0x17 [<ffffffff880098de>] :usbcore:usb_create_ep_files+0x238/0x2e5 [<ffffffff88009328>] :usbcore:usb_create_sysfs_intf_files+0x92/0xfa [<ffffffff88005f85>] :usbcore:usb_set_configuration+0x3a9/0x3ee [<ffffffff8800cbb3>] :usbcore:generic_probe+0x193/0x1d0 [<ffffffff8030d474>] __device_attach+0x0/0x5 [<ffffffff8030d340>] really_probe+0x87/0x10c [<ffffffff8030d474>] __device_attach+0x0/0x5 [<ffffffff8030c78c>] bus_for_each_drv+0x40/0x72 [<ffffffff8030d4d9>] device_attach+0x4e/0x5d [<ffffffff8030c726>] bus_attach_device+0x23/0x49 [<ffffffff8030b7c0>] device_add+0x3ae/0x545 [<ffffffff88001d3f>] :usbcore:__usb_new_device+0xad/0xf2 [<ffffffff88002faa>] :usbcore:hub_thread+0x72b/0xb12 [<ffffffff801866b1>] autoremove_wake_function+0x0/0x2e [<ffffffff8800287f>] :usbcore:hub_thread+0x0/0xb12 [<ffffffff80186519>] keventd_create_kthread+0x0/0x65 [<ffffffff8012dfe6>] kthread+0xd1/0x100 [<ffffffff80155ec8>] child_rip+0xa/0x12 [<ffffffff80186519>] keventd_create_kthread+0x0/0x65 [<ffffffff8012df15>] kthread+0x0/0x100 [<ffffffff80155ebe>] child_rip+0x0/0x12 -------- lsusb says: Bus 002 Device 003: ID 1241:e000 Belkin Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x1241 Belkin idProduct 0xe000 bcdDevice 2.00 iManufacturer 1 HOLTEK iProduct 2 USB Portable Keyboard iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Devices bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 63 Report Descriptors: ** UNAVAILABLE ** Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10
I should add that I am using gentoo-2.6.20-r8, amd64 single processor. I've tried it on two different motherboard (ASUS A8N-E and also an ASUS M8NPV-VM), both recent. I also tried it on my notebook computer (using Gentoo 2.6.20-r8, x86), an IBM Thinkpad T42 and my Sharp Zaurus C1000 (non-Gentoo-sources, kernel 2.6.21, arm). It was also broken on the Zaurus with 2.6.15 kernel and on all the other computers with a 2.6.18 kernel.
I will also add that the stuck-key affect is both present in console-mode and using X.
Reopen if you can reproduce this with gentoo-sources-2.6.22-r5; thanks.
I'm re-opening this because I have confirmed it is still a problem with 2.6.22. kers@willdkers ~ $ cat /proc/version Linux version 2.6.22-gentoo-r5 (root@willdkers) (gcc version 4.1.1 (Gentoo 4.1.1)) #1 SMP Fri Aug 31 21:49:31 MDT 2007
So, it never worked with any kernel? Should go upstream them. :)
I think this one can go upstream.
Do I just post a bug to the kernel bugzilla? ( http://bugzilla.kernel.org/)
Let's try to gather some more information before sending this upstream: Can you please post your kernel .config and your dmesg output? Also, can you please test with the latest development kernel, 2.6.23-rc5 as of this writing. Thanks.
dmesg output is attached (using 2.6.23-rc5). kernel config for that particular kernel is also attached (its _almost_ default, with exception of +sata_nv and +pata_nv drivers and +md for mirroring).
Created attachment 129878 [details] dmesg - includes CONFIG_HID_DEBUG set in config USB KBD plug in, use and removal is at bottom. I did a modprobe usbhid prior to attaching keyboard. See bottom of text for that.
Created attachment 129880 [details] kernel config
In 2.6.23 there's a new boot parameter used to turn on HID debugging. Add this to your kernel command line: (the line in grub.conf that starts with 'kernel'): hid.hid_debug=1 Then please post your dmesg output again, including your plugging in, using and unplugging the keyboard. (Also, since you have all HID options compiled into the kernel, you might as well compile in CONFIG_USB_HID (so that CONFIG_USB_HID=y), you've got that as a module now.)
See comment #12, please reopen if/when you can provide the requested info.