Es probable que ninguno de ellos lo esté haciendo. En mi sistema, por ejemplo, donde estoy usando Fedora 19 y un Thinkpad 410 con un panel táctil Synaptic, tampoco tengo un controlador Kernel.
$ lsmod|grep -iE "apple|cyapa|sermouse|synap|psmouse|vsxx|bcm"
Entonces, ¿de qué se ocupa este dispositivo? Bueno, en realidad es este módulo Kernel:
$ lsmod|grep -iE "input"
uinput 17672 0
Si desea ver más sobre este módulo, puede usar modinfo uinput
:
$ modinfo uinput
filename: /lib/modules/3.13.11-100.fc19.x86_64/kernel/drivers/input/misc/uinput.ko
version: 0.3
license: GPL
description: User level driver support for input subsystem
author: Aristeu Sergio Rozanski Filho
alias: devname:uinput
alias: char-major-10-223
...
Como resulta que los dispositivos de entrada como estos a menudo se tratan en un nivel superior, en este caso los controladores reales se implementan en el nivel X11.
uinput es un módulo del kernel de Linux que permite manejar el subsistema de entrada desde la tierra del usuario. Se puede usar para crear y manejar dispositivos de entrada desde una aplicación. Crea un dispositivo de caracteres en el directorio /dev/input. El dispositivo es una interfaz virtual, no pertenece a un dispositivo físico.
FUENTE: Primeros pasos con uinput:el subsistema de entrada de nivel de usuario
Entonces, ¿dónde están los controladores de mi panel táctil?
Están en el subsistema de X11. Puedes ver el dispositivo usando el xinput --list
dominio. Por ejemplo, estos son los dispositivos de mi portátil Thinkpad:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=9 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=14 [slave keyboard (3)]
Observe que mi TouchPad aparece en esta lista. Puede encontrar información adicional sobre estos dispositivos a través de /proc
, por ejemplo:
$ cat /proc/bus/input/devices
...
I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input5
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=9
B: EV=b
B: KEY=6420 30000 0 0 0 0
B: ABS=260800011000003
...
Está bien, pero ¿dónde está el conductor?
Profundizando más si su sistema está usando un panel táctil Synaptic (que creo que hacen ~90% de todos los paneles táctiles), puede hacer un locate synaptics | grep xorg
que debería revelar los siguientes archivos:
$ locate synaptics | grep xorg
/usr/lib64/xorg/modules/input/synaptics_drv.so
/usr/share/X11/xorg.conf.d/50-synaptics.conf
/usr/share/doc/xorg-x11-drv-synaptics-1.7.1
/usr/share/doc/xorg-x11-drv-synaptics-1.7.1/COPYING
/usr/share/doc/xorg-x11-drv-synaptics-1.7.1/README
Los primeros resultados son el controlador real sobre el que está preguntando. Se carga en X.org a través del segundo archivo aquí:
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
EndSection
Y esta línea:
MatchDevicePath "/dev/input/event*"
Es lo que asocia los dispositivos físicos con este controlador. Y probablemente te estés preguntando, ¿cómo puede este tipo estar tan seguro? El uso de este comando muestra el dispositivo asociado con mi Synaptic TouchPad dado usando id=12
del xinput --list
salida que mostré antes:
$ xinput --list-props 12 | grep "Device Node"
Device Node (251): "/dev/input/event4"
$ cat /var/log/Xorg.0.log | grep "input driver"
En mi computadora portátil se muestra:
...
[ 9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...