Quale driver gestisce il mio touchpad?


22

Vorrei sapere come determinare quale driver (tra quelli di seguito) gestisce il mio touchpad:

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
Fare un lsmode vedere quale di questi driver è caricato. Potresti anche voler leggere il tuo /var/log/Xorg.0.log.
wingedsubmariner

questa domanda è stata un seguito al mio precedente . A dire il vero sembra che nessuno sia caricato.
Banuy,

Risposte:


34

È probabile che nessuno di loro lo stia facendo. Nel mio sistema, ad esempio, dove sto usando Fedora 19 e un Thinkpad 410 con un touchpad Synaptic, non ho anche un driver Kernel.

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

Allora, cosa si prende cura di questo dispositivo? Bene, in realtà è questo modulo del kernel:

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

Se vuoi vedere di più su questo modulo puoi usare 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
...

A quanto pare, dispositivi di input come questi sono spesso gestiti a un livello superiore, in questo caso i driver effettivi sono implementati a livello X11.

uinput è un modulo del kernel linux che consente di gestire il sottosistema di input dalla terra dell'utente. Può essere utilizzato per creare e gestire dispositivi di input da un'applicazione. Crea un dispositivo a caratteri nella directory / dev / input. Il dispositivo è un'interfaccia virtuale, non appartiene a un dispositivo fisico.

FONTE: Introduzione a uinput: sottosistema di input a livello di utente

Allora, dov'è il mio driver del touchpad?

Sono nel sottosistema X11. Puoi vedere il dispositivo usando il xinput --listcomando. Ad esempio, ecco i dispositivi sul mio laptop 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)]

Si noti che il mio TouchPad appare in questo elenco. Puoi trovare ulteriori informazioni su questi dispositivi tramite /proc, ad esempio:

$ 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 ma dov'è l'autista?

Scavando più a fondo se il tuo sistema utilizza un touchpad Synaptic (che a mio avviso rappresenta circa il 90% di tutti i touchpad), puoi fare uno locate synaptics | grep xorgche dovrebbe rivelare i seguenti file:

$ 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

I primi risultati sono il vero driver di cui stai chiedendo. Viene caricato in X.org tramite il secondo file qui:

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

E questa linea:

        MatchDevicePath "/dev/input/event*"

È ciò che associa i dispositivi fisici a questo driver. E probabilmente ti stai chiedendo, come può questo ragazzo essere così sicuro? Utilizzando questo comando mostra il dispositivo associato con la mia data Synaptic TouchPad utilizzando id=12dalla xinput --listuscita ho mostrato in precedenza:

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

Molto interessante! Mentre uso il driver xtr mtrack invece di synaptics, ho trovato qualcosa di diverso da quello che hai detto nella pagina mtrack : "Supporta qualsiasi trackpad il cui driver del kernel utilizza il protocollo multitouch con slot ". Sembra che il driver xorg non abbia davvero un contatto diretto con l'hardware, ma la tua risposta sembra in conflitto con questa affermazione ...
xuhdev

Penso che il driver di input xorg sia diverso dal driver del dispositivo. Ho corso journalctl -b 0e poi cercato touchpad, e ho questa linea (**) bcm5974: Applying InputClass "evdev touchpad catchall". Quindi so che bcm5974è il driver del dispositivo
xuhdev

@xuhdev - il driver xorg sta ottenendo i dati di movimento tramite il uinputmodulo del kernel (driver). Cosa non è chiaro su questa affermazione?
slm

@slm Penso che l'OP stia chiedendo del driver del dispositivo, non del driver xorg. Quello che hai mostrato è il driver xorg, che, a mio avviso, è totalmente diverso dal driver del dispositivo. uinputil modulo non è diretto in relazione ai dispositivi hardware; dipende dai driver hardware per fornire informazioni corrette, quindi uinput fornisce un'interfaccia di input unificata per l'utente. Il software userland, in questo caso il driver synaptics xorg, può connettere xorg con il kernel (e l'input dell'utente indirettamente) usando uinput. Per favore, correggimi se sbaglio, perché non sono un esperto in questo campo ..
xuhdev,

È inoltre necessario includere hid_multitouchnell'elenco. Penso che sia quello che gestisce il touchpad sul mio Dell Precision e non ho il uinputmodulo caricato.
Cerin,

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

Sul mio laptop mostra:

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

2
Non utilizzare in cat | grep quanto è possibile utilizzare direttamente grepsui file ignorando il catcomando.
Thomas

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

journalctl -u display-manager | grep "input driver" e xinput --list mi ha aiutato a capire che ho bisogno di abilitare l'opzione del kernel "Elantech" durante la ricompilazione del kernel.
user7610
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.