Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 520048 - sys-fs/udev-216: Microsoft Wired Keyboard 600 create a spurious joystick device
Summary: sys-fs/udev-216: Microsoft Wired Keyboard 600 create a spurious joystick device
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: udev maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-16 12:50 UTC by farmboy0
Modified: 2019-11-30 19:52 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description farmboy0 2014-08-16 12:50:08 UTC
My Microsoft Wired Keyboard 600 is recognized as keyboard by udev.

udevadm info --query=all /dev/input/event3

P: /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/0003:045E:0750.0002/input/input3/event3
N: input/event3
S: input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-joystick
S: input/by-path/pci-0000:00:16.0-usb-0:1:1.1-event-joystick
E: DEVLINKS=/dev/input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-joystick /dev/input/by-path/pci-0000:00:16.0-usb-0:1:1.1-event-joystick
E: DEVNAME=/dev/input/event3
E: DEVPATH=/devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/0003:045E:0750.0002/input/input3/event3
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=0
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=Wired_Keyboard_600
E: ID_MODEL_ENC=Wired\x20Keyboard\x20600
E: ID_MODEL_ID=0750
E: ID_PATH=pci-0000:00:16.0-usb-0:1:1.1
E: ID_PATH_TAG=pci-0000_00_16_0-usb-0_1_1_1
E: ID_REVISION=0110
E: ID_SERIAL=Microsoft_Wired_Keyboard_600
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=01
E: ID_VENDOR=Microsoft
E: ID_VENDOR_ENC=Microsoft
E: ID_VENDOR_ID=045e
E: MAJOR=13
E: MINOR=67
E: SUBSYSTEM=input
E: TAGS=:udev-acl:
E: USEC_INITIALIZED=97160

60-persistent-input.rules

ENV{ID_INPUT_JOYSTICK}=="?*", ENV{.INPUT_CLASS}="joystick"

So basically any value of ID_INPUT_JOYSTICK is recognized as a joystick.
Since for my keyboard the value 0 is reported it is now a joystick too.


Reproducible: Always

Actual Results:  
My keyboard is reported as joystick.

Expected Results:  
My keyboard is not reported as joystick.
Comment 1 farmboy0 2014-08-16 13:12:53 UTC
Looks like the ID_INPUT_JOYSTICK=0 is something i did with a custom udev rule to test something.
When this rule is removed ID_INPUT_JOYSTICK=1 is reported with the udevadm query.

I am still not sure why this event interface is reported as joystick.

Here is the info from lsusb -s 7:2 -v

Bus 007 Device 002: ID 045e:0750 Microsoft Corp. Wired Keyboard 600
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x045e Microsoft Corp.
  idProduct          0x0750 Wired Keyboard 600
  bcdDevice            1.10
  iManufacturer           1 Microsoft
  iProduct                2 Wired Keyboard 600
  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.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      65
         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
    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.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     106
         Report Descriptors: 
           ** UNAVAILABLE **
      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)
Comment 2 Samuli Suominen (RETIRED) gentoo-dev 2014-08-21 03:46:26 UTC
Is this same with =sys-fs/udev-216?

Can you explain are you experiencing some problems because it's identified as joystick, or is this "pure cosmetics"?
Comment 3 Mike Gilbert gentoo-dev 2014-08-21 04:16:59 UTC
https://bugzilla.kernel.org/show_bug.cgi?id=37982

Seems like a kernel issue?
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2014-08-21 04:25:24 UTC
looks like it, yes, reassigning
Comment 5 farmboy0 2014-08-23 18:05:56 UTC
As far as I can remember my keyboard always had 2 event interfaces attached.
But the second one didnt act like a joystick before.

This has some implications for instance like this:
http://steamcommunity.com/app/224760/discussions/0/558752450279895493/

I dont know when exactly this behaviour started as I just noticed it.
I will try with some older udev versions to find out when it started.

Booting an old kernel shows the same behaviour.
I am mostly using vanilla or git-sources.
Comment 6 farmboy0 2014-08-28 20:25:00 UTC
This is not a kernel bug.

Using the same kernel (3.16.0)
I have switched to older stable sys-fs/udev versions.

The bug happens with sys-fs/udev-212
but not with sys-fs/udev-208.

Havent tried any other versions for now.

sys-fs/udev-208 reports:

P: /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/0003:045E:0750.0002/input/input3/event3
N: input/event3
S: input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-kbd
S: input/by-path/pci-0000:00:16.0-usb-0:1:1.1-event-kbd
E: DEVLINKS=/dev/input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-kbd /dev/input/by-path/pci-0000:00:16.0-usb-0:1:1.1-event-kbd
E: DEVNAME=/dev/input/event3
E: DEVPATH=/devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.1/0003:045E:0750.0002/input/input3/event3
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=Wired_Keyboard_600
E: ID_MODEL_ENC=Wired\x20Keyboard\x20600
E: ID_MODEL_ID=0750
E: ID_PATH=pci-0000:00:16.0-usb-0:1:1.1
E: ID_PATH_TAG=pci-0000_00_16_0-usb-0_1_1_1
E: ID_REVISION=0110
E: ID_SERIAL=Microsoft_Wired_Keyboard_600
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=01
E: ID_VENDOR=Microsoft
E: ID_VENDOR_ENC=Microsoft
E: ID_VENDOR_ID=045e
E: MAJOR=13
E: MINOR=67
E: SUBSYSTEM=input
E: USEC_INITIALIZED=84084
Comment 7 farmboy0 2014-08-28 20:32:46 UTC
Happens with sys-fs/udev-216 as well.
Comment 8 Mike Pagano gentoo-dev 2014-10-14 17:42:28 UTC
udev maintainers, maybe this is yours as it looks like a regression between versions as per comment #6 ?

Keeping kernel on CC.
Comment 9 Mike Gilbert gentoo-dev 2019-11-30 19:52:55 UTC
If the problem still occurs with modern kernels/udev, please report it upstream.