You are not logged in.

#1 2009-01-17 13:38:11

snack
Member
From: Italy
Registered: 2009-01-13
Posts: 672

Synaptics and hal

I tried to configure the touchpad on my laptop (Sony Vaio VGN-SR21M) using synaptics. The procedure described in the wiki with hotplugging disabled works: I simply pasted the Section "InputDevice" example configuration in xorg.conf, modified the Section "ServerLayout" and Section "Module" as described and it worked smoothly. But when I tried to apply the configuration for hotplugging using hal it didn't work. This is my /etc/hal/fdi/policy/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>
        <merge key="input.x11_options.Device" type="string">/dev/input/psaux</merge>
        <merge key="input.x11_options.LeftEdge" type="string">120</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.FingerLow" type="string">25</merge>
        <merge key="input.x11_options.FingerHigh" type="string">30</merge>
        <merge key="input.x11_options.MaxTapTime" type="string">180</merge>
        <merge key="input.x11_options.MaxTapMove" type="string">220</merge>
        <merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
        <merge key="input.x11_options.MinSpeed" type="string">0.10</merge>
        <merge key="input.x11_options.MaxSpeed" type="string">0.70</merge>
        <merge key="input.x11_options.AccelFactor" type="string">0.00150</merge>
        <merge key="input.x11_options.SHMConfig" type="string">on</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
        <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>
      </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>

and here's the relevant piece of xorg.conf:

#Section "InputDevice"
#    Identifier  "Mouse0"
#    Driver      "mouse"
#    Option        "Protocol" "auto"
#    Option        "Device" "/dev/input/mice"
#    Option        "ZAxisMapping" "4 5 6 7"
#EndSection

Section "ServerLayout"

    #InputDevice    "Mouse0" "CorePointer"
    Identifier     "X.org Configured"
    Screen      0  "aticonfig-Screen[0]-0" 0 0
    Screen         "aticonfig-Screen[0]-1" RightOf "aticonfig-Screen[0]-0"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/misc"
    FontPath     "/usr/share/fonts/100dpi:unscaled"
    FontPath     "/usr/share/fonts/75dpi:unscaled"
    FontPath     "/usr/share/fonts/TTF"
    FontPath     "/usr/share/fonts/Type1"
EndSection

Section "Module"
    Load  "dbe"
    Load  "extmod"
    Load  "xtrap"
    Load  "glx"
    Load  "dri"
    Load  "freetype"
    Load  "synaptics"
EndSection

Section "ServerFlags"
    Option        "AutoAddDevices" "False"
    Option        "Xinerama" "on"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
    Option        "XkbLayout" "it"
    Option        "XkbVariant" ""
EndSection

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
    Identifier   "aticonfig-Monitor[0]-0"
    Option        "VendorName" "ATI Proprietary Driver"
    Option        "ModelName" "Generic Autodetecting Monitor"
    Option        "DPMS" "true"
EndSection

Section "Monitor"
    Identifier   "aticonfig-Monitor[0]-1"
    Option        "VendorName" "ATI Proprietary Driver"
    Option        "ModelName" "Generic Autodetecting Monitor"
    Option        "DPMS" "true"
EndSection

Section "Device"
    Identifier  "Card0"
    Driver      "radeon"
    VendorName  "ATI Technologies Inc"
    BoardName   "Mobility Radeon HD 3400 Series"
    BusID       "PCI:1:0:0"
EndSection

Section "Device"
    Identifier  "aticonfig-Device[0]-0"
    Driver      "fglrx"
    Option        "PairModes" ""
    Option        "DesktopSetup" "clone"
    BusID       "PCI:1:0:0"
EndSection

Section "Device"
    Identifier  "aticonfig-Device[0]-1"
    Driver      "fglrx"
    BusID       "PCI:1:0:0"
    Screen      1
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[0]-0"
    Device     "aticonfig-Device[0]-0"
    Monitor    "aticonfig-Monitor[0]-0"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[0]-1"
    Device     "aticonfig-Device[0]-1"
    Monitor    "aticonfig-Monitor[0]-1"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Any hint? Thank you very much

Offline

#2 2009-01-17 14:37:27

u_no_hu
Member
Registered: 2008-06-15
Posts: 453

Re: Synaptics and hal

<?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>
        <!-- Arbitrary options can be passed to the driver using
             the input.x11_options property since xorg-server-1.5. -->
        <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.FingerLow" type="string">25</merge>
        <merge key="input.x11_options.FingerHigh" type="string">30</merge>
        <merge key="input.x11_options.MaxTapTime" type="string">180</merge>
        <merge key="input.x11_options.MaxTapMove" type="string">220</merge>
        <merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
        <merge key="input.x11_options.MinSpeed" type="string">0.20</merge>
        <merge key="input.x11_options.MaxSpeed" type="string">0.50</merge>
        <merge key="input.x11_options.AccelFactor" type="string">0.0050</merge>
        <merge key="input.x11_options.SHMConfig" type="string">on</merge>
        <merge key="input.x11_options.VertEdgeScroll" type="string">on</merge>
        <merge key="input.x11_options.HorizEdgeScroll" type="string">on</merge>
        <merge key="input.x11_options." type="string">on</merge>
        <merge key="input.x11_options." type="string">on</merge>
        <merge key="input.x11_options." type="string">on</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.CircularScrolling" type="string">on</merge>
        <merge key="input.x11_options.CircScrollTrigger" type="string">3</merge>
    </match>
  </device>
</deviceinfo>

This one works for me.... You may have to change left edge, right edge etc .... use synclient to get those values


Don't be a HELP VAMPIRE. Please search before you ask.

Subscribe to The Arch Daily News.

Offline

#3 2009-01-17 20:00:06

snack
Member
From: Italy
Registered: 2009-01-13
Posts: 672

Re: Synaptics and hal

When I try to launc synclient, eg. synclient -h, I obtain a message like 'Can't access shared memory area. SHMConfig disabled?'. Maybe I have to start this SHMConfig service? Even if this is the case, how can  I do it?

Last edited by snack (2009-01-17 20:00:31)

Offline

#4 2009-01-18 00:48:44

Wittfella
Member
From: Australia
Registered: 2008-05-27
Posts: 462

Re: Synaptics and hal

Check the output of 'lshal', it is probably loading the evdev driver instead of the synaptics driver.  If it is loading evdev it means its not matching the first line in the fdi:

<match key="info.capabilities" contains="input.touchpad">

You should be able to find the corect input from the lshal output.  For example you might need to change to:

<match key="info.capabilities" contains="input.mouse">

Offline

#5 2009-01-18 10:31:14

snack
Member
From: Italy
Registered: 2009-01-13
Posts: 672

Re: Synaptics and hal

This is the touchpad section of lshal:

udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX1_port_logicaldev_input'
  info.capabilities = {'input', 'input.touchpad'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX1_port'  (string)
  info.product = 'SynPS/2 Synaptics TouchPad'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX1_port_logicaldev_input'  (string)
  input.device = '/dev/input/event8'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX1_port'  (string)
  input.product = 'SynPS/2 Synaptics TouchPad'  (string)
  input.x11_driver = 'synaptics'  (string)
  input.x11_options.AccelFactor = '0.00150'  (string)
  input.x11_options.BottomEdge = '4200'  (string)
  input.x11_options.Device = '/dev/input/psaux'  (string)
  input.x11_options.FingerHigh = '30'  (string)
  input.x11_options.FingerLow = '25'  (string)
  input.x11_options.HorizEdgeScroll = '1'  (string)
  input.x11_options.HorizTwoFingerScroll = '1'  (string)
  input.x11_options.LeftEdge = '1700'  (string)
  input.x11_options.MaxSpeed = '0.70'  (string)
  input.x11_options.MaxTapMove = '220'  (string)
  input.x11_options.MaxTapTime = '180'  (string)
  input.x11_options.MinSpeed = '0.10'  (string)
  input.x11_options.RightEdge = '5300'  (string)
  input.x11_options.SHMConfig = 'on'  (string)
  input.x11_options.TapButton1 = '1'  (string)
  input.x11_options.TapButton2 = '2'  (string)
  input.x11_options.TapButton3 = '3'  (string)
  input.x11_options.TopEdge = '1700'  (string)
  input.x11_options.VertEdgeScroll = '1'  (string)
  input.x11_options.VertScrollDelta = '100'  (string)
  input.x11_options.VertTwoFingerScroll = '1'  (string)
  linux.device_file = '/dev/input/event8'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/class/input/input8/event8'  (string)

It seems that the options are correctly loaded, right? So maybe it's only matter of  finding the right settings?

Edit: weird enough, synclient says that "Can't access shared memory area. SHMConfig disabled?" even if SHMConfig = 'on'.

Last edited by snack (2009-01-18 11:40:03)

Offline

#6 2009-01-20 22:51:10

dejavu
Member
Registered: 2008-05-26
Posts: 103

Re: Synaptics and hal

hey,

last week i bought exactly the same laptop and had also problems with
synaptics and hal.

thats my solution:

xorg.conf

Section "Device"
        Identifier  "Card0"
        Driver      "fglrx"
        VendorName  "ATI Technologies Inc"
        BoardName   "Radeon Mobility HD 3470"
        BusID       "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Section "DRI"
        Mode 0666
EndSection

Section "Extensions"
    Option      "Composite" "True"
EndSection

11-x11-synaptics.fdi:

<?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>
      <merge key="input.x11_options.AlwaysCore" type="string">true</merge>
      <merge key="input.x11_options.VertEdgeScroll" type="string">true</merge>
      <merge key="input.x11_options.HorizEdgeScroll" type="string">true</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>
    </match>
  </device>
</deviceinfo>

quite vanilla, but now you can extend it with additionally values. ;-)

best wishes

Offline

#7 2009-01-21 15:01:16

snack
Member
From: Italy
Registered: 2009-01-13
Posts: 672

Re: Synaptics and hal

Thank you, I found the problem: in the "ServerFlags" section there was a line Option "AutoAddDevices" "False", which prevented hal to correctly load the touchpad settings (I suppose...:|). Commenting out that line made everything OK.

BUT...

Now in my dual monitor configuration (laptop lcd + external monitor) the primary display is the external one, no matter how I modify xorg.conf. I suspect that hal, once the AutoAddDevices option was turned on, sets the primary display on its own, regardless of any setting in xorg.conf.
Can anyone confirm my suspects or tell me what's going on? And if it's really a hal issue, how can I configure it so that I can choose my primary screen?

Edit: I found a workaround. I configured the touchpad in xorg.conf and left the AutoAddDevice set to false (not a smart workaround but this works...:rolleyes:)

Last edited by snack (2009-01-23 10:22:49)

Offline

Board footer

Powered by FluxBB