Bug 24441 - Log Spam "[Xi] Too many valuators reported for device..."
Summary: Log Spam "[Xi] Too many valuators reported for device..."
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Peter Hutterer
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-10-10 07:07 UTC by Alan Swanson
Modified: 2013-01-11 05:36 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log (129.12 KB, text/plain)
2009-10-10 07:07 UTC, Alan Swanson
no flags Details

Description Alan Swanson 2009-10-10 07:07:25 UTC
Created attachment 30249 [details]
Xorg.0.log

In xorg-server 1.7, with hal defining joysticks with the key input.x11_driver by default, I was getting the following line repeatedly spamming the log file every few seconds. This should be a once only warning in the Xi/exevents.c file.

[Xi] Too many valuators reported for device 'Virtual core pointer'. Ignoring event.
Comment 1 Peter Hutterer 2009-10-11 20:54:36 UTC
Please download http://people.freedesktop.org/~whot/evtest.c, compile it
with gcc -o evtest evtest.c and then run it as root against the device file.
The device file is /dev/input/eventX, where X is a number. You can get the
right device file by looking into /proc/bus/input/devices. 

Then attach the output of evtest here.
Comment 2 Alan Swanson 2009-10-12 10:28:21 UTC
Evtest output for my two joysticks (which had hal policy added to remove "input.x11_driver" key to stop messages).

$ evtest /dev/input/event5 
Input driver version is 1.0.0
Input device ID: bus 0x14 vendor 0x1 product 0x103f version 0x100
Input device name: "Analog 4-axis 10-button 1-hat CHF joystick"
Supported events:
  Event type 0 (Sync)
    Event code 0 (Sync)
    Event code 1 (Key)
    Event code 3 (Absolute)
  Event type 1 (Key)
    Event code 288 (Trigger)
    Event code 289 (ThumbBtn)
    Event code 291 (TopBtn)
    Event code 292 (TopBtn2)
    Event code 294 (BaseBtn)
    Event code 295 (BaseBtn2)
    Event code 296 (BaseBtn3)
    Event code 297 (BaseBtn4)
    Event code 298 (BaseBtn5)
    Event code 299 (BaseBtn6)
  Event type 3 (Absolute)
    Event code 0 (X)
      Value   1278
      Min      159
      Max     2397
      Fuzz      31
      Flat     159
    Event code 1 (Y)
      Value   1344
      Min      168
      Max     2520
      Fuzz      31
      Flat     168
    Event code 6 (Throttle)
      Value    274
      Min       34
      Max     2588
      Fuzz      31
      Flat      34
    Event code 7 (Rudder)
      Value   1692
      Min      211
      Max     2411
      Fuzz      31
      Flat     211
    Event code 16 (Hat0X)
      Value      0
      Min       -1
      Max        1
    Event code 17 (Hat0Y)
      Value      0
      Min       -1
      Max        1
Testing ... (interrupt to exit)

$ evtest /dev/input/event6
Input driver version is 1.0.0
Input device ID: bus 0x3 vendor 0x6a3 product 0xff0c version 0x110
Input device name: "Saitek PLC Cyborg Force Rumble Pad"
Supported events:
  Event type 0 (Sync)
    Event code 0 (Sync)
    Event code 1 (Key)
    Event code 3 (Absolute)
    Event code 4 (?)
  Event type 1 (Key)
    Event code 288 (Trigger)
    Event code 289 (ThumbBtn)
    Event code 290 (ThumbBtn2)
    Event code 291 (TopBtn)
    Event code 292 (TopBtn2)
    Event code 293 (PinkieBtn)
    Event code 294 (BaseBtn)
    Event code 295 (BaseBtn2)
    Event code 296 (BaseBtn3)
    Event code 297 (BaseBtn4)
    Event code 298 (BaseBtn5)
    Event code 299 (BaseBtn6)
  Event type 3 (Absolute)
    Event code 0 (X)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 1 (Y)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 6 (Throttle)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 7 (Rudder)
      Value      0
      Min        0
      Max      255
      Flat      15
    Event code 16 (Hat0X)
      Value      0
      Min       -1
      Max        1
    Event code 17 (Hat0Y)
      Value      0
      Min       -1
      Max        1
  Event type 4 (?)
    Event code 4 (?)
Testing ... (interrupt to exit)
Comment 3 Peter Hutterer 2009-10-12 20:32:41 UTC
there's multiple causes for this bug:
- evdev doesn't handle joystick buttons, so the device is initialised with valuators only, no buttons.
- as a result of the above, the device is attached to the core keyboard, not the core pointer (IsPointerDevice() has a wrong check here).
- as a result, if the valuators are posted by the device, they are posted through the VCK, not the VCP. Most of the server handles posting keys through the VCP well but not valuators through the VCK, some checks are missing here.

The simple one-line fix is this: http://lists.freedesktop.org/archives/xorg-devel/2009-October/002740.html
this causes the device to attach correctly, thus avoiding the problem

Long-term the server should of course handle this case correctly, and possibly even a fix in evdev to handle these. Meanwhile, it's probably better to hook the joystick driver up to this device anyway.
Comment 4 Peter Hutterer 2009-10-13 16:54:16 UTC
(In reply to comment #3)
> - as a result of the above, the device is attached to the core keyboard, not
> the core pointer (IsPointerDevice() has a wrong check here).

Fixed with 72f5874434c0c015b671c492c1318f35f1793668. This commit doesn't address the underlying issue but it prevents it from occuring.
Comment 5 Peter Hutterer 2009-10-14 23:42:22 UTC
moving this off the blocker list. should be fixed eventually, but we've worked around now for this device.
Comment 6 Peter Hutterer 2013-01-11 05:36:20 UTC
Claiming this is closed since I haven't seen this in a while. Please reopen if it's still here


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.