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
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
Réponses:
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
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 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
...
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 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 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=12
de la xinput --list
sortie que j'ai montrée plus tôt:
$ xinput --list-props 12 | grep "Device Node"
Device Node (251): "/dev/input/event4"
journalctl -b 0
, puis j'ai cherché touchpad
, et j'ai cette ligne (**) bcm5974: Applying InputClass "evdev touchpad catchall"
. Ainsi, je sais que bcm5974
c'est le pilote de périphérique
uinput
module du noyau (pilote). Qu'est-ce qui n'est pas clair à propos de cette déclaration?
uinput
le 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 ..
hid_multitouch
dans votre liste. Je pense que c'est ce qui gère le pavé tactile de mon Dell Precision, et je n'ai pas le uinput
module chargé.
$ 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'
...
cat | grep
car vous pouvez directement utiliser grep
sur des fichiers en sautant la cat
commande.
grep -e "input driver" /var/log/Xorg.0.log
journalctl -u display-manager | grep "input driver"
et xinput --list
m'a aidé à comprendre que je dois activer l'option de noyau "Elantech" lors de la recompilation du noyau.
lsmod
et voyez lequel de ces pilotes est chargé. Vous pourriez également vouloir lire votre/var/log/Xorg.0.log
.