Linux 2.6 (II): el nuevo driver para los touchpad Synaptics


El driver para los touchpad Synaptics (los que traen las mayoría de portátiles) ha sido integrado desde las últimas versiones del 2.5. Sin el módulo indicado para el XFree (no incluido) el touchpad dejará de funcionar. En el artículo explico como instalar dicho módulo y las opciones en el XF86Config-4, además es posible configurarlo hasta para hacer scrolling modiendo el dedo en los bordes del pad.

El kernel
Cuando compiles el kernel, no te olvides de incluir las opciones necesarias en
Input device support, específicamente:


[*] Mouse interface
….
[*] Event interface

Te recomiendo que ambas estén incluidas en el kernel, no las selecciones como módulos. Cuando el Linux arranque verás que salen mensajes como el siguiente:

Synaptics touchpad, model: 1
Firware: 5.9
180 degree mounted touchpad
Sensor: 37
new absolute packet format
Touchpad has extended capability bits
-> multifinger detection
-> palm detection
input: Synaptics Synaptics Touchpad on isa0060/serio4

Eso quiere decir que el touchpad ha sido en encontrado e inicializado. Podemos ver el dispositivo con
cat /proc/bus/input/devices:

I: Bus=0011 Vendor=0002 Product=0007 Version=0000
N: Name=”Synaptics Synaptics touchpad”
P: Phys=isa0060/serio4/input0
H: Handlers=event0
B: EV=1b
B: KEY=670000 0 0 0 0 0 0 0 0
B: ABS=1000003
B: MSC=4

Lo más importante es lo que está en negrita, que indica cuál es el fichero del dispositivo, en este caso será /dev/input/event0. Por supuesto, dicho nodo debe existir. Si vuestro sistema no lo tiene, los podéis crear con el script MAKEDEV que suelen traer todas las distros. En Debian es:

source /dev/MAKEDEV input

Podéis verificar que funciona bien haciendo cat < /dev/input/event0. Debería aparecer basura en la pantalla cada vez que toquéis el touchpad.

El XFree
Con el nuevo gestor del touchpad se pueden configurar muchos parámetros, pero sin el módulos synaptics del X no funcionará. Lo primero que hay que hacer es bajarse el módulo para el XFree desde w1.894.telia.com/~u89404340/touchpad/(1).
Una vez descomprimido veréis que ya hay un driver compilado, synaptics_drv.o, sólo hay que copiarlo al directorio de módulos del X, en el caso de Debian es el /usr/X11R6/lib/modules/input/ (si no sabéis cuál es el directorio en vuestra distro, haced un locate mouse_drv.o y ya os daréis cuenta de cuál es).
Una vez instalado el driver, hay que configurarlo en el XF86Config. A continuación os muestro la configuración básica que tengo en mi portátil Dell:
Section “InputDevice”
Identifier “Touchpad”
Driver “synaptics”
Option “Protocol” “event”
Option “Device” “/dev/input/event0”
Option “Emulate3Buttons” “true”
Option “ZAxisMapping” “4 5”
Option “CorePointer” “1”
Option “SHMConfig” “on”
Option “HorizScrollDelta” “100”
Option “VertScrollDelta” “100”
EndSection

Las tres últimas líneas son parámetros especiales del touchpad, en particular “SHMConfig” es interesante porque os permite cambiar los parámetros con un comando, synclient, como veremos luego.
Ahora basta con re-arrancar el X y ya debería funcionar correctamente, en el /var/log/XFree86.0.log deberiáis ver lo siguiente:

(II) XINPUT: Adding extended input device “Touchpad” (type: MOUSE)
Synaptics DeviceInit called
SynapticsCtrl called.
Synaptics DeviceOn called
(II) xfree driver for the synaptics touchpad 0.11.3p6

Cambiar parámetros y synclient
El synclient está incluido en el fichero que os habéis bajado antes y os permite cambiar todos los parámetros del touchpad. synclient -l os dará una lista de los valores correspondientes, por ejemplo:

# ./synclient -l
Parameter settings:
LeftEdge = 1900
RightEdge = 5400
TopEdge = 3900
BottomEdge = 1800
FingerLow = 25
FingerHigh = 30
MaxTapTime = 180
MaxTapMove = 220
EmulateMidButtonTime = 75
VertScrollDelta = 100
HorizScrollDelta = 100
MinSpeed = 0.02
MaxSpeed = 0.18
AccelFactor = 0.0015
EdgeMotionSpeed = 40
UpDownScrolling = 1

Con el synclient podéis ajustar los valores hasta que funcione como os agrada (a mí me van bien los valores por defecto) y luego poner esas opciones en el XF86Config-4, como está mostrado antes:

Option “HorizScrollDelta” “100”
Option “VertScrollDelta” “100”

La explicación de los parámetros está indicada en el fichero PARAMETER, ellas son:

Device String Synaptics device
Protocol String “psaux” (raw, default) or “event” (linux 2.5
kernel events)
SHMConfig Bool switch on/off shared-memory for configuration
LeftEdge Int coordinates for left edge
RightEdge Int coordinates for right edge
TopEdge Int coordinates for top edge
BottomEdge Int coordinates for bottom edge
FingerLow Int min. finger pressure after ending with movement
FingerHigh Int max. finger pressure before beginning with movement
MaxTapTime Int max. time (in milliseconds) for detecting a tap
MaxTapMove Int max. movement of the finger for detecting a tap
VertScrollDelta Int move-distance of the finger for a scroll event
HorizScrollDelta Int move-distance of the finger for a scroll event
EdgeMotionSpeed Int edge motion speed when dragging
Repeater String repeater device
MinSpeed Float min. Speed-factor
MaxSpeed Float max. Speed-factor
AccelFactor Float acceleration-factor
UpDownScrolling Bool If on, the up/down buttons generate button 4/5 events.
If off, the up button generates a double click and
the down button generates a button 2 event.
EmulateMidButtonTime Int max time (in milliseconds) for middle button emulation.

Algunas de las propiedades que más me gustan son:

  • Arrastre con un tap y luego arrastrando el dedo.
  • Tap con dos dedos o en la esquina superior derecha: botón central.
  • Tap con tres dedos o en la esquina inferior derecha: botón de la derecha.
  • Arrastre del dedo en el borde derecho, scroll vertical.

Lista de enlaces de este artículo:

  • http://w1.894.telia.com/~u89404340/touchpad/
  • Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1823 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.