[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#620227: xorg is incorrectly detecting a joystick as a tablet



Package: xserver-xorg-core
Version: 2:1.7.7-13
Severity: normal

I am not sure if this is an issue with xorg itself or udev, so I am
submitting it against the package that the issue manifests within.

In the file:
/usr/share/X11/xorg.conf.d/10-evdev.conf
The following code is present:
Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

My Saitek "Saitek X52 Flight Control System" is apparently falling
into this catchall. The primary X/Y axis of the joystick takes over my
mouse, and the following is noted in my X log:
(II) config/udev: Adding input device Saitek Saitek X52 Flight Control
System (/dev/input/event6)
(**) Saitek Saitek X52 Flight Control System: Applying InputClass
"evdev tablet catchall"
(**) Saitek Saitek X52 Flight Control System: always reports core events
(**) Saitek Saitek X52 Flight Control System: Device: "/dev/input/event6"
(II) Saitek Saitek X52 Flight Control System: Found absolute axes
(II) Saitek Saitek X52 Flight Control System: Found x and y absolute axes
(II) Saitek Saitek X52 Flight Control System: Found absolute tablet.
(II) Saitek Saitek X52 Flight Control System: Configuring as tablet
(**) Saitek Saitek X52 Flight Control System: YAxisMapping: buttons 4 and 5
(**) Saitek Saitek X52 Flight Control System: EmulateWheelButton: 4,
EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device "Saitek Saitek X52 Flight
Control System" (type: TABLET)
(II) Saitek Saitek X52 Flight Control System: initialized for absolute axes.

This may be happening because the joystick has an eraser-style "mouse"
on the throttle component that 'should' function as a tablet mouse...
but rather than that component itself taking control, the main stick's
X/Y axis is used.

lsusb:
Bus 004 Device 003: ID 06a3:075c Saitek PLC X52 Flight Controller

udevadm:
root@epicenter:~# udevadm info --name=/dev/input/event6 --attribute-walk

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device
'/devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0/input/input6/event6':
    KERNEL=="event6"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device
'/devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0/input/input6':
    KERNELS=="input6"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="Saitek Saitek X52 Flight Control System"
    ATTRS{phys}=="usb-0000:00:12.1-3/input0"
    ATTRS{uniq}==""
    ATTRS{modalias}=="input:b0003v06A3p075Ce0111-e0,1,3,4,k120,121,122,123,124,125,126,127,128,129,12A,12B,12C,12D,12E,12F,130,131,132,133,134,135,136,137,138,139,13A,13B,13C,13D,13E,13F,140,141,ra0,1,2,3,4,5,6,10,11,28,29,m4,lsfw"

  looking at parent device '/devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0':
    KERNELS=="4-3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{bInterfaceSubClass}=="00"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{modalias}=="usb:v06A3p075Cd0000dc00dsc00dp00ic03isc00ip00"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:12.1/usb4/4-3':
    KERNELS=="4-3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="1066"
    ATTRS{idVendor}=="06a3"
    ATTRS{idProduct}=="075c"
    ATTRS{bcdDevice}=="0000"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="4"
    ATTRS{devnum}=="3"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Saitek"
    ATTRS{product}=="Saitek X52 Flight Control System"

 <snipped host controller / bus info>



Reply to: