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
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
Jawaban:
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
Mereka ada di subsistem X11. Anda dapat melihat perangkat menggunakan xinput --list
perintah. 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
...
Menggali lebih dalam jika sistem Anda menggunakan touchpad Synaptic (yang saya percaya mereka membuat ~ 90% dari semua touchpad), Anda bisa melakukan locate synaptics | grep xorg
yang 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=12
dari xinput --list
output yang saya tunjukkan sebelumnya:
$ xinput --list-props 12 | grep "Device Node"
Device Node (251): "/dev/input/event4"
journalctl -b 0
dan kemudian mencari touchpad
, dan saya memiliki baris ini (**) bcm5974: Applying InputClass "evdev touchpad catchall"
. Jadi saya tahu bcm5974
adalah driver perangkat
uinput
modul kernel (driver). Apa yang tidak jelas tentang pernyataan ini?
uinput
modul 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 ..
hid_multitouch
dalam daftar Anda. Saya pikir itulah yang mengelola touchpad pada Dell Precision saya, dan uinput
modul saya tidak dimuat.
$ cat /var/log/Xorg.0.log | grep "input driver"
Di laptop saya terlihat:
...
[ 9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...
cat | grep
karena Anda dapat langsung digunakan grep
pada file yang melewatkan cat
perintah.
grep -e "input driver" /var/log/Xorg.0.log
journalctl -u display-manager | grep "input driver"
dan xinput --list
membantu saya untuk mencari tahu saya harus mengaktifkan opsi kernel "Elantech" ketika mengkompilasi ulang kernel.
lsmod
dan lihat driver mana yang dimuat. Anda mungkin juga ingin membaca/var/log/Xorg.0.log
.