Synaptics Touchpad Treiber

Aus wiki.archlinux.de

Info

Der Synaptics TouchPad Treiber ist ein Treiber für Xorg/XFree86-4.x, der es ermöglicht, die speziellen Funktionen der in vielen Laptos verbauten Synaptics TouchPads unter X zu nutzen.
Ohne den Treiber arbeiten die TouchPads im sogenannten compatibility mode, d.h. sie emulieren eine standard Maus.


Kernel Module

Im Normalfall (ARCH standard-kernel) sollte das TouchPad beim booten erkannt und die benötigten Module geladen werden.
Diese Module werden benötigt:

  • psmouse (CONFIG_MOUSE_PS2)
  • evdev (CONFIG_INPUT_EVDEV)


Treiber installieren

Den Treiber mit pacman installieren

pacman -S synaptics


Device Namen herausfinden

Um den Device Namen (wird für die Konfiguration in xorg.conf benötigt) herauszufinden diesen Befehl ausführen:

cat /proc/bus/input/devices

Das gesuchte Device ist der erste Eintrag in der Handlers-Zeile des TouchPad Blocks (Name enthält Synaptics oder ALPS)
In meinem Fall ist es: mouse0

I: Bus=0011 Vendor=0002 Product=0007 Version=0000
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio4/input0
S: Sysfs=/class/input/input1
H: Handlers=mouse0 event1 
B: EV=b
B: KEY=6420 0 7000f 0 0 0 0 0 0 0 0
B: ABS=11000003


xorg.conf anpassen

Damit der Treiber funktioniert, müssen ein paar Einträge in der xorg.conf gemacht werden.

Section "Module"

In die Module Section kommt:

Load "synaptics"

Section "InputDevice"

Eine eigene InputDevice Section für das Touchpad erstellen.

  • hier wird das zuvor ermittelte device benötigt. --> Option "Device" "/dev/input/mouse0"

Alps Touchpads brauchen eine etwas andere Konfiguration als Synaptics (weiter unten)

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      "HorizScrollDelta" "100"
        Option      "VertScrollDelta" "100"
        Option      "MinSpeed" "0.06"
        Option      "MaxSpeed" "0.12"
        Option      "AccelFactor" "0.0010"
        Option      "SHMConfig" "on"
EndSection

Alps Konfiguration

Section "InputDevice"
        Identifier  "Touchpad"
        Driver "synaptics"        
        Option "Device" "/dev/input/mouse0"
        Option "SendCoreEvents" "true"
        Option "Protocol" "auto-dev"
        Option "LeftEdge" "130"
        Option "RightEdge" "840"
        Option "TopEdge" "130"
        Option "BottomEdge" "640"
        Option "FingerLow" "7"
        Option "FingerHigh" "8"
        Option "MaxTapTime" "180"
        Option "MaxTapMove" "110"
        Option "EmulateMidButtonTime" "75"
        Option "VertScrollDelta" "20"
        Option "HorizScrollDelta" "20"
        Option "MinSpeed" "0.60"
        Option "MaxSpeed" "1.10"
        Option "AccelFactor" "0.030"
        Option "EdgeMotionMinSpeed" "200"
        Option "EdgeMotionMaxSpeed" "200"
        Option "UpDownScrolling" "1"
        Option "CircularScrolling" "1"
        Option "CircScrollDelta" "0.1"
        Option "CircScrollTrigger" "2"
        Option "SHMConfig" "on"
        Option "Emulate3Buttons" "on"
EndSection

Section "ServerLayout"

In die ServerLayout Section kommt:

InputDevice "Touchpad" "CorePointer"


Sollten noch weitere Eingabegeräte (z.B. externe Maus) angeschlossen werden, ist zu beachten, dass immer nur ein InputDevice "CorePointer" sein darf. Alle anderen müssen dann auf "SendCoreEvents" gestellt werden.

Bei der aktuellen Xorg Version ist es normalerweise nicht mehr nötig für eine zusätzliche USB Maus eine extra Device Section anzulegen. Nur falls die USB Maus nicht automatisch erkannt wird.


Problembehandlung

Sollte der Xserver abstrüzen bzw. einfrieren (tritt bei mir z.B. mit dem radeon Treiber auf) kann man versuchen in der Device Section für die Grafikkarte DRI zu deaktivieren. Dann funktioniert allerdings die 3D-Beschleunigung nicht mehr.

Section "Device"
   ...
   Option "DRI" "false"
   ...
EndSection


Eine andere Möglichkeit ist nohz=off zu der kernel Zeile in der GRUB menu.lst hinzuzufügen. Das deaktiviert die tickless kernel Funktion. Die Kernel Zeile könnte dann z.B so aussehen:

kernel /vmlinuz26 root=/dev/sda1 ro nohz=off vga=790

Links