Driver mana yang menangani touchpad saya?

22

Saya ingin tahu cara menentukan driver mana (dari yang di bawah) yang menangani touchpad saya:

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

banuy
sumber
1
Lakukan lsmoddan lihat driver mana yang dimuat. Anda mungkin juga ingin membaca /var/log/Xorg.0.log.
wingedsubmariner
pertanyaan ini merupakan tindak lanjut dari pertanyaan saya sebelumnya . Sejujurnya sepertinya tidak ada yang dimuat.
banuy

Jawaban:

34

Kemungkinan tidak ada dari mereka yang melakukannya. Pada sistem saya misalnya di mana saya menggunakan Fedora 19 dan Thinkpad 410 dengan touchpad Synaptic saya tidak memiliki driver Kernel juga.

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

Jadi apa yang merawat perangkat ini? Sebenarnya ini adalah modul Kernel ini:

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

Jika Anda ingin melihat lebih banyak tentang modul ini, Anda dapat menggunakan 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
...

Karena ternyata perangkat input seperti ini sering ditangani pada level yang lebih tinggi, dalam hal ini driver yang sebenarnya diimplementasikan pada level X11.

uinput adalah modul kernel linux yang memungkinkan untuk menangani subsistem input dari tanah pengguna. Dapat digunakan untuk membuat dan menangani perangkat input dari suatu aplikasi. Itu menciptakan perangkat karakter di direktori / dev / input. Perangkat ini adalah antarmuka virtual, itu bukan milik perangkat fisik.

SUMBER: Memulai dengan uinput: subsistem input level pengguna

Jadi di mana driver touchpad saya?

Mereka ada di subsistem X11. Anda dapat melihat perangkat menggunakan xinput --listperintah. Misalnya, Inilah perangkat di laptop Thinkpad saya:

$ 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)]

Perhatikan bahwa TouchPad saya muncul di daftar ini. Anda dapat mengetahui info tambahan tentang perangkat ini melalui /proc, misalnya:

$ 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 tapi dimana supirnya?

Menggali lebih dalam jika sistem Anda menggunakan touchpad Synaptic (yang saya percaya mereka membuat ~ 90% dari semua touchpad), Anda bisa melakukan locate synaptics | grep xorgyang harus mengungkapkan file-file berikut:

$ 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

Hasil pertama ada driver sebenarnya yang Anda tanyakan. Itu bisa dimuat ke X.org melalui file kedua di sini:

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

Dan baris ini:

        MatchDevicePath "/dev/input/event*"

Apakah yang mengaitkan perangkat fisik dengan driver ini. Dan Anda mungkin bertanya pada diri sendiri, bagaimana orang ini bisa begitu yakin? Menggunakan perintah ini menunjukkan perangkat yang terkait dengan Synaptic TouchPad yang diberikan menggunakan id=12dari xinput --listoutput yang saya tunjukkan sebelumnya:

$ xinput --list-props 12 | grep "Device Node"
    Device Node (251):  "/dev/input/event4"
slm
sumber
Sangat menarik! Ketika saya menggunakan driver mtrack xorg daripada synaptics, saya menemukan sesuatu yang berbeda dari apa yang Anda katakan di halaman mtrack : "Mendukung trackpad apa pun yang driver kernelnya menggunakan protokol multitouch slotted." Tampaknya driver xorg tidak benar-benar berhubungan langsung dengan perangkat keras, tetapi jawaban Anda tampaknya bertentangan dengan pernyataan ini ...
xuhdev
Saya pikir driver input xorg berbeda dari driver perangkat. Saya berlari journalctl -b 0dan kemudian mencari touchpad, dan saya memiliki baris ini (**) bcm5974: Applying InputClass "evdev touchpad catchall". Jadi saya tahu bcm5974adalah driver perangkat
xuhdev
@xuhdev - driver xorg mendapatkan data gerakan melalui uinputmodul kernel (driver). Apa yang tidak jelas tentang pernyataan ini?
slm
@slm Saya pikir OP bertanya tentang driver perangkat, bukan driver xorg. Apa yang telah Anda tunjukkan adalah driver xorg, yang menurut saya sama sekali berbeda dari driver perangkat. uinputmodul tidak diarahkan terkait dengan perangkat perangkat keras; itu tergantung pada driver perangkat keras untuk memberikan informasi yang benar, dan kemudian uinput menyediakan antarmuka input terpadu ke userland. Perangkat lunak userland, dalam hal ini driver synaptics xorg, dapat menghubungkan xorg dengan kernel (dan input pengguna secara tidak langsung) dengan menggunakan uinput. Harap perbaiki saya jika saya salah, karena saya bukan ahli dalam bidang ini ..
xuhdev
Anda juga harus memasukkan hid_multitouchdalam daftar Anda. Saya pikir itulah yang mengelola touchpad pada Dell Precision saya, dan uinputmodul saya tidak dimuat.
Cerin
2
$ cat /var/log/Xorg.0.log | grep "input driver"

Di laptop saya terlihat:

...
[     9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...
golopot
sumber
2
Jangan gunakan cat | grep karena Anda dapat langsung digunakan greppada file yang melewatkan catperintah.
Thomas
grep -e "input driver" /var/log/Xorg.0.log
masterwok
journalctl -u display-manager | grep "input driver"dan xinput --listmembantu saya untuk mencari tahu saya harus mengaktifkan opsi kernel "Elantech" ketika mengkompilasi ulang kernel.
user7610