View previous topic :: View next topic |
Author |
Message |
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Mon Jul 27, 2009 3:35 am Post subject: Problem with Hal and Alps touchpad. [soooooolved] |
|
|
So I recently migrated to Xorg 1.5.3 based upon HAL and the xf86-input-synaptics. And since then my AlpsPS/2 GlidePoint touchpad functions as a mouse but not as a touchpad, no tap click, no scrolling, nada. My /etc/hal/fdi/10-x11-input.fdi file is appended below. A search through the Xorg file (some included below) shows that the synaptics driver is being loaded but that the device in question seems to be found but gets assigned the evdev driver. Perversely Hal is finding two devices one being run by synaptics and the other by evdev. So this seems to be a precedent problem. Is this a case of if one file matches higher levels don't get invoked?
10-x11-input.fdi
Code: |
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.mouse">
<match key="info.product" contains="AlpsPS/2 ALPS GlidePoint">
<merge key="input.x11_driver" type="string">synaptics</merge>
<merge key="input.x11_options.ZAxisMapping" type="integer">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">yes</merge>
<merge key="input.x11_options.LeftEdge" type="integer">120</merge>
<merge key="input.x11_options.RightEdge" type="integer">830</merge>
<merge key="input.x11_options.TopEdge" type="integer">120</merge>
<merge key="input.x11_options.BottomEdge" type="integer">650</merge>
<merge key="input.x11_options.FingerLow" type="integer">14</merge>
<merge key="input.x11_options.FingerHigh" type="integer">15</merge>
<merge key="input.x11_options.MaxTapTime" type="integer">180</merge>
<merge key="input.x11_options.MaxTapMove" type="integer">110</merge>
<merge key="input.x11_options.EmulateMidButtonTime" type="integer">75</merge>
<merge key="input.x11_options.VertScrollDelta" type="integer">20</merge>
<merge key="input.x11_options.HorizScrollDelta" type="integer">20</merge>
<merge key="input.x11_options.MaxSpeed" type="double">0.5</merge>
<merge key="input.x11_options.MinSpeed" type="double">0.2</merge>
<merge key="input.x11_options.AccelFactor" type="double">0.01</merge>
<merge key="input.x11_options.EdgeMotionMaxSpeed" type="integer">15</merge>
<merge key="input.x11_options.EdgeMotionMinSpeed" type="integer">15</merge>
<merge key="input.x11_options.UpDownScrolling" type="integer">15</merge>
<merge key="input.x11_options.PalmDetect" type="bool">True</merge>
<merge key="input.x11_options.PalmMinWidth" type="integer">9</merge>
<merge key="input.x11_options.TapButton1" type="integer">1</merge>
<merge key="input.x11_options.TapButton2" type="integer">2</merge>
<merge key="input.x11_options.TapButton3" type="integer">3</merge>
<merge key="input.x11_options.VertEdgeScroll" type="bool">true</merge>
<merge key="input.x11_options.VertTwoFingerScroll" type="bool">true</merge>
<merge key="input.x11_options.SHMConfig" type="string">on</merge>
</match>
<!-- FIXME: Support tablets too. -->
<match key="info.capabilities" contains="input.mouse">
<merge key="input.x11_driver" type="string">mouse</merge>
<!-- <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
string="Linux">
<merge key="input.x11_driver" type="string">evdev</merge> -->
</match>
</match>
<!-- <match key="info.capabilities" contains="input.touchpad">
<match key="info.product" contains="AlpsPS/2 ALPS">
<merge key="input.x11_driver" type="string">synaptics</merge>
<merge key="input.x11_options.SHMConfig" type="string">true</merge>
</match>
</match> -->
<!-- <match key="info.capabilities" contains="input.touchpad">
<merge key="input.x11_driver" type="string">mouse</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
string="Linux">
<merge key="input.x11_driver" type="string">evdev</merge>
</match>
</match>
-->
<match key="info.capabilities" contains="input.keys">
<!-- If we're using Linux, we use evdev by default (falling back to
keyboard otherwise). -->
<merge key="input.x11_driver" type="string">keyboard</merge>
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
string="Linux">
<merge key="input.x11_driver" type="string">evdev</merge>
</match>
</match>
</device>
</deviceinfo>
|
Xorg output.
Code: |
(II) config/hal: Adding input device AlpsPS/2 ALPS GlidePoint
(II) LoadModule: "synaptics"
(II) Loading /usr/lib64/xorg/modules/input//synaptics_drv.so
(II) Module synaptics: vendor="X.Org Foundation"
compiled for 1.5.3, module version = 1.0.0
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 2.1
(II) Synaptics touchpad driver version 1.0.0
(**) Option "Device" "/dev/input/event5"
(II) AlpsPS/2 ALPS GlidePoint: x-axis range 0 - 1023
(II) AlpsPS/2 ALPS GlidePoint: y-axis range 0 - 767
(II) AlpsPS/2 ALPS GlidePoint: pressure range 0 - 127
(II) AlpsPS/2 ALPS GlidePoint: finger width range 0 - 0
(II) AlpsPS/2 ALPS GlidePoint: buttons: left right middle
(--) AlpsPS/2 ALPS GlidePoint touchpad found
(**) AlpsPS/2 ALPS GlidePoint: always reports core events
(II) XINPUT: Adding extended input device "AlpsPS/2 ALPS GlidePoint" (type: TOUCHPAD)
(--) AlpsPS/2 ALPS GlidePoint touchpad found
(II) config/hal: Adding input device PS/2 Mouse
(II) LoadModule: "evdev"
|
Code: |
34: udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input_0'
linux.sysfs_path = '/sys/class/input/input5/event5' (string)
input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
info.subsystem = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
info.product = 'AlpsPS/2 ALPS GlidePoint' (string)
info.category = 'input' (string)
info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input_0' (string)
info.capabilities = { 'input', 'input.mouse', 'input.touchpad' } (string list)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
input.device = '/dev/input/event5' (string)
linux.device_file = '/dev/input/event5' (string)
input.product = 'AlpsPS/2 ALPS GlidePoint' (string)
input.x11_driver = 'synaptics' (string)
35: udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input'
linux.sysfs_path = '/sys/class/input/input4/event4' (string)
input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
info.subsystem = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
info.product = 'PS/2 Mouse' (string)
info.category = 'input' (string)
info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input' (string)
info.capabilities = { 'input', 'input.mouse' } (string list)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
input.device = '/dev/input/event4' (string)
linux.device_file = '/dev/input/event4' (string)
input.product = 'PS/2 Mouse' (string)
input.x11_driver = 'evdev' (string)
|
Suggestions? _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us.
Last edited by CrankyPenguin on Tue Aug 11, 2009 5:22 pm; edited 1 time in total |
|
Back to top |
|
|
DONAHUE Watchman
Joined: 09 Dec 2006 Posts: 7651 Location: Goose Creek SC
|
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Tue Jul 28, 2009 1:20 am Post subject: Saw those. |
|
|
Thanks Donahue, I saw those and followed the directions to get out of earlier problems. Unfortunately they didn't correct the present problem. _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Thu Jul 30, 2009 6:05 pm Post subject: Noone Huh. |
|
|
I guess I'm not the only one who isn't enjoying Hal. _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
gami Apprentice
Joined: 02 Jun 2006 Posts: 297
|
Posted: Fri Jul 31, 2009 7:45 am Post subject: |
|
|
Try if changing to in your fdi file makes a difference for you. I believe the xorg-server accepts only strings from HAL. |
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Mon Aug 03, 2009 5:45 pm Post subject: Sadly no. |
|
|
Gami, I tried the string change but it didn't work, thanks though.
The issue, it seems to me lies in these lines:
Quote: |
35: udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input_0'
linux.sysfs_path = '/sys/class/input/input5/event5' (string)
info.subsystem = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
input.device = '/dev/input/event5' (string)
info.product = 'AlpsPS/2 ALPS GlidePoint' (string)
input.x11_driver = 'synaptics' (string)
info.category = 'input' (string)
input.product = 'AlpsPS/2 ALPS GlidePoint' (string)
info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input_0' (string)
info.capabilities = { 'input', 'input.mouse', 'input.touchpad' } (string list)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
linux.device_file = '/dev/input/event5' (string)
input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
36: udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input'
linux.sysfs_path = '/sys/class/input/input4/event4' (string)
info.subsystem = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
input.device = '/dev/input/event4' (string)
info.product = 'PS/2 Mouse' (string)
input.x11_driver = 'evdev' (string)
info.category = 'input' (string)
input.product = 'PS/2 Mouse' (string)
info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input' (string)
info.capabilities = { 'input', 'input.mouse' } (string list)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
linux.device_file = '/dev/input/event4' (string)
input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port' (string)
|
Basically the same device is getting two input events and thus being read twice. From there HAL is assigning synaptics as a driver for one and evdev for the other. I suspect that the evdev messages are what is getting trapped first. Either I need to block hal from responding to input event 4 or find out why the same originating device gets two input nodes.
As a side point eliminating the evdev driver from the system would be problematic as I use an external mouse. [/quote] _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
CkoTuHa n00b
Joined: 27 Mar 2009 Posts: 74
|
Posted: Tue Aug 04, 2009 12:41 am Post subject: |
|
|
my touchpad works, however the more I know the more I hate lenovo...
Code: |
pussy policy # cat shmconfig.fdi
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="input.x11_driver" string="synaptics">
<merge key="input.x11_options.SHMConfig" type="string">true</merge>
<merge key="input.x11_options.TapButton1" type="string">1</merge>
</match>
</device>
</deviceinfo>
pussy policy # cat use-mouse-driver-thrackpoint.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<match key="input.product" string="TPPS/2 IBM TrackPoint">
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
<merge key="input.x11_driver" type="string">evdev</merge>
</match>
<match key="info.udi" string="/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input">
<merge key="input.xkb.model" type="string">thinkpad60</merge>
</match>
</deviceinfo>
pussy policy # cat 11-x11-synaptics.fdi
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<match key="info.product" contains="Synaptics TouchPad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<!-- Arbitrary options can be passed to the driver using
the input.x11_options property since xorg-server-1.5. -->
<!-- EXAMPLE:
<merge key="input.x11_options.LeftEdge" type="string">120</merge>
-->
<!-- Added by Fabio Varesano using setting from xorg.conf after X.org update to 1.5.x
Following the old xorg.conf settings
Section "InputDevice"
Identifier "Touchpad"
Driver "synaptics"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.06"
Option "MaxSpeed" "0.12"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
MinSpeed/MaxSpeed 0.43
EndSection
-->
<merge key="input.x11_options.VertEdgeScroll" type="string">1</merge>
<merge key="input.x11_options.HorizEdgeScroll" type="string">1</merge>
<!--<merge key="input.x11_options.TapButton1" type="string">1</merge>-->
<!--<merge key="input.x11_options.TapButton2" type="string">2</merge>-->
<!--<merge key="input.x11_options.TapButton3" type="string">3</merge>-->
<merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
<merge key="input.x11_options.EmulateTwoFingerMinZ" type="string">90</merge>
<merge key="input.x11_options.VertScrollDelta" type="string">300</merge>
<merge key="input.x11_options.HorizScrollDelta" type="string">300</merge>
<!--<merge key="input.x11_options.CircularScrolling" type="string">true</merge> -->
<merge key="input.x11_options.MinSpeed" type="string">0.35</merge>
<merge key="input.x11_options.MaxSpeed" type="string">0.55</merge>
<merge key="input.x11_options.LeftEdge" type="string">1700</merge>
<merge key="input.x11_options.RightEdge" type="string">5300</merge>
<merge key="input.x11_options.TopEdge" type="string">1700</merge>
<merge key="input.x11_options.BottomEdge" type="string">4200</merge>
<merge key="input.x11_options.AccelFactor" type="string">0.0050</merge>
</match>
<match key="info.product" contains="AlpsPS/2 ALPS">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="appletouch">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="bcm5974">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
</match>
</device>
</deviceinfo> |
I hate it because they don't allow two finger scroll. It is emulated by pressure rather it is sensed by the touchpad. The second reason, the touchpad being connected through PS/2 port eats a lot of cpu cycles - a lot of kernel interrupts, hence poor batterly life ~6 hours on a 9 cell. On win this figure would go to 7-8-9 hours
The mouse in USB generates a lot less interrupts.
I wish I had a mac hardware now with gentoo on it. My dream : mac 15 inch with 1920x1200 LED LCD + trackpoint + trackpad and gentoo which looks like mac. I mean fonts, ui and else...will probably never happen |
|
Back to top |
|
|
mikegpitt Advocate
Joined: 22 May 2004 Posts: 3224
|
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Fri Aug 07, 2009 6:02 pm Post subject: Not dimensions. |
|
|
Thanks Mikegpitt but I don't think it is a dimension problem as tap-click is also not working. _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Fri Aug 07, 2009 6:23 pm Post subject: Question. |
|
|
CkoTuHa, I'm playing around with the changes you suggested, or will do more later. In one of your files you have the line:
Quote: |
<match key="info.udi" string="/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input">
<merge key="input.xkb.model" type="string">thinkpad60</merge>
</match>
|
Do you, or does anyone, have two devices showing up on the same input like I do. As I noted above I have the logicaldev_input and logicaldev_input_0.
Thanks. _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
mikegpitt Advocate
Joined: 22 May 2004 Posts: 3224
|
Posted: Fri Aug 07, 2009 8:28 pm Post subject: |
|
|
I just noticed in your first post that your location for the fdi file might be wrong. It should go here:
Code: | /etc/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi |
This is my configuration. I don't have tap to click enabled, since I find it annoying, but you might find it helpful:
Code: | <?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<!-- Add vertical edge scrolling -->
<merge key="input.x11_options.SHMConfig" type="string">true</merge>
<merge key="input.x11_options.VertEdgeScroll" type="string">true</merge>
<!-- Options for ALPS touchpads -->
<match key="info.product" contains="ALPS">
<merge key="input.x11_options.Emulate3Buttons" type="string">yes</merge>
<merge key="input.x11_options.RightEdge" type="string">930</merge>
<merge key="input.x11_options.SpecialScrollAreaRight" type="string">false</merge>
</match>
</match>
</device>
</deviceinfo>
|
For tap to click you should only need a line like this:
Code: | <merge key="input.x11_options.MaxTapMove" type="string">2000</merge> |
Also remember to restart hal after making changes! |
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Mon Aug 10, 2009 4:56 pm Post subject: Solved (sorta). |
|
|
So thanks to your help I've manged to get things partially working. It turns out I had two 11-x11-synaptics.fdi files one under /usr and the other under /etc. Removing the one under /usrt and an odd .keep file that arose under /etc caused the system to load the correct one. Having done that I changed all the inputs to strings (thanks CkoTuHa!) and some of the features (tap click, etc) work. I still have not yet gotten scrolling to work however. When I get a chance Mikegpitt I'll try your suggested changes. _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
CrankyPenguin Apprentice
Joined: 19 Jun 2003 Posts: 283
|
Posted: Tue Aug 11, 2009 5:14 pm Post subject: Success. |
|
|
So oddly enough a reboot (not a hal-restart) fixed things. Taking my original /etc/hal/fdi/policy/11-x11-synaptics.fdi, removing the duplicate, and converting all the values to strings worked for tap click and SMH config but not scrolling. This morning after a reboot I discovered that scrolling is now working, so it's all good. Thanks all. _________________ Linux, the OS for the obsessive-compulsive speed freak in all of us. |
|
Back to top |
|
|
|