Quel pilote gère mon pavé tactile?


22

Je voudrais savoir comment déterminer quel pilote (parmi ceux ci-dessous) gère mon pavé tactile:

appletouch.ko.gz, cyapa.ko.gz, sermouse.ko.gz, synaptics_usb.ko.gz, bcm5974.ko.gz, psmouse.ko.gz, synaptics_i2c.ko.gz, vsxxxaa.ko.gz


1
Faites un lsmodet voyez lequel de ces pilotes est chargé. Vous pourriez également vouloir lire votre /var/log/Xorg.0.log.
wingedsubmariner

cette question faisait suite à ma précédente . Pour être honnête, il semble qu'aucun ne soit chargé.
banuy

Réponses:


34

Il est probable qu'aucun d'entre eux ne le fait. Par exemple, sur mon système où j'utilise Fedora 19 et un Thinkpad 410 avec un pavé tactile Synaptic, je n'ai pas de pilote de noyau également.

$ 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 du 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 s'avère que 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 implémentés au niveau X11.

uinput est un module du noyau linux qui permet de gérer le sous-système d'entrée depuis la zone 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ères dans le répertoire / dev / input. L'appareil est une interface virtuelle, il n'appartient pas à un appareil physique.

SOURCE: Premiers pas avec uinput: le sous-système d'entrée au niveau utilisateur

Alors, où sont mes pilotes de pavé tactile?

Ils sont dans le sous-système de X11. Vous pouvez voir l'appareil à l'aide de la xinput --listcommande. 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 TouchPad 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 chauffeur?

En creusant plus profondément si votre système utilise un pavé tactile Synaptic (qui, je pense, ils représentent environ 90% de tous les pavés tactiles), vous pouvez en faire un locate synaptics | grep xorgqui 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 sont le pilote réel dont vous parlez. 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*"

C'est ce qui associe les périphériques physiques à ce pilote. Et vous vous demandez probablement, comment ce type peut-il être si sûr? L'utilisation de cette commande montre l'appareil associé à mon pavé tactile Synaptic donné à l'aide id=12de la xinput --listsortie que j'ai montrée plus tôt:

$ xinput --list-props 12 | grep "Device Node"
    Device Node (251):  "/dev/input/event4"

Très intéressant! Comme j'utilise le pilote mtrack xorg au lieu des synaptics, j'ai trouvé quelque chose de différent de ce que vous avez dit sur la page mtrack : "Prend en charge tout trackpad dont le pilote du noyau utilise le protocole multitouch à fentes." Il semble que le pilote xorg n'ait pas vraiment de contact direct avec le matériel, mais votre réponse semble en conflit avec cette déclaration ...
xuhdev

Je pense que le pilote d'entrée xorg est différent du pilote de périphérique. J'ai couru journalctl -b 0, puis j'ai cherché touchpad, et j'ai cette ligne (**) bcm5974: Applying InputClass "evdev touchpad catchall". Ainsi, je sais que bcm5974c'est le pilote de périphérique
xuhdev

@xuhdev - le pilote xorg obtient les données de mouvement via le uinputmodule du noyau (pilote). Qu'est-ce qui n'est pas clair à propos de cette déclaration?
slm

@slm Je pense que l'OP pose des questions sur le pilote de périphérique, pas sur le pilote xorg. Ce que vous avez montré est le pilote xorg, qui, à ma connaissance, est totalement différent du pilote de périphérique. uinputle module n'est pas orienté vers les périphériques matériels; cela dépend des pilotes matériels pour fournir des informations correctes, puis uinput fournit une interface d'entrée unifiée à l'utilisateur. Le logiciel userland, dans ce cas le pilote synaptics xorg, peut connecter xorg avec le noyau (et les entrées utilisateur indirectement) en utilisant uinput. Veuillez me corriger si je me trompe, car je ne suis pas un expert dans ce domaine ..
xuhdev

Vous devez également inclure hid_multitouchdans votre liste. Je pense que c'est ce qui gère le pavé tactile de mon Dell Precision, et je n'ai pas le uinputmodule chargé.
Cerin

2
$ cat /var/log/Xorg.0.log | grep "input driver"

Sur mon ordinateur portable, cela montre:

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

2
Ne pas utiliser cat | grep car vous pouvez directement utiliser grepsur des fichiers en sautant la catcommande.
Thomas

grep -e "input driver" /var/log/Xorg.0.log
masterwok

journalctl -u display-manager | grep "input driver"et xinput --listm'a aidé à comprendre que je dois activer l'option de noyau "Elantech" lors de la recompilation du noyau.
user7610
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.