Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Problem with Hal and Alps touchpad. [soooooolved]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Mon Jul 27, 2009 3:35 am    Post subject: Problem with Hal and Alps touchpad. [soooooolved] Reply with quote

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
View user's profile Send private message
DONAHUE
Watchman
Watchman


Joined: 09 Dec 2006
Posts: 7651
Location: Goose Creek SC

PostPosted: Mon Jul 27, 2009 6:36 pm    Post subject: Reply with quote

http://en.gentoo-wiki.com/wiki/Synaptics_Touchpad may help you. or http://en.gentoo-wiki.com/wiki/Synaptics_Touchpad/Xorg_7.3
Back to top
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Tue Jul 28, 2009 1:20 am    Post subject: Saw those. Reply with quote

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
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Thu Jul 30, 2009 6:05 pm    Post subject: Noone Huh. Reply with quote

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
View user's profile Send private message
gami
Apprentice
Apprentice


Joined: 02 Jun 2006
Posts: 297

PostPosted: Fri Jul 31, 2009 7:45 am    Post subject: Reply with quote

Try if changing
Code:
type="integer"
to
Code:
type="string"
in your fdi file makes a difference for you. I believe the xorg-server accepts only strings from HAL.
Back to top
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Mon Aug 03, 2009 5:45 pm    Post subject: Sadly no. Reply with quote

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
View user's profile Send private message
CkoTuHa
n00b
n00b


Joined: 27 Mar 2009
Posts: 74

PostPosted: Tue Aug 04, 2009 12:41 am    Post subject: Reply with quote

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
View user's profile Send private message
mikegpitt
Advocate
Advocate


Joined: 22 May 2004
Posts: 3224

PostPosted: Tue Aug 04, 2009 1:57 am    Post subject: Reply with quote

Not sure if you have already visited this thread, but take a look here:
https://forums.gentoo.org/viewtopic-t-756407-highlight-.html

Specifically this post:
https://forums.gentoo.org/viewtopic-p-5679638.html#5679638

You might be having an issue with the touchpad dimensions.
Back to top
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Fri Aug 07, 2009 6:02 pm    Post subject: Not dimensions. Reply with quote

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
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Fri Aug 07, 2009 6:23 pm    Post subject: Question. Reply with quote

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
View user's profile Send private message
mikegpitt
Advocate
Advocate


Joined: 22 May 2004
Posts: 3224

PostPosted: Fri Aug 07, 2009 8:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Mon Aug 10, 2009 4:56 pm    Post subject: Solved (sorta). Reply with quote

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
View user's profile Send private message
CrankyPenguin
Apprentice
Apprentice


Joined: 19 Jun 2003
Posts: 283

PostPosted: Tue Aug 11, 2009 5:14 pm    Post subject: Success. Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum