3

I'm running Archlinux and I have a weird problem my "Microsoft Wired Keyboard 600" gets picked up as a Joystick and a Keyboard for some reason.

Note: Output trimmed
─$ xinput list
  Virtual core pointer                id=2[master pointer  (3)]
    ↳ Microsoft Wired Keyboard 600    id=9[slave  pointer  (2)]
  Virtual core keyboard               id=3[master keyboard (2)]
    ↳ Microsoft Wired Keyboard 600    id=8[slave  keyboard (3)]

The problem is I have an Xbox360 Controller that I use to play games with and this other "Joystick" is messing things up.

I have a workaround but it's manual and annoying i use this.

sudo chmod 0000 /dev/input/event1 /dev/input/js0
sudo setfacl -b /dev/input/event1 /dev/input/js0

Now I know I can set udev rules to do things to devices when plugged in and out ect... and I have tried to get it working but I'm just at a loss.

I'd like to have the Joystick part of this keyboard not even show up in /dev/input but still have the keyboard bit work.

The following is some udevadm output for this keyboard if someone could help me out I'd appreciate it very much.

The actual keyboard

─$ udevadm info --query=all --name=/dev/input/event0                                                                            1 ↵
P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/0003:045E:0750.0007/input/input23/event0
N: input/event0
S: input/by-id/usb-Microsoft_Wired_Keyboard_600-event-kbd
S: input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-kbd
E: DEVLINKS=/dev/input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-kbd /dev/input/by-id/usb-Microsoft_Wired_Keyboard_600-event-kbd
E: DEVNAME=/dev/input/event0
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/0003:045E:0750.0007/input/input23/event0
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:1a.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_1_0
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=00
E: ID_VENDOR=Microsoft
E: ID_VENDOR_ENC=Microsoft
E: ID_VENDOR_ID=045e
E: LIBINPUT_DEVICE_GROUP=3/45e/750/111:usb-0000:00:1a.0-1
E: MAJOR=13
E: MINOR=64
E: SUBSYSTEM=input
E: USEC_INITIALIZED=4429367119

The funny ghost Joystick

─$ udevadm info --query=all --name=/dev/input/event1
P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.1/0003:045E:0750.0008/input/input24/event1
N: input/event1
S: input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-joystick
S: input/by-path/pci-0000:00:1a.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:1a.0-usb-0:1:1.1-event-joystick
E: DEVNAME=/dev/input/event1
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.1/0003:045E:0750.0008/input/input24/event1
E: ID_BUS=usb
E: ID_FOR_SEAT=input-pci-0000_00_1a_0-usb-0_1_1_1
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=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:1a.0-usb-0:1:1.1
E: ID_PATH_TAG=pci-0000_00_1a_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: LIBINPUT_DEVICE_GROUP=3/45e/750/111:usb-0000:00:1a.0-1
E: MAJOR=13
E: MINOR=65
E: SUBSYSTEM=input
E: TAGS=:seat:uaccess:
E: USEC_INITIALIZED=4429367514
DeMeNteD
  • 131
  • 2
  • Do you have `xpad` installed or anything like it? Can you verify that other keyboards don't also turn up as joysticks? – mikeserv Aug 02 '15 at 08:52
  • Ok I have xpad installed. I'll go check the keyboard thing but my only other keyboard is a wireless and works via a Logitech dongle – DeMeNteD Aug 02 '15 at 09:24
  • Yeah, so it's probably xpad. It does a thing where it emulates keyboard input with a joystick and vice-versa - you can use the keyboard/gamepad to move the mouse pointer and other such stuff. I'm pretty sure your wireless logitech will do the same. Do `man xpad` and try to figure out how to make it work for you, or else `pacman -Rns xpad`. – mikeserv Aug 02 '15 at 09:30
  • My Logitech dongle only adds one keyboard and one mouse as expected – DeMeNteD Aug 02 '15 at 09:32
  • When you say xpad you mean the kernel module right? – DeMeNteD Aug 02 '15 at 09:34
  • hmmm... maybe that's because it has a mouse? or maybe I'm just wrong, but it can't hurt to read the docs, man. – mikeserv Aug 02 '15 at 09:34
  • no. I don't even mean xpad at all - I guess I meant *xboxdrv*. Good catch. – mikeserv Aug 02 '15 at 09:36
  • I don't have xboxdrv installed i find it hard to use and all it really adds is no blinking light on the controller – DeMeNteD Aug 02 '15 at 09:39
  • Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/26509/discussion-between-demented-and-mikeserv). – DeMeNteD Aug 02 '15 at 09:43

0 Answers0