web-dev-qa-db-fra.com

Quel pilote gère mon pavé tactile?

J'aimerais savoir comment déterminer quel pilote (en dehors de ceux ci-dessous) gère mon pavé tactile:

appleTouch.ko.gz, cyapa.ko.gz, sermouse.ko.gz, synapticique_usb.ko.gz, bcm5974.ko.gz, psmouse.ko.gz, synaptique_i2c.ko.gz, vsxxxaa.ko.gz

22
banuy

Il est probable qu'aucun d'entre eux ne le fasse. Sur mon système, par exemple, où j'utilise Fedora 19 et un ThinkPad 410 avec une touche tactile synaptique, je n'ai pas de chauffeur de noyau.

$ lsmod|grep -iE "Apple|cyapa|sermouse|synap|psmouse|vsxx|bcm"

Alors, qu'est-ce qui prend soin de cet appareil? Eh bien c'est en fait ce module de noyau:

$ lsmod|grep -iE "input"
uinput                 17672  0 

Si vous voulez en savoir plus sur ce module, vous pouvez utiliser 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
...

Comme il démarre les périphériques d'entrée tels que ceux-ci sont souvent traités à un niveau supérieur, dans ce cas, les pilotes réels sont mis en œuvre au niveau X11.

uinput est un module de noyau Linux qui permet de gérer le sous-système d'entrée des terres de l'utilisateur. Il peut être utilisé pour créer et gérer des périphériques d'entrée à partir d'une application. Il crée un périphérique de caractère dans/dev/dentrage. L'appareil est une interface virtuelle, il n'appartient pas à un périphérique physique.

Source: Mise en route avec Uinput: Sous-système d'entrée de niveau utilisateur

Alors, où est mes pilotes de touchpad?

Ils sont dans le sous-système de X11. Vous pouvez voir l'appareil à l'aide de la xinput --list commande. Par exemple, voici les appareils sur mon ordinateur portable 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)]

Notez que mon pavé tactile apparaît dans cette liste. Vous pouvez trouver des informations supplémentaires sur ces appareils via /proc, par exemple:

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

Ok mais où est le conducteur?

Creuser plus profondément si votre système utilise un pavé tactile synaptique (ce que je crois qu'ils font ~ 90% de tous les pavés tactiles), vous pouvez faire un locate synaptics | grep xorg qui devrait révéler les fichiers suivants:

$ 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

Les premiers résultats Il y a le pilote réel que vous posez. Il est chargé dans X.org via le deuxième fichier ici:

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
EndSection

Et cette ligne:

        MatchDevicePath "/dev/input/event*"

Est ce qui associe les appareils physiques avec ce pilote. Et vous vous demandez probablement comment ce type peut-il être si sûr? L'utilisation de cette commande indique le périphérique associé à mon pavé tactile synaptique donné à l'aide de id=12 du xinput --list Sortie J'ai montré plus tôt:

$ xinput --list-props 12 | grep "Device Node"
    Device Node (251):  "/dev/input/event4"
34
slm
$ cat /var/log/Xorg.0.log | grep "input driver"

Sur mon ordinateur portable, il montre:

...
[     9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...
2
golopot