Synaptics Touchpad Treiber
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 "TabButton1" "1" 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 "TabButton1" "1" 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