linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* USB keyboard recognized as HID keyboard but doesn't work
@ 2011-04-30 20:23 Adi J. Sieker
  2011-05-01  7:53 ` Oliver Neukum
  0 siblings, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-04-30 20:23 UTC (permalink / raw)
  To: linux-input; +Cc: linux-kernel

Hello,

the lovely folks from #kernelnewbies suggested I write this mail since 
they are at a loss.
I recently got a new USB keyboard which works fine in the BIOS and also 
in VBox Windows guests, but not on the host.

The keyboard is a Keysonic KSK-8003 UX product details here: 
http://maxpoint.de/de/products/keyboards.php?pid=1_3_7&we_objectID=1220

The menu key and the backspace keys do work. The num lock led is on, 
though I can't switch num lock off.
If I attch the keyboard to a VirtualBox VM running WindowsXP as a guest, 
it works as expected in the VM.

I'm running 2.6.32-27-generic #49-Ubuntu. I tried the Ubuntu 10.10 
LiveCD and that also didn't work. I haven't tried 11.04 yet though.

The output of lsusb -v  is available here http://pastie.org/1851416

The relevant part of dmesg output:
[    6.501902] input: KB USB Keyboard as 
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input9
[    6.502028] generic-usb 0003:060B:0230.0001: input,hidraw0: USB HID 
v1.10 Keyboard [KB USB Keyboard] on usb-0000:00:1d.0-1.3/input0
[    6.503408] Bluetooth: Generic Bluetooth USB driver ver 0.6
[    6.503508] usbcore: registered new interface driver btusb
[    6.516681] generic-usb: probe of 0003:060B:0230.0002 failed with 
error -22

I'd be grateful for any help and or pointers in the right to get this 
keyboard to work.

Regards
    Adi


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-04-30 20:23 USB keyboard recognized as HID keyboard but doesn't work Adi J. Sieker
@ 2011-05-01  7:53 ` Oliver Neukum
  2011-05-01 17:49   ` Adi J. Sieker
  0 siblings, 1 reply; 18+ messages in thread
From: Oliver Neukum @ 2011-05-01  7:53 UTC (permalink / raw)
  To: Adi J. Sieker, USB list; +Cc: linux-input, linux-kernel

Am Samstag, 30. April 2011, 22:23:05 schrieb Adi J. Sieker:
> Hello,
> 
> the lovely folks from #kernelnewbies suggested I write this mail since 
> they are at a loss.
> I recently got a new USB keyboard which works fine in the BIOS and also 
> in VBox Windows guests, but not on the host.
> 
> The keyboard is a Keysonic KSK-8003 UX product details here: 
> http://maxpoint.de/de/products/keyboards.php?pid=1_3_7&we_objectID=1220
> 
> The menu key and the backspace keys do work. The num lock led is on, 
> though I can't switch num lock off.
> If I attch the keyboard to a VirtualBox VM running WindowsXP as a guest, 
> it works as expected in the VM.

This indicates that it is working on the USB level.

> I'm running 2.6.32-27-generic #49-Ubuntu. I tried the Ubuntu 10.10 
> LiveCD and that also didn't work. I haven't tried 11.04 yet though.

Do you get anything on the event device? What does udev say when you
plug in the device?

	Regards
		Oliver

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-01  7:53 ` Oliver Neukum
@ 2011-05-01 17:49   ` Adi J. Sieker
  2011-05-02 14:04     ` Alan Stern
  0 siblings, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-01 17:49 UTC (permalink / raw)
  To: Oliver Neukum; +Cc: USB list, linux-input, linux-kernel

On 01/05/11 09:53, Oliver Neukum wrote:
> Am Samstag, 30. April 2011, 22:23:05 schrieb Adi J. Sieker:
>> Hello,
>>
>> the lovely folks from #kernelnewbies suggested I write this mail since
>> they are at a loss.
>> I recently got a new USB keyboard which works fine in the BIOS and also
>> in VBox Windows guests, but not on the host.
>>
>> The keyboard is a Keysonic KSK-8003 UX product details here:
>> http://maxpoint.de/de/products/keyboards.php?pid=1_3_7&we_objectID=1220
>>
>> The menu key and the backspace keys do work. The num lock led is on,
>> though I can't switch num lock off.
>> If I attch the keyboard to a VirtualBox VM running WindowsXP as a guest,
>> it works as expected in the VM.
> This indicates that it is working on the USB level.
>
>> I'm running 2.6.32-27-generic #49-Ubuntu. I tried the Ubuntu 10.10
>> LiveCD and that also didn't work. I haven't tried 11.04 yet though.
> Do you get anything on the event device? What does udev say when you
> plug in the device?
>

udevadm monitor output is:
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1304270944.379238] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
KERNEL[1304270944.380140] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
KERNEL[1304270944.380238] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:060B:0230.0004 
(hid)
KERNEL[1304270944.389434] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input17 
(input)
KERNEL[1304270944.389811] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input17/event7 
(input)
KERNEL[1304270944.389863] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:060B:0230.0004/hidraw/hidraw0 
(hidraw)
KERNEL[1304270944.389917] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1 (usb)
KERNEL[1304270944.390031] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:060B:0230.0005 
(hid)
UDEV  [1304270944.396889] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
UDEV  [1304270944.398067] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1 (usb)
UDEV  [1304270944.398122] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
UDEV  [1304270944.400048] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:060B:0230.0004 
(hid)
UDEV  [1304270944.400947] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:060B:0230.0004/hidraw/hidraw0 
(hidraw)
UDEV  [1304270944.401033] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:060B:0230.0005 
(hid)
UDEV  [1304270944.408614] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input17 
(input)
UDEV  [1304270944.415928] add      
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input17/event7 
(input)

one thing I found out is that this keyboard has some special anti 
ghosting function for some keys. Where you can press multiple keys 
simultaneously
and they are all recognized. This is apparently great for gaming. Which 
I'm not interested in...

Cheers
    Adi


-- 
Adi J. Sieker
Steurentalstr. 2
79252 Stegen
mobile: +49 / 178 / 88 5 88 13
    tel: +49 / 7661 / 91 92 813
    web: http://sieker.io/profile


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-01 17:49   ` Adi J. Sieker
@ 2011-05-02 14:04     ` Alan Stern
  2011-05-02 19:35       ` Adi J. Sieker
  0 siblings, 1 reply; 18+ messages in thread
From: Alan Stern @ 2011-05-02 14:04 UTC (permalink / raw)
  To: Adi J. Sieker; +Cc: Oliver Neukum, USB list, linux-input, linux-kernel

On Sun, 1 May 2011, Adi J. Sieker wrote:

> On 01/05/11 09:53, Oliver Neukum wrote:
> > Am Samstag, 30. April 2011, 22:23:05 schrieb Adi J. Sieker:
> >> Hello,
> >>
> >> the lovely folks from #kernelnewbies suggested I write this mail since
> >> they are at a loss.
> >> I recently got a new USB keyboard which works fine in the BIOS and also
> >> in VBox Windows guests, but not on the host.
> >>
> >> The keyboard is a Keysonic KSK-8003 UX product details here:
> >> http://maxpoint.de/de/products/keyboards.php?pid=1_3_7&we_objectID=1220
> >>
> >> The menu key and the backspace keys do work. The num lock led is on,
> >> though I can't switch num lock off.
> >> If I attch the keyboard to a VirtualBox VM running WindowsXP as a guest,
> >> it works as expected in the VM.
> > This indicates that it is working on the USB level.
> >
> >> I'm running 2.6.32-27-generic #49-Ubuntu. I tried the Ubuntu 10.10
> >> LiveCD and that also didn't work. I haven't tried 11.04 yet though.
> > Do you get anything on the event device? What does udev say when you
> > plug in the device?

...

> one thing I found out is that this keyboard has some special anti 
> ghosting function for some keys. Where you can press multiple keys 
> simultaneously
> and they are all recognized. This is apparently great for gaming. Which 
> I'm not interested in...

Something else that might help is a usbmon trace showing what happens 
when you plug in the keyboard.  Instructions are in the kernel source 
file Documentation/usb/usbmon.txt.  In particular, while running the 
test try pressing some of the normal keys that don't work.

Also, it would help to see the output from "lsusb -v" for this device 
-- but you'll have to unbind it from the usbhid driver first.

Alan Stern


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-02 14:04     ` Alan Stern
@ 2011-05-02 19:35       ` Adi J. Sieker
  2011-05-02 20:27         ` Alan Stern
  0 siblings, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-02 19:35 UTC (permalink / raw)
  To: Alan Stern; +Cc: Oliver Neukum, USB list, linux-input, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2220 bytes --]

On 02/05/11 16:04, Alan Stern wrote:
> On Sun, 1 May 2011, Adi J. Sieker wrote:
>
>> On 01/05/11 09:53, Oliver Neukum wrote:
>>> Am Samstag, 30. April 2011, 22:23:05 schrieb Adi J. Sieker:
>>>> Hello,
>>>>
>>>> the lovely folks from #kernelnewbies suggested I write this mail since
>>>> they are at a loss.
>>>> I recently got a new USB keyboard which works fine in the BIOS and also
>>>> in VBox Windows guests, but not on the host.
>>>>
>>>> The keyboard is a Keysonic KSK-8003 UX product details here:
>>>> http://maxpoint.de/de/products/keyboards.php?pid=1_3_7&we_objectID=1220
>>>>
>>>> The menu key and the backspace keys do work. The num lock led is on,
>>>> though I can't switch num lock off.
>>>> If I attch the keyboard to a VirtualBox VM running WindowsXP as a guest,
>>>> it works as expected in the VM.
>>> This indicates that it is working on the USB level.
>>>
>>>> I'm running 2.6.32-27-generic #49-Ubuntu. I tried the Ubuntu 10.10
>>>> LiveCD and that also didn't work. I haven't tried 11.04 yet though.
>>> Do you get anything on the event device? What does udev say when you
>>> plug in the device?
>
> ...
>
>> one thing I found out is that this keyboard has some special anti
>> ghosting function for some keys. Where you can press multiple keys
>> simultaneously
>> and they are all recognized. This is apparently great for gaming. Which
>> I'm not interested in...
>
> Something else that might help is a usbmon trace showing what happens
> when you plug in the keyboard.  Instructions are in the kernel source
> file Documentation/usb/usbmon.txt.  In particular, while running the
> test try pressing some of the normal keys that don't work.
>

The attached file usbmon-working.out is the output when I pressed the 
backspace key. When I press any of the non working keys which is 
everything but the backspace and menu key. I don't get any output even 
when using 0u.

> Also, it would help to see the output from "lsusb -v" for this device
> -- but you'll have to unbind it from the usbhid driver first.
>

When attaching the keyboard I get 2 devices in
/sys/bus/usb/drivers/usbhid/2-1.1:1.0  and
/sys/bus/usb/drivers/usbhid/2-1.1:1.1

The output is in the attached lsusb.txt.

Cheers
   Adi


[-- Attachment #2: lsusb.txt --]
[-- Type: text/plain, Size: 12597 bytes --]

root@mini:/sys/bus/usb/drivers/usbhid# ls 
1-1.2.2.1:1.0  bind  module  new_id  uevent  unbind
root@mini:/sys/bus/usb/drivers/usbhid# ls
1-1.2.2.1:1.0  2-1.1:1.0  2-1.1:1.1  bind  module  new_id  uevent  unbind
root@mini:/sys/bus/usb/drivers/usbhid# echo -n 2-1.1:1.0 >unbind 
root@mini:/sys/bus/usb/drivers/usbhid# echo -n 2-1.1:1.1 >unbind
root@mini:/sys/bus/usb/drivers/usbhid# lsusb
Bus 002 Device 006: ID 060b:0230 Solid Year 
Bus 002 Device 004: ID 0a5c:5801 Broadcom Corp. 
Bus 002 Device 003: ID 413c:8187 Dell Computer Corp. 
Bus 002 Device 002: ID 8087:0020  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 008: ID 1058:0704 Western Digital Technologies, Inc. 
Bus 001 Device 007: ID 046d:c024 Logitech, Inc. MX300 Optical Mouse
Bus 001 Device 006: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 005: ID 413c:2513 Dell Computer Corp. 
Bus 001 Device 004: ID 413c:2513 Dell Computer Corp. 
Bus 001 Device 003: ID 05ca:1814 Ricoh Co., Ltd 
Bus 001 Device 002: ID 8087:0020  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@mini:/sys/bus/usb/drivers/usbhid# lsusb -v -s 002:006

Bus 002 Device 006: ID 060b:0230 Solid Year 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x060b Solid Year
  idProduct          0x0230 
  bcdDevice            2.20
  iManufacturer           1 KB
  iProduct                2 USB Keyboard
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      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      75
          Report Descriptor: (length is 75)
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x06 ] 6
                            Keyboard
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
                            Control Left
            Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
                            GUI Right
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Usage Page, data= [ 0x08 ] 8
                            LEDs
            Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                            NumLock
            Item(Local ): Usage Maximum, data= [ 0x03 ] 3
                            Scroll Lock
            Item(Main  ): Output, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Output, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x06 ] 6
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                            No Event
            Item(Local ): Usage Maximum, data= [ 0x91 ] 145
                            LANG 2 (Hanja Conversion, Korea)
            Item(Main  ): Input, data= [ 0x00 ] 0
                            Data Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x00 ] 0
                            No Event
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x00 ] 0
                            Data Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
      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
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     108
          Report Descriptor: (length is 108)
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x80 ] 128
                            System Control
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x01 ] 1
            Item(Local ): Usage Minimum, data= [ 0x81 ] 129
                            System Power Down
            Item(Local ): Usage Maximum, data= [ 0x83 ] 131
                            System Wake Up
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0x01 ] 1
                            Consumer Control
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x02 ] 2
            Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                            Unassigned
            Item(Local ): Usage Maximum, data= [ 0xff 0x7f ] 32767
                            (null)
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Main  ): Input, data= [ 0x00 ] 0
                            Data Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x06 ] 6
                            Keyboard
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x03 ] 3
            Item(Global): Report Count, data= [ 0x38 ] 56
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
                            Control Left
            Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
                            GUI Right
            Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                            No Event
            Item(Local ): Usage Maximum, data= [ 0x2f ] 47
                            [ and { (Bracket and Braces Left)
            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(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x06 ] 6
                            Keyboard
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x04 ] 4
            Item(Global): Report Count, data= [ 0x38 ] 56
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0x30 ] 48
                            ] and } (Bracket and Braces Right)
            Item(Local ): Usage Maximum, data= [ 0x67 ] 103
                            Keypad = (Equal Sign)
            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
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)
root@mini:/sys/bus/usb/drivers/usbhid# 


[-- Attachment #3: usbmon-working.out --]
[-- Type: text/plain, Size: 202 bytes --]

f0486100 937500342 C Ii:2:007:1 0:8 8 = 00002a00 00000000
f0486100 937500404 S Ii:2:007:1 -115:8 8 <
f0486100 937564339 C Ii:2:007:1 0:8 8 = 00000000 00000000
f0486100 937564394 S Ii:2:007:1 -115:8 8 <

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-02 19:35       ` Adi J. Sieker
@ 2011-05-02 20:27         ` Alan Stern
  2011-05-02 20:49           ` Adi J. Sieker
  0 siblings, 1 reply; 18+ messages in thread
From: Alan Stern @ 2011-05-02 20:27 UTC (permalink / raw)
  To: Adi J. Sieker; +Cc: Oliver Neukum, USB list, linux-input, linux-kernel

On Mon, 2 May 2011, Adi J. Sieker wrote:

> > Something else that might help is a usbmon trace showing what happens
> > when you plug in the keyboard.  Instructions are in the kernel source
> > file Documentation/usb/usbmon.txt.  In particular, while running the
> > test try pressing some of the normal keys that don't work.
> >
> 
> The attached file usbmon-working.out is the output when I pressed the 
> backspace key. When I press any of the non working keys which is 
> everything but the backspace and menu key. I don't get any output even 
> when using 0u.

Sorry, I wasn't clear enough.  I meant for you to start the usbmon
trace _before_ plugging in the keyboard, so we can see what happens as
the keyboard is initialized and probed.

> > Also, it would help to see the output from "lsusb -v" for this device
> > -- but you'll have to unbind it from the usbhid driver first.
> >
> 
> When attaching the keyboard I get 2 devices in
> /sys/bus/usb/drivers/usbhid/2-1.1:1.0  and
> /sys/bus/usb/drivers/usbhid/2-1.1:1.1
> 
> The output is in the attached lsusb.txt.

The output looks good.  It doesn't mean much to me, but the people on 
the linux-input mailing list should be able to get something out of it.

Alan Stern


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-02 20:27         ` Alan Stern
@ 2011-05-02 20:49           ` Adi J. Sieker
  0 siblings, 0 replies; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-02 20:49 UTC (permalink / raw)
  To: USB list; +Cc: linux-input, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1523 bytes --]

On 02/05/11 22:27, Alan Stern wrote:
> On Mon, 2 May 2011, Adi J. Sieker wrote:
>
>>> Something else that might help is a usbmon trace showing what happens
>>> when you plug in the keyboard.  Instructions are in the kernel source
>>> file Documentation/usb/usbmon.txt.  In particular, while running the
>>> test try pressing some of the normal keys that don't work.
>>>
>>
>> The attached file usbmon-working.out is the output when I pressed the
>> backspace key. When I press any of the non working keys which is
>> everything but the backspace and menu key. I don't get any output even
>> when using 0u.
>
> Sorry, I wasn't clear enough.  I meant for you to start the usbmon
> trace _before_ plugging in the keyboard, so we can see what happens as
> the keyboard is initialized and probed.
>

You were clear enough, I just couldn't read. :)

Attached is the usbmon trace when I plug the keyboard in.

lsusb shows the keyboard as:
Bus 002 Device 008: ID 060b:0230 Solid Year

Relevant section from /sys/kernel/debug/usb/devices
T:  Bus=02 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  8 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=060b ProdID=0230 Rev= 2.20
S:  Manufacturer=KB
S:  Product=USB Keyboard
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


Cheers
    Adi

[-- Attachment #2: usbmon.out --]
[-- Type: text/plain, Size: 3675 bytes --]

f7290780 1275690550 C Ii:2:002:1 0:2048 2 = 0200
f7290780 1275690564 S Ii:2:002:1 -115:2048 2 <
ed799a80 1275690577 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275690733 C Ci:2:002:0 0 4 = 01010100
ed799a80 1275690760 S Co:2:002:0 s 23 01 0010 0001 0000 0
ed799a80 1275690874 C Co:2:002:0 0 0
ed799a80 1275690896 S Co:2:002:0 s 23 03 0016 0001 0000 0
ed799a80 1275690994 C Co:2:002:0 0 0
ed799a80 1275691013 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275691108 C Ci:2:002:0 0 4 = 01010000
ed799a80 1275721328 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275721498 C Ci:2:002:0 0 4 = 01010000
ed799a80 1275753292 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275753488 C Ci:2:002:0 0 4 = 01010000
ed799a80 1275785291 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275785487 C Ci:2:002:0 0 4 = 01010000
ed799a80 1275817293 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275817494 C Ci:2:002:0 0 4 = 01010000
ed799a80 1275817523 S Co:2:002:0 s 23 03 0004 0001 0000 0
ed799a80 1275817611 C Co:2:002:0 0 0
ed799a80 1275833290 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275833487 C Ci:2:002:0 0 4 = 03031000
ed799a80 1275889293 S Co:2:002:0 s 23 01 0014 0001 0000 0
ed799a80 1275889496 C Co:2:002:0 0 0
ed799a80 1275889532 S Ci:2:000:0 s 80 06 0100 0000 0040 64 <
ed799a80 1275892102 C Ci:2:000:0 0 18 = 12011001 00000008 0b063002 20020102 0001
ed799a80 1275892117 S Co:2:002:0 s 23 03 0004 0001 0000 0
ed799a80 1275892202 C Co:2:002:0 0 0
ed799a80 1275909792 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ed799a80 1275910014 C Ci:2:002:0 0 4 = 03031000
f7290780 1275946520 C Ii:2:002:1 0:2048 2 = 0200
f7290780 1275946525 S Ii:2:002:1 -115:2048 2 <
ed799a80 1275965292 S Co:2:002:0 s 23 01 0014 0001 0000 0
ed799a80 1275965488 C Co:2:002:0 0 0
ed799a80 1275965498 S Co:2:000:0 s 00 05 0008 0000 0000 0
ed799a80 1275966256 C Co:2:000:0 0 0
ed799a80 1275985295 S Ci:2:008:0 s 80 06 0100 0000 0012 18 <
ed799a80 1275988172 C Ci:2:008:0 0 18 = 12011001 00000008 0b063002 20020102 0001
ed799a80 1275988197 S Ci:2:008:0 s 80 06 0200 0000 0009 9 <
ed799a80 1275990297 C Ci:2:008:0 0 9 = 09023b00 020100a0 32
ed799a80 1275990322 S Ci:2:008:0 s 80 06 0200 0000 003b 59 <
ed799a80 1275996802 C Ci:2:008:0 0 59 = 09023b00 020100a0 32090400 00010301 01000921 10010001 224b0007 05810308
ed799a80 1275996831 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
ed799a80 1275998034 C Ci:2:008:0 0 4 = 04030904
ed799a80 1275998059 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
ed799a80 1276001661 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
ed799a80 1276001690 S Ci:2:008:0 s 80 06 0301 0409 00ff 255 <
ed799a80 1276002925 C Ci:2:008:0 0 6 = 06034b00 4200
ed799a80 1276003106 S Co:2:008:0 s 00 09 0001 0000 0000 0
ed799a80 1276004260 C Co:2:008:0 0 0
ed799a80 1276004420 S Co:2:008:0 s 21 0a 0000 0000 0000 0
ed799a80 1276005203 C Co:2:008:0 0 0
ed799a80 1276005225 S Ci:2:008:0 s 81 06 2200 0000 004b 75 <
ed799a80 1276013206 C Ci:2:008:0 0 75 = 05010906 a1010507 19e029e7 15002501 75019508 81029501 75088101 95037501
ee1bd480 1276013657 S Co:2:008:0 s 21 09 0200 0000 0001 1 = 00
ee1bd280 1276013838 S Ii:2:008:1 -115:8 8 <
ee1bdb00 1276014194 S Co:2:008:0 s 21 0a 0000 0001 0000 0
ee1bd480 1276014952 C Co:2:008:0 0 1 >
ee1bdb00 1276015579 C Co:2:008:0 -32 0
ee1bdb00 1276015635 S Ci:2:008:0 s 81 06 2200 0001 006c 108 <
ee1bdb00 1276026705 C Ci:2:008:0 0 108 = 05010980 a1018501 19812983 15002501 95037501 81029501 75058101 c0050c09
ee11ad80 1276027069 S Ci:2:002:0 s a3 00 0000 0001 0004 4 <
ee11ad80 1276027199 C Ci:2:002:0 0 4 = 03030000
ee1bd480 1276051645 S Co:2:008:0 s 21 09 0200 0000 0001 1 = 01
ee1bd480 1276052955 C Co:2:008:0 0 1 >

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-07 22:24               ` Christoph Fritz
  2011-05-08 19:51                 ` Adi J. Sieker
@ 2011-05-10  8:24                 ` Adi J. Sieker
  1 sibling, 0 replies; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-10  8:24 UTC (permalink / raw)
  To: Christoph Fritz
  Cc: Jiri Kosina, Alan Stern, Oliver Neukum, USB list, linux-input,
	Kernel development list

On 08/05/11 00:24, Christoph Fritz wrote:
> On Fri, 2011-05-06 at 15:59 +0200, Adi J. Sieker wrote:
>> On 06/05/11 14:58, Jiri Kosina wrote:
>>> On Tue, 3 May 2011, Alan Stern wrote:
>>>
>>>>> Do you know of a way for me to tell the kernel/usbhid to use interface 1
>>>>> and ignore interface 0?
>>>>
>>>> Well, you can always unbind interface 0 from usbhid -- it corresponds
>>>> to the 2-1.1:1.0 file in /sys/bus/usb/drivers/usbhid/.  If you do that,
>>>> you'll probably find the few keys which _do_ currently work suddenly
>>>> stop working.
>>>>
>>>> But there's nothing to be done immediately about interface 1; usbhid is
>>>> _already_ using it.  It just isn't using it correctly.
>>>
>>> Adi,
>>>
>>> could you please provide output of
>>>
>>> 	cat /syse/kernel/debug/hid/<keyboard>/rdesc
>>>
>>> anytime after the keyboard has been plugged, and
>>
>> in /sys/kernel/debug/hid I have two devices for the keyboard. One is
>> 0003:060B:0230.0002 and the other 0003:060B:0230.0003
>>
>> attached are the rdesc files for both devices.
>>
>>>
>>> 	cat /syse/kernel/debug/hid/<keyboard>/events
>>   >  from the time you press any of the working and non-working keys? (both
>>   >  cases will be interesting).
>>
>> I only get events for the working keys on the *:0002 device.
>> All other files were empty after I pressed some keys.
>>
>> The events for the working keys are attached in the *.events file.
>> I first pressed backspace and then the menu key.
>
> Hi Adi,
>
>   I'm not sure about my patch below because of interface one, maybe you
> can give it a try.
>
Hi Christoph,

I haven't gotten around to compiling a new kernel yet.
Tzy-Jye Daniel Lin mentioned in a mail to me that adding
usbhid.quirks=0x060b:0x0230:0x0040 to the kernel command line
would achieve the same as the patch you posted.
I did try that on a 2.6.32 kernel and that didn't help.
I'll still generate a new kernel with your patch applied it's probably 
going to take a couple of days though.

Cheers
    Adi


the suppllied patch


> Thanks,
>   -- chf
>
> ---
> Subject: [PATCH] HID: add quirk for Solid Year keyboard ACK231
>
> This patch adds HID_QUIRK_MULTI_INPUT to Solid Year keyboard ACK231
> which reports keystrokes from inside a firmware-configuration
> interface instead of using its own interface.
>
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 00a94b5..abbace9 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -528,6 +528,9 @@
>   #define USB_VENDOR_ID_SKYCABLE			0x1223
>   #define	USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER	0x3F07
>
> +#define USB_VENDOR_ID_SOLIDYEAR		0x060b
> +#define USB_DEVICE_ID_SOLIDYEAR_KEYBOARD_ACK231	0x0230
> +
>   #define USB_VENDOR_ID_SONY			0x054c
>   #define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE	0x024b
>   #define USB_DEVICE_ID_SONY_PS3_CONTROLLER	0x0268
> diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
> index a8426f1..b099380 100644
> --- a/drivers/hid/usbhid/hid-quirks.c
> +++ b/drivers/hid/usbhid/hid-quirks.c
> @@ -49,6 +49,7 @@
>   	{ USB_VENDOR_ID_ETURBOTOUCH, USB_DEVICE_ID_ETURBOTOUCH, HID_QUIRK_MULTI_INPUT },
>   	{ USB_VENDOR_ID_PANTHERLORD, USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK, HID_QUIRK_MULTI_INPUT | HID_QUIRK_SKIP_OUTPUT_REPORTS },
>   	{ USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
> +	{ USB_VENDOR_ID_SOLIDYEAR, USB_DEVICE_ID_SOLIDYEAR_KEYBOARD_ACK231, HID_QUIRK_MULTI_INPUT },
>   	{ USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },
>
>   	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
>
>


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-08 19:51                 ` Adi J. Sieker
@ 2011-05-08 21:26                   ` Christoph Fritz
  0 siblings, 0 replies; 18+ messages in thread
From: Christoph Fritz @ 2011-05-08 21:26 UTC (permalink / raw)
  To: Adi J. Sieker
  Cc: Jiri Kosina, Alan Stern, Oliver Neukum, USB list, linux-input,
	Kernel development list

On Sun, May 08, 2011 at 09:51:42PM +0200, Adi J. Sieker wrote:
> On 08/05/11 00:24, Christoph Fritz wrote:
> >
> >  I'm not sure about my patch below because of interface one, maybe you
> >can give it a try.
> >
> What kernel version do I need? I'm running Ubuntu 10.04, so can I
> apply this to a 2.6.32 Ubuntu kernel or do I need a current 2.6.39?

A current kernel is recommended.


bye,
 -- chf

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-07 22:24               ` Christoph Fritz
@ 2011-05-08 19:51                 ` Adi J. Sieker
  2011-05-08 21:26                   ` Christoph Fritz
  2011-05-10  8:24                 ` Adi J. Sieker
  1 sibling, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-08 19:51 UTC (permalink / raw)
  To: Christoph Fritz
  Cc: Jiri Kosina, Alan Stern, Oliver Neukum, USB list, linux-input,
	Kernel development list

On 08/05/11 00:24, Christoph Fritz wrote:
> On Fri, 2011-05-06 at 15:59 +0200, Adi J. Sieker wrote:
>> On 06/05/11 14:58, Jiri Kosina wrote:
>>> On Tue, 3 May 2011, Alan Stern wrote:
>>>
>>>>> Do you know of a way for me to tell the kernel/usbhid to use interface 1
>>>>> and ignore interface 0?
>>>>
>>>> Well, you can always unbind interface 0 from usbhid -- it corresponds
>>>> to the 2-1.1:1.0 file in /sys/bus/usb/drivers/usbhid/.  If you do that,
>>>> you'll probably find the few keys which _do_ currently work suddenly
>>>> stop working.
>>>>
>>>> But there's nothing to be done immediately about interface 1; usbhid is
>>>> _already_ using it.  It just isn't using it correctly.
>>>
>>> Adi,
>>>
>>> could you please provide output of
>>>
>>> 	cat /syse/kernel/debug/hid/<keyboard>/rdesc
>>>
>>> anytime after the keyboard has been plugged, and
>>
>> in /sys/kernel/debug/hid I have two devices for the keyboard. One is
>> 0003:060B:0230.0002 and the other 0003:060B:0230.0003
>>
>> attached are the rdesc files for both devices.
>>
>>>
>>> 	cat /syse/kernel/debug/hid/<keyboard>/events
>>   >  from the time you press any of the working and non-working keys? (both
>>   >  cases will be interesting).
>>
>> I only get events for the working keys on the *:0002 device.
>> All other files were empty after I pressed some keys.
>>
>> The events for the working keys are attached in the *.events file.
>> I first pressed backspace and then the menu key.
>
> Hi Adi,
>
>   I'm not sure about my patch below because of interface one, maybe you
> can give it a try.
>
What kernel version do I need? I'm running Ubuntu 10.04, so can I apply 
this to a 2.6.32 Ubuntu kernel or do I need a current 2.6.39?

Any ideas if I'll run into problems if I run Ubuntu 10.04 on a 2.6.39 
kernel.

Cheers
    Adi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-06 13:59             ` Adi J. Sieker
@ 2011-05-07 22:24               ` Christoph Fritz
  2011-05-08 19:51                 ` Adi J. Sieker
  2011-05-10  8:24                 ` Adi J. Sieker
  0 siblings, 2 replies; 18+ messages in thread
From: Christoph Fritz @ 2011-05-07 22:24 UTC (permalink / raw)
  To: Adi J. Sieker
  Cc: Jiri Kosina, Alan Stern, Oliver Neukum, USB list, linux-input,
	Kernel development list

On Fri, 2011-05-06 at 15:59 +0200, Adi J. Sieker wrote:
> On 06/05/11 14:58, Jiri Kosina wrote:
> > On Tue, 3 May 2011, Alan Stern wrote:
> >
> >>> Do you know of a way for me to tell the kernel/usbhid to use interface 1
> >>> and ignore interface 0?
> >>
> >> Well, you can always unbind interface 0 from usbhid -- it corresponds
> >> to the 2-1.1:1.0 file in /sys/bus/usb/drivers/usbhid/.  If you do that,
> >> you'll probably find the few keys which _do_ currently work suddenly
> >> stop working.
> >>
> >> But there's nothing to be done immediately about interface 1; usbhid is
> >> _already_ using it.  It just isn't using it correctly.
> >
> > Adi,
> >
> > could you please provide output of
> >
> > 	cat /syse/kernel/debug/hid/<keyboard>/rdesc
> >
> > anytime after the keyboard has been plugged, and
> 
> in /sys/kernel/debug/hid I have two devices for the keyboard. One is 
> 0003:060B:0230.0002 and the other 0003:060B:0230.0003
> 
> attached are the rdesc files for both devices.
> 
> >
> > 	cat /syse/kernel/debug/hid/<keyboard>/events
>  > from the time you press any of the working and non-working keys? (both
>  > cases will be interesting).
> 
> I only get events for the working keys on the *:0002 device.
> All other files were empty after I pressed some keys.
> 
> The events for the working keys are attached in the *.events file.
> I first pressed backspace and then the menu key.

Hi Adi,
 
 I'm not sure about my patch below because of interface one, maybe you
can give it a try.

Thanks,
 -- chf

---
Subject: [PATCH] HID: add quirk for Solid Year keyboard ACK231

This patch adds HID_QUIRK_MULTI_INPUT to Solid Year keyboard ACK231
which reports keystrokes from inside a firmware-configuration
interface instead of using its own interface.

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 00a94b5..abbace9 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -528,6 +528,9 @@
 #define USB_VENDOR_ID_SKYCABLE			0x1223
 #define	USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER	0x3F07
 
+#define USB_VENDOR_ID_SOLIDYEAR		0x060b
+#define USB_DEVICE_ID_SOLIDYEAR_KEYBOARD_ACK231	0x0230
+
 #define USB_VENDOR_ID_SONY			0x054c
 #define USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE	0x024b
 #define USB_DEVICE_ID_SONY_PS3_CONTROLLER	0x0268
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index a8426f1..b099380 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -49,6 +49,7 @@
 	{ USB_VENDOR_ID_ETURBOTOUCH, USB_DEVICE_ID_ETURBOTOUCH, HID_QUIRK_MULTI_INPUT },
 	{ USB_VENDOR_ID_PANTHERLORD, USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK, HID_QUIRK_MULTI_INPUT | HID_QUIRK_SKIP_OUTPUT_REPORTS },
 	{ USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
+	{ USB_VENDOR_ID_SOLIDYEAR, USB_DEVICE_ID_SOLIDYEAR_KEYBOARD_ACK231, HID_QUIRK_MULTI_INPUT },
 	{ USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },
 
 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },



^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-06 12:58           ` Jiri Kosina
@ 2011-05-06 13:59             ` Adi J. Sieker
  2011-05-07 22:24               ` Christoph Fritz
  0 siblings, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-06 13:59 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Alan Stern, Oliver Neukum, USB list, linux-input,
	Kernel development list

[-- Attachment #1: Type: text/plain, Size: 1289 bytes --]

On 06/05/11 14:58, Jiri Kosina wrote:
> On Tue, 3 May 2011, Alan Stern wrote:
>
>>> Do you know of a way for me to tell the kernel/usbhid to use interface 1
>>> and ignore interface 0?
>>
>> Well, you can always unbind interface 0 from usbhid -- it corresponds
>> to the 2-1.1:1.0 file in /sys/bus/usb/drivers/usbhid/.  If you do that,
>> you'll probably find the few keys which _do_ currently work suddenly
>> stop working.
>>
>> But there's nothing to be done immediately about interface 1; usbhid is
>> _already_ using it.  It just isn't using it correctly.
>
> Adi,
>
> could you please provide output of
>
> 	cat /syse/kernel/debug/hid/<keyboard>/rdesc
>
> anytime after the keyboard has been plugged, and

in /sys/kernel/debug/hid I have two devices for the keyboard. One is 
0003:060B:0230.0002 and the other 0003:060B:0230.0003

attached are the rdesc files for both devices.

>
> 	cat /syse/kernel/debug/hid/<keyboard>/events
 > from the time you press any of the working and non-working keys? (both
 > cases will be interesting).

I only get events for the working keys on the *:0002 device.
All other files were empty after I pressed some keys.

The events for the working keys are attached in the *.events file.
I first pressed backspace and then the menu key.

Cheers
    Adi

[-- Attachment #2: 0003:060B:0230.0002.rdesc --]
[-- Type: text/plain, Size: 9075 bytes --]

05 01 09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 03 75 01 05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 06 75 08 26 ff 00 05 07 19 00 29 91 81 00 09 00 15 00 26 ff 00 75 08 95 08 b1 00 c0 

  INPUT[INPUT]
    Field(0)
      Usage(8)
        Keyboard.00e0
        Keyboard.00e1
        Keyboard.00e2
        Keyboard.00e3
        Keyboard.00e4
        Keyboard.00e5
        Keyboard.00e6
        Keyboard.00e7
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(1)
      Report Count(8)
      Report Offset(0)
      Flags( Variable Absolute )
    Field(1)
      Usage(146)
        Keyboard.0000
        Keyboard.0001
        Keyboard.0002
        Keyboard.0003
        Keyboard.0004
        Keyboard.0005
        Keyboard.0006
        Keyboard.0007
        Keyboard.0008
        Keyboard.0009
        Keyboard.000a
        Keyboard.000b
        Keyboard.000c
        Keyboard.000d
        Keyboard.000e
        Keyboard.000f
        Keyboard.0010
        Keyboard.0011
        Keyboard.0012
        Keyboard.0013
        Keyboard.0014
        Keyboard.0015
        Keyboard.0016
        Keyboard.0017
        Keyboard.0018
        Keyboard.0019
        Keyboard.001a
        Keyboard.001b
        Keyboard.001c
        Keyboard.001d
        Keyboard.001e
        Keyboard.001f
        Keyboard.0020
        Keyboard.0021
        Keyboard.0022
        Keyboard.0023
        Keyboard.0024
        Keyboard.0025
        Keyboard.0026
        Keyboard.0027
        Keyboard.0028
        Keyboard.0029
        Keyboard.002a
        Keyboard.002b
        Keyboard.002c
        Keyboard.002d
        Keyboard.002e
        Keyboard.002f
        Keyboard.0030
        Keyboard.0031
        Keyboard.0032
        Keyboard.0033
        Keyboard.0034
        Keyboard.0035
        Keyboard.0036
        Keyboard.0037
        Keyboard.0038
        Keyboard.0039
        Keyboard.003a
        Keyboard.003b
        Keyboard.003c
        Keyboard.003d
        Keyboard.003e
        Keyboard.003f
        Keyboard.0040
        Keyboard.0041
        Keyboard.0042
        Keyboard.0043
        Keyboard.0044
        Keyboard.0045
        Keyboard.0046
        Keyboard.0047
        Keyboard.0048
        Keyboard.0049
        Keyboard.004a
        Keyboard.004b
        Keyboard.004c
        Keyboard.004d
        Keyboard.004e
        Keyboard.004f
        Keyboard.0050
        Keyboard.0051
        Keyboard.0052
        Keyboard.0053
        Keyboard.0054
        Keyboard.0055
        Keyboard.0056
        Keyboard.0057
        Keyboard.0058
        Keyboard.0059
        Keyboard.005a
        Keyboard.005b
        Keyboard.005c
        Keyboard.005d
        Keyboard.005e
        Keyboard.005f
        Keyboard.0060
        Keyboard.0061
        Keyboard.0062
        Keyboard.0063
        Keyboard.0064
        Keyboard.0065
        Keyboard.0066
        Keyboard.0067
        Keyboard.0068
        Keyboard.0069
        Keyboard.006a
        Keyboard.006b
        Keyboard.006c
        Keyboard.006d
        Keyboard.006e
        Keyboard.006f
        Keyboard.0070
        Keyboard.0071
        Keyboard.0072
        Keyboard.0073
        Keyboard.0074
        Keyboard.0075
        Keyboard.0076
        Keyboard.0077
        Keyboard.0078
        Keyboard.0079
        Keyboard.007a
        Keyboard.007b
        Keyboard.007c
        Keyboard.007d
        Keyboard.007e
        Keyboard.007f
        Keyboard.0080
        Keyboard.0081
        Keyboard.0082
        Keyboard.0083
        Keyboard.0084
        Keyboard.0085
        Keyboard.0086
        Keyboard.0087
        Keyboard.0088
        Keyboard.0089
        Keyboard.008a
        Keyboard.008b
        Keyboard.008c
        Keyboard.008d
        Keyboard.008e
        Keyboard.008f
        Keyboard.0090
        Keyboard.0091
      Logical Minimum(0)
      Logical Maximum(255)
      Report Size(8)
      Report Count(6)
      Report Offset(16)
      Flags( Array Absolute )
  OUTPUT[OUTPUT]
    Field(0)
      Usage(3)
        LED.NumLock
        LED.CapsLock
        LED.ScrollLock
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(1)
      Report Count(3)
      Report Offset(0)
      Flags( Variable Absolute )
  FEATURE[FEATURE]
    Field(0)
      Usage(8)
        Keyboard.0000
        Keyboard.0000
        Keyboard.0000
        Keyboard.0000
        Keyboard.0000
        Keyboard.0000
        Keyboard.0000
        Keyboard.0000
      Logical Minimum(0)
      Logical Maximum(255)
      Report Size(8)
      Report Count(8)
      Report Offset(0)
      Flags( Array Absolute )

Keyboard.00e0 ---> Key.LeftControl
Keyboard.00e1 ---> Key.LeftShift
Keyboard.00e2 ---> Key.LeftAlt
Keyboard.00e3 ---> Key.LeftMeta
Keyboard.00e4 ---> Key.RightCtrl
Keyboard.00e5 ---> Key.RightShift
Keyboard.00e6 ---> Key.RightAlt
Keyboard.00e7 ---> Key.RightMeta
Keyboard.0000 ---> Sync.Report
Keyboard.0001 ---> Sync.Report
Keyboard.0002 ---> Sync.Report
Keyboard.0003 ---> Sync.Report
Keyboard.0004 ---> Key.A
Keyboard.0005 ---> Key.B
Keyboard.0006 ---> Key.C
Keyboard.0007 ---> Key.D
Keyboard.0008 ---> Key.E
Keyboard.0009 ---> Key.F
Keyboard.000a ---> Key.G
Keyboard.000b ---> Key.H
Keyboard.000c ---> Key.I
Keyboard.000d ---> Key.J
Keyboard.000e ---> Key.K
Keyboard.000f ---> Key.L
Keyboard.0010 ---> Key.M
Keyboard.0011 ---> Key.N
Keyboard.0012 ---> Key.O
Keyboard.0013 ---> Key.P
Keyboard.0014 ---> Key.Q
Keyboard.0015 ---> Key.R
Keyboard.0016 ---> Key.S
Keyboard.0017 ---> Key.T
Keyboard.0018 ---> Key.U
Keyboard.0019 ---> Key.V
Keyboard.001a ---> Key.W
Keyboard.001b ---> Key.X
Keyboard.001c ---> Key.Y
Keyboard.001d ---> Key.Z
Keyboard.001e ---> Key.1
Keyboard.001f ---> Key.2
Keyboard.0020 ---> Key.3
Keyboard.0021 ---> Key.4
Keyboard.0022 ---> Key.5
Keyboard.0023 ---> Key.6
Keyboard.0024 ---> Key.7
Keyboard.0025 ---> Key.8
Keyboard.0026 ---> Key.9
Keyboard.0027 ---> Key.0
Keyboard.0028 ---> Key.Enter
Keyboard.0029 ---> Key.Esc
Keyboard.002a ---> Key.Backspace
Keyboard.002b ---> Key.Tab
Keyboard.002c ---> Key.Space
Keyboard.002d ---> Key.Minus
Keyboard.002e ---> Key.Equal
Keyboard.002f ---> Key.LeftBrace
Keyboard.0030 ---> Key.RightBrace
Keyboard.0031 ---> Key.BackSlash
Keyboard.0032 ---> Key.BackSlash
Keyboard.0033 ---> Key.Semicolon
Keyboard.0034 ---> Key.Apostrophe
Keyboard.0035 ---> Key.Grave
Keyboard.0036 ---> Key.Comma
Keyboard.0037 ---> Key.Dot
Keyboard.0038 ---> Key.Slash
Keyboard.0039 ---> Key.CapsLock
Keyboard.003a ---> Key.F1
Keyboard.003b ---> Key.F2
Keyboard.003c ---> Key.F3
Keyboard.003d ---> Key.F4
Keyboard.003e ---> Key.F5
Keyboard.003f ---> Key.F6
Keyboard.0040 ---> Key.F7
Keyboard.0041 ---> Key.F8
Keyboard.0042 ---> Key.F9
Keyboard.0043 ---> Key.F10
Keyboard.0044 ---> Key.F11
Keyboard.0045 ---> Key.F12
Keyboard.0046 ---> Key.SysRq
Keyboard.0047 ---> Key.ScrollLock
Keyboard.0048 ---> Key.Pause
Keyboard.0049 ---> Key.Insert
Keyboard.004a ---> Key.Home
Keyboard.004b ---> Key.PageUp
Keyboard.004c ---> Key.Delete
Keyboard.004d ---> Key.End
Keyboard.004e ---> Key.PageDown
Keyboard.004f ---> Key.Right
Keyboard.0050 ---> Key.Left
Keyboard.0051 ---> Key.Down
Keyboard.0052 ---> Key.Up
Keyboard.0053 ---> Key.NumLock
Keyboard.0054 ---> Key.KPSlash
Keyboard.0055 ---> Key.KPAsterisk
Keyboard.0056 ---> Key.KPMinus
Keyboard.0057 ---> Key.KPPlus
Keyboard.0058 ---> Key.KPEnter
Keyboard.0059 ---> Key.KP1
Keyboard.005a ---> Key.KP2
Keyboard.005b ---> Key.KP3
Keyboard.005c ---> Key.KP4
Keyboard.005d ---> Key.KP5
Keyboard.005e ---> Key.KP6
Keyboard.005f ---> Key.KP7
Keyboard.0060 ---> Key.KP8
Keyboard.0061 ---> Key.KP9
Keyboard.0062 ---> Key.KP0
Keyboard.0063 ---> Key.KPDot
Keyboard.0064 ---> Key.102nd
Keyboard.0065 ---> Key.Compose
Keyboard.0066 ---> Key.Power
Keyboard.0067 ---> Key.KPEqual
Keyboard.0068 ---> Key.F13
Keyboard.0069 ---> Key.F14
Keyboard.006a ---> Key.F15
Keyboard.006b ---> Key.F16
Keyboard.006c ---> Key.F17
Keyboard.006d ---> Key.F18
Keyboard.006e ---> Key.F19
Keyboard.006f ---> Key.F20
Keyboard.0070 ---> Key.F21
Keyboard.0071 ---> Key.F22
Keyboard.0072 ---> Key.F23
Keyboard.0073 ---> Key.F24
Keyboard.0074 ---> Key.Open
Keyboard.0075 ---> Key.Help
Keyboard.0076 ---> Key.Props
Keyboard.0077 ---> Key.Front
Keyboard.0078 ---> Key.Stop
Keyboard.0079 ---> Key.Again
Keyboard.007a ---> Key.Undo
Keyboard.007b ---> Key.Cut
Keyboard.007c ---> Key.Copy
Keyboard.007d ---> Key.Paste
Keyboard.007e ---> Key.Find
Keyboard.007f ---> Key.Mute
Keyboard.0080 ---> Key.VolumeUp
Keyboard.0081 ---> Key.VolumeDown
Keyboard.0082 ---> Key.Unknown
Keyboard.0083 ---> Key.Unknown
Keyboard.0084 ---> Key.Unknown
Keyboard.0085 ---> Key.KPComma
Keyboard.0086 ---> Key.Unknown
Keyboard.0087 ---> Key.RO
Keyboard.0088 ---> Key.Katakana/Hiragana
Keyboard.0089 ---> Key.Yen
Keyboard.008a ---> Key.Henkan
Keyboard.008b ---> Key.Muhenkan
Keyboard.008c ---> Key.KPJpComma
Keyboard.008d ---> Key.Unknown
Keyboard.008e ---> Key.Unknown
Keyboard.008f ---> Key.Unknown
Keyboard.0090 ---> Key.Hangeul
Keyboard.0091 ---> Key.Hanja
LED.NumLock ---> LED.NumLock
LED.CapsLock ---> LED.CapsLock
LED.ScrollLock ---> LED.ScrollLock

[-- Attachment #3: 0003:060B:0230.0002-working-keys.events --]
[-- Type: application/octet-stream, Size: 1030 bytes --]

[-- Attachment #4: 0003:060B:0230.0003.rdesc --]
[-- Type: text/plain, Size: 769 bytes --]

05 01 09 80 a1 01 85 01 19 81 29 83 15 00 25 01 95 03 75 01 81 02 95 01 75 05 81 01 c0 05 0c 09 01 a1 01 85 02 19 00 2a ff 7f 15 00 26 ff 7f 95 01 75 10 81 00 c0 05 01 09 06 a1 01 85 03 95 38 75 01 15 00 25 01 05 07 19 e0 29 e7 19 00 29 2f 81 02 c0 05 01 09 06 a1 01 85 04 95 38 75 01 15 00 25 01 05 07 19 30 29 67 81 02 c0 

  INPUT(1)[INPUT]
    Field(0)
      Usage(3)
        GenericDesktop.SystemPowerDown
        GenericDesktop.SystemSleep
        GenericDesktop.SystemWakeUp
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(1)
      Report Count(3)
      Report Offset(0)
      Flags( Variable Absolute )

GenericDesktop.SystemPowerDown ---> Sync.Report
GenericDesktop.SystemSleep ---> Sync.Report
GenericDesktop.SystemWakeUp ---> Sync.Report

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-03 13:49         ` Alan Stern
@ 2011-05-06 12:58           ` Jiri Kosina
  2011-05-06 13:59             ` Adi J. Sieker
  0 siblings, 1 reply; 18+ messages in thread
From: Jiri Kosina @ 2011-05-06 12:58 UTC (permalink / raw)
  To: Alan Stern, Adi J. Sieker
  Cc: Oliver Neukum, USB list, linux-input, Kernel development list

On Tue, 3 May 2011, Alan Stern wrote:

> > Do you know of a way for me to tell the kernel/usbhid to use interface 1 
> > and ignore interface 0?
> 
> Well, you can always unbind interface 0 from usbhid -- it corresponds
> to the 2-1.1:1.0 file in /sys/bus/usb/drivers/usbhid/.  If you do that,
> you'll probably find the few keys which _do_ currently work suddenly
> stop working.
> 
> But there's nothing to be done immediately about interface 1; usbhid is
> _already_ using it.  It just isn't using it correctly.

Adi,

could you please provide output of

	cat /syse/kernel/debug/hid/<keyboard>/rdesc

anytime after the keyboard has been plugged, and

	cat /syse/kernel/debug/hid/<keyboard>/events

from the time you press any of the working and non-working keys? (both 
cases will be interesting).

Oh, and the above assumes that you have debugfs mounted under 
/sys/kernel/debug.

Thanks,

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-03  9:40       ` Adi J. Sieker
@ 2011-05-03 13:49         ` Alan Stern
  2011-05-06 12:58           ` Jiri Kosina
  0 siblings, 1 reply; 18+ messages in thread
From: Alan Stern @ 2011-05-03 13:49 UTC (permalink / raw)
  To: Adi J. Sieker
  Cc: Jiri Kosina, Oliver Neukum, USB list, linux-input,
	Kernel development list

On Tue, 3 May 2011, Adi J. Sieker wrote:

> Do you know of a way for me to tell the kernel/usbhid to use interface 1 
> and ignore interface 0?

Well, you can always unbind interface 0 from usbhid -- it corresponds
to the 2-1.1:1.0 file in /sys/bus/usb/drivers/usbhid/.  If you do that,
you'll probably find the few keys which _do_ currently work suddenly
stop working.

But there's nothing to be done immediately about interface 1; usbhid is
_already_ using it.  It just isn't using it correctly.

Alan Stern


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-02 22:29     ` Alan Stern
@ 2011-05-03  9:40       ` Adi J. Sieker
  2011-05-03 13:49         ` Alan Stern
  0 siblings, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-03  9:40 UTC (permalink / raw)
  To: Alan Stern
  Cc: Jiri Kosina, Oliver Neukum, USB list, linux-input,
	Kernel development list

On 03/05/11 00:29, Alan Stern wrote:
> On Mon, 2 May 2011, Adi J. Sieker wrote:
>
>>> Interestingly, the usbmon trace shows that the interrupt endpoint for
>>> interface 1 isn't being used by usbhid.  I don't know why, but it
>>> shouldn't make much difference for your purposes since that interface
>>> appears to be associated with the gaming interface.  But maybe I'm
>>> wrong and it is important somehow...
>>>
>>> The other noticeable thing is that the keyboard didn't accept the
>>> Set-Idle request for interface 1.
>>>
>>> You said before that the keyboard worked okay when driven by a guest
>>> Windows OS, right?  Can you collect an equivalent usbmon trace for
>>> that?  Comparing the two traces may be instructive.
>>
>> I hope this is what you meant. :)
>> Attached is a usbmon trace when I attach the keyboard to a VBox VM
>> running a Windows XP guest. I have no idea how to get a USB trace from
>> within Windows. The last block is when I pressed h twice in the Windows
>> XP guest.
>
> This is perfect.  It shows that the H key is reported using the
> interrupt endpoint on interface 1, which explains why it's not working
> with usbhid.  It also shows that the rejected Set-Idle request doesn't
> matter.
>
Do you know of a way for me to tell the kernel/usbhid to use interface 1 
and ignore interface 0?

Thanks
    Adi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-02 21:19   ` Adi J. Sieker
@ 2011-05-02 22:29     ` Alan Stern
  2011-05-03  9:40       ` Adi J. Sieker
  0 siblings, 1 reply; 18+ messages in thread
From: Alan Stern @ 2011-05-02 22:29 UTC (permalink / raw)
  To: Adi J. Sieker, Jiri Kosina
  Cc: Oliver Neukum, USB list, linux-input, Kernel development list

On Mon, 2 May 2011, Adi J. Sieker wrote:

> > Interestingly, the usbmon trace shows that the interrupt endpoint for
> > interface 1 isn't being used by usbhid.  I don't know why, but it
> > shouldn't make much difference for your purposes since that interface
> > appears to be associated with the gaming interface.  But maybe I'm
> > wrong and it is important somehow...
> >
> > The other noticeable thing is that the keyboard didn't accept the
> > Set-Idle request for interface 1.
> >
> > You said before that the keyboard worked okay when driven by a guest
> > Windows OS, right?  Can you collect an equivalent usbmon trace for
> > that?  Comparing the two traces may be instructive.
> 
> I hope this is what you meant. :)
> Attached is a usbmon trace when I attach the keyboard to a VBox VM 
> running a Windows XP guest. I have no idea how to get a USB trace from 
> within Windows. The last block is when I pressed h twice in the Windows 
> XP guest.

This is perfect.  It shows that the H key is reported using the 
interrupt endpoint on interface 1, which explains why it's not working 
with usbhid.  It also shows that the rejected Set-Idle request doesn't 
matter.

At this point I don't know what the problem is, but now there's plenty 
of information in the email thread for the people on linux-input to 
debug this.

Alan Stern


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
  2011-05-02 21:06 ` Alan Stern
@ 2011-05-02 21:19   ` Adi J. Sieker
  2011-05-02 22:29     ` Alan Stern
  0 siblings, 1 reply; 18+ messages in thread
From: Adi J. Sieker @ 2011-05-02 21:19 UTC (permalink / raw)
  To: Alan Stern; +Cc: Oliver Neukum, USB list, linux-input, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1688 bytes --]

On 02/05/11 23:06, Alan Stern wrote:
> On Mon, 2 May 2011, Adi J. Sieker wrote:
>
>> Attached is the usbmon trace when I plug the keyboard in.
>>
>> lsusb shows the keyboard as:
>> Bus 002 Device 008: ID 060b:0230 Solid Year
>>
>> Relevant section from /sys/kernel/debug/usb/devices
>> T:  Bus=02 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  8 Spd=1.5 MxCh= 0
>> D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
>> P:  Vendor=060b ProdID=0230 Rev= 2.20
>> S:  Manufacturer=KB
>> S:  Product=USB Keyboard
>> 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
>
> Interestingly, the usbmon trace shows that the interrupt endpoint for
> interface 1 isn't being used by usbhid.  I don't know why, but it
> shouldn't make much difference for your purposes since that interface
> appears to be associated with the gaming interface.  But maybe I'm
> wrong and it is important somehow...
>
> The other noticeable thing is that the keyboard didn't accept the
> Set-Idle request for interface 1.
>
> You said before that the keyboard worked okay when driven by a guest
> Windows OS, right?  Can you collect an equivalent usbmon trace for
> that?  Comparing the two traces may be instructive.

I hope this is what you meant. :)
Attached is a usbmon trace when I attach the keyboard to a VBox VM 
running a Windows XP guest. I have no idea how to get a USB trace from 
within Windows. The last block is when I pressed h twice in the Windows 
XP guest.

Cheers
    Adi

[-- Attachment #2: usbmon-guest.out --]
[-- Type: text/plain, Size: 4576 bytes --]

e6283180 3528948156 S Ci:2:008:0 s 80 06 0100 0000 0012 18 <
e6283180 3528950914 C Ci:2:008:0 0 18 = 12011001 00000008 0b063002 20020102 0001
e6283180 3528950988 S Ci:2:008:0 s 80 06 0200 0000 0009 9 <
e6283180 3528953041 C Ci:2:008:0 0 9 = 09023b00 020100a0 32
e6283180 3528953062 S Ci:2:008:0 s 80 06 0200 0000 003b 59 <
e6283180 3528959915 C Ci:2:008:0 0 59 = 09023b00 020100a0 32090400 00010301 01000921 10010001 224b0007 05810308
ee1bd280 3528959982 C Ii:2:008:1 -108:8 0
f0267b00 3529284981 S Ci:2:008:0 s 80 06 0100 0000 0040 64 <
f0267b00 3529287920 C Ci:2:008:0 0 18 = 12011001 00000008 0b063002 20020102 0001
f0267b00 3529361757 S Ci:2:008:0 s 80 06 0100 0000 0012 18 <
f0267b00 3529364171 C Ci:2:008:0 0 18 = 12011001 00000008 0b063002 20020102 0001
f0267b00 3529365746 S Ci:2:008:0 s 80 06 0200 0000 0009 9 <
f0267b00 3529367546 C Ci:2:008:0 0 9 = 09023b00 020100a0 32
f0267b00 3529373770 S Ci:2:008:0 s 80 06 0200 0000 00ff 255 <
f0267b00 3529380045 C Ci:2:008:0 0 59 = 09023b00 020100a0 32090400 00010301 01000921 10010001 224b0007 05810308
f0267b00 3529383566 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
f0267b00 3529384668 C Ci:2:008:0 0 4 = 04030904
f0267b00 3529387503 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
f0267b00 3529390916 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
f0267b00 3529394743 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
f0267b00 3529395919 C Ci:2:008:0 0 4 = 04030904
f0267b00 3529398208 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
f0267b00 3529401543 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
f0267b00 3529423701 S Ci:2:008:0 s 80 06 0100 0000 0012 18 <
f0267b00 3529426169 C Ci:2:008:0 0 18 = 12011001 00000008 0b063002 20020102 0001
f0267b00 3529429749 S Ci:2:008:0 s 80 06 0200 0000 0009 9 <
f0267b00 3529431541 C Ci:2:008:0 0 9 = 09023b00 020100a0 32
f0267b00 3529437362 S Ci:2:008:0 s 80 06 0200 0000 003b 59 <
f0267b00 3529443919 C Ci:2:008:0 0 59 = 09023b00 020100a0 32090400 00010301 01000921 10010001 224b0007 05810308
f0267b00 3529481095 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
f0267b00 3529482543 C Ci:2:008:0 0 4 = 04030904
f0267b00 3529485739 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
f0267b00 3529489045 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
f0267b00 3529491035 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
f0267b00 3529492419 C Ci:2:008:0 0 4 = 04030904
f0267b00 3529494747 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
f0267b00 3529498043 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
f0267b00 3529644847 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
f0267b00 3529646170 C Ci:2:008:0 0 4 = 04030904
f0267b00 3529649463 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
f0267b00 3529652916 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
f0267b00 3529654618 S Ci:2:008:0 s 80 06 0300 0000 00ff 255 <
f0267b00 3529655796 C Ci:2:008:0 0 4 = 04030904
f0267b00 3529657753 S Ci:2:008:0 s 80 06 0302 0409 00ff 255 <
f0267b00 3529661043 C Ci:2:008:0 0 26 = 1a035500 53004200 20004b00 65007900 62006f00 61007200 6400
f0267b00 3529664864 S Co:2:008:0 s 21 0a 0000 0000 0000 0
f0267b00 3529665920 C Co:2:008:0 0 0
f0267b00 3529666626 S Ci:2:008:0 s 81 06 2200 0000 008b 139 <
f0267b00 3529674418 C Ci:2:008:0 0 75 = 05010906 a1010507 19e029e7 15002501 75019508 81029501 75088101 95037501
f0267b00 3529693746 S Co:2:008:0 s 21 0a 0000 0001 0000 0
f0267b00 3529694542 C Co:2:008:0 -32 0
f0267b00 3529702370 S Ci:2:008:0 s 81 06 2200 0001 00ac 172 <
f0267b00 3529713044 C Ci:2:008:0 0 108 = 05010980 a1018501 19812983 15002501 95037501 81029501 75058101 c0050c09
f0267b00 3529718373 S Ii:2:008:2 -115:8 8 <
f0267b80 3529725741 S Ii:2:008:1 -115:8 8 <
f0267b00 3529733548 C Ii:2:008:2 0:8 8 = 03000000 00000000
f0267b00 3529733614 S Ii:2:008:2 -115:8 8 <
d8b15500 3530739916 S Co:2:008:0 s 21 09 0200 0000 0001 1 = 01
d8b15500 3530741428 C Co:2:008:0 0 1 >
eea26600 3531740815 S Co:2:008:0 s 21 09 0200 0000 0001 1 = 01
eea26600 3531741804 C Co:2:008:0 0 1 >
eea26c80 3532773340 S Co:2:008:0 s 21 09 0200 0000 0001 1 = 01
eea26c80 3532774436 C Co:2:008:0 0 1 >










f0267b00 3581997851 C Ii:2:008:2 0:8 8 = 03000008 00000000
db7e2900 3582013998 S Ii:2:008:2 -115:8 8 <
db7e2900 3582093846 C Ii:2:008:2 0:8 8 = 03000000 00000000
db7e2900 3582101235 S Ii:2:008:2 -115:8 8 <
db7e2900 3582477849 C Ii:2:008:2 0:8 8 = 03000008 00000000
db7e2900 3582497373 S Ii:2:008:2 -115:8 8 <
db7e2900 3582565849 C Ii:2:008:2 0:8 8 = 03000000 00000000
d58e0300 3582576419 S Ii:2:008:2 -115:8 8 <

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: USB keyboard recognized as HID keyboard but doesn't work
       [not found] <4DBF16D8.8040209@sieker.io>
@ 2011-05-02 21:06 ` Alan Stern
  2011-05-02 21:19   ` Adi J. Sieker
  0 siblings, 1 reply; 18+ messages in thread
From: Alan Stern @ 2011-05-02 21:06 UTC (permalink / raw)
  To: Adi J. Sieker; +Cc: Oliver Neukum, USB list, linux-input, linux-kernel

On Mon, 2 May 2011, Adi J. Sieker wrote:

> Attached is the usbmon trace when I plug the keyboard in.
> 
> lsusb shows the keyboard as:
> Bus 002 Device 008: ID 060b:0230 Solid Year
> 
> Relevant section from /sys/kernel/debug/usb/devices
> T:  Bus=02 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  8 Spd=1.5 MxCh= 0
> D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
> P:  Vendor=060b ProdID=0230 Rev= 2.20
> S:  Manufacturer=KB
> S:  Product=USB Keyboard
> 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

Interestingly, the usbmon trace shows that the interrupt endpoint for
interface 1 isn't being used by usbhid.  I don't know why, but it
shouldn't make much difference for your purposes since that interface
appears to be associated with the gaming interface.  But maybe I'm
wrong and it is important somehow...

The other noticeable thing is that the keyboard didn't accept the 
Set-Idle request for interface 1.

You said before that the keyboard worked okay when driven by a guest 
Windows OS, right?  Can you collect an equivalent usbmon trace for 
that?  Comparing the two traces may be instructive.

Alan Stern


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2011-05-10  8:24 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-30 20:23 USB keyboard recognized as HID keyboard but doesn't work Adi J. Sieker
2011-05-01  7:53 ` Oliver Neukum
2011-05-01 17:49   ` Adi J. Sieker
2011-05-02 14:04     ` Alan Stern
2011-05-02 19:35       ` Adi J. Sieker
2011-05-02 20:27         ` Alan Stern
2011-05-02 20:49           ` Adi J. Sieker
     [not found] <4DBF16D8.8040209@sieker.io>
2011-05-02 21:06 ` Alan Stern
2011-05-02 21:19   ` Adi J. Sieker
2011-05-02 22:29     ` Alan Stern
2011-05-03  9:40       ` Adi J. Sieker
2011-05-03 13:49         ` Alan Stern
2011-05-06 12:58           ` Jiri Kosina
2011-05-06 13:59             ` Adi J. Sieker
2011-05-07 22:24               ` Christoph Fritz
2011-05-08 19:51                 ` Adi J. Sieker
2011-05-08 21:26                   ` Christoph Fritz
2011-05-10  8:24                 ` Adi J. Sieker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).