GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué controlador maneja mi panel táctil?

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'
...

Linux
  1. Aprenda el manejo de errores de Bash con el ejemplo

  2. Qué terminal es mejor:Bash vs Zsh

  3. ¿Qué shell estoy usando?

  4. ¿Qué proceso tiene Pid 0?

  5. Ubuntu:¿cómo saber qué sistema de controlador X11 está usando?

Cómo instalar un controlador de dispositivo en Linux

Linux qué comando

Manejo de errores en scripts Bash

¿En qué shell me estoy ejecutando?

¿Qué Bash se está ejecutando?

cual python vs PYTHONPATH