Summary: | ThinkPad HDAPS accelerometer gets recognized as MOUSE and makes Xorg unusable | ||
---|---|---|---|
Product: | xorg | Reporter: | Matze Grünbaum <python> |
Component: | Input/evdev | Assignee: | Peter Hutterer <peter.hutterer> |
Status: | RESOLVED WONTFIX | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | critical | ||
Priority: | high | ||
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Matze Grünbaum
2009-06-23 11:31:11 UTC
please run evtest against the device and attach the output here. http://people.freedesktop.org/~whot/evtest.c you can stop the evdev driver being loaded for this device by creating an appropriate fdi file in /etc/hal/fdi/policy: <?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="input.product" contains="Random String"> <remove key="input.x11_driver"></remove> </match> </device> </deviceinfo> then restart hal, restart X and you're good to go. see also http://fedoraproject.org/wiki/Input_device_configuration evtest output: ### Input driver version is 1.0.0 Input device ID: bus 0x19 vendor 0x1014 product 0x5054 version 0x4801 Input device name: "ThinkPad HDAPS accelerometer data" Supported events: Event type 0 (Sync) Event type 3 (Absolute) Event code 0 (X) Value 505 Min -32768 Max 32767 Event code 1 (Y) Value 481 Min -32768 Max 32767 Grab succeeded, ungrabbing. Testing ... (interrupt to exit) Event: time 1245850886.889297, type 3 (Absolute), code 0 (X), value 505 Event: time 1245850886.889305, -------------- Report Sync ------------ Event: time 1245850886.909296, type 3 (Absolute), code 0 (X), value 504 Event: time 1245850886.909299, type 3 (Absolute), code 1 (Y), value 480 Event: time 1245850886.909301, -------------- Report Sync ------------ Event: time 1245850886.969305, type 3 (Absolute), code 1 (Y), value 481 Event: time 1245850886.969313, -------------- Report Sync ------------ Event: time 1245850886.989304, type 3 (Absolute), code 0 (X), value 503 Event: time 1245850886.989311, -------------- Report Sync ------------ Event: time 1245850887.009322, type 3 (Absolute), code 0 (X), value 505 Event: time 1245850887.009329, -------------- Report Sync ------------ Event: time 1245850887.029308, type 3 (Absolute), code 1 (Y), value 482 Event: time 1245850887.029315, -------------- Report Sync ------------ Event: time 1245850887.049324, type 3 (Absolute), code 0 (X), value 504 Event: time 1245850887.049330, type 3 (Absolute), code 1 (Y), value 481 Event: time 1245850887.049333, -------------- Report Sync ------------ Event: time 1245850887.069309, type 3 (Absolute), code 0 (X), value 505 Event: time 1245850887.069315, type 3 (Absolute), code 1 (Y), value 480 Event: time 1245850887.069317, -------------- Report Sync ------------ Event: time 1245850887.089305, type 3 (Absolute), code 0 (X), value 504 Event: time 1245850887.089311, type 3 (Absolute), code 1 (Y), value 482 Event: time 1245850887.089314, -------------- Report Sync ------------ Event: time 1245850887.109311, type 3 (Absolute), code 1 (Y), value 481 Event: time 1245850887.109317, -------------- Report Sync ------------ Event: time 1245850887.129308, type 3 (Absolute), code 0 (X), value 505 Event: time 1245850887.129315, -------------- Report Sync ------------ Event: time 1245850887.149324, type 3 (Absolute), code 0 (X), value 504 Event: time 1245850887.149332, -------------- Report Sync ------------ [snip] ### right, so it actually outputs the data as x/y absolute axes. the problem is that X doesn't have a way of knowing that that's a bogus device, so you will need to keep this as a blacklist (as described above). sorry. I'm closing the bug as WONTFIX. Since the device looks like any pointing device to X it cannot decide to ignore it. The configuration for that needs to be in the surrounding bits (currently HAL). Sorry. Looks like current HAL bits classify devices with absolute axes into four groups depending on what kinds of other inputs they have: BTN_STYLUS -> input.tablet BTN_TOUCH -> input.touchpad BTN_TRIGGER | BTN_A | BTN_1 -> input.joystick BTN_MOUSE -> input.mouse ABS_PRESSURE -> input.touchpad So, if the accelerometer doesn't have any buttons or a pressure sensor, it shouldn't get picked up by the X server anymore. You can check in /sys/class/input/<device>/capabilities to check what hal should be doing with your device. |
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.