Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 190906 - stowaway USB keyboard mis-behaving (software stuck key)
Summary: stowaway USB keyboard mis-behaving (software stuck key)
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-31 20:43 UTC by Michael Kers
Modified: 2007-09-20 23:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
dmesg - includes CONFIG_HID_DEBUG set in config (dmesg_2.6.23-rc5_usbkeyb.txt,30.09 KB, text/plain)
2007-09-03 00:46 UTC, Michael Kers
Details
kernel config (kernel-config-x86_64-2.6.23-rc5,51.18 KB, text/plain)
2007-09-03 00:47 UTC, Michael Kers
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Kers 2007-08-31 20:43:33 UTC
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
Comment 1 Michael Kers 2007-08-31 20:46:42 UTC
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.
Comment 2 Michael Kers 2007-08-31 20:47:59 UTC
I will also add that the stuck-key affect is both present in console-mode and using X.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2007-08-31 23:43:49 UTC
Reopen if you can reproduce this with gentoo-sources-2.6.22-r5; thanks.
Comment 4 Michael Kers 2007-09-01 04:23:39 UTC
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
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2007-09-01 06:21:28 UTC
So, it never worked with any kernel? Should go upstream them. :)
Comment 6 Michael Kers 2007-09-01 16:11:52 UTC
I think this one can go upstream.  
Comment 7 Michael Kers 2007-09-01 16:35:07 UTC
Do I just post a bug to the kernel bugzilla? (
http://bugzilla.kernel.org/)
Comment 8 Maarten Bressers (RETIRED) gentoo-dev 2007-09-02 23:30:07 UTC
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.
Comment 9 Michael Kers 2007-09-03 00:45:11 UTC
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).
Comment 10 Michael Kers 2007-09-03 00:46:49 UTC
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.
Comment 11 Michael Kers 2007-09-03 00:47:37 UTC
Created attachment 129880 [details]
kernel config
Comment 12 Maarten Bressers (RETIRED) gentoo-dev 2007-09-05 20:34:45 UTC
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.)
Comment 13 Maarten Bressers (RETIRED) gentoo-dev 2007-09-20 23:42:55 UTC
See comment #12, please reopen if/when you can provide the requested info.