Dokunmatik yüzeyimi hangi sürücü kullanıyor?


22

Hangi sürücüden hangisinin (aşağıdakilerden hangisinin dışında) dokunmatik yüzeyimi kullanacağını nasıl belirleyeceğimi bilmek istiyorum:

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
Bir lsmodsürücü yapın ve bu sürücülerden hangisinin yüklü olduğunu görün. Ayrıca okumak isteyebilirsiniz /var/log/Xorg.0.log.
wingedsubmariner

bu sorular önceki soruların bir takipiydi . Dürüst olmak gerekirse, hiçbiri yüklü görünmüyor.
banuy

Yanıtlar:


34

Muhtemelen hiçbiri bunu yapmıyordur. Örneğin, Fedora 19 ve Synaptic dokunmatik yüzeyli Thinkpad 410 kullandığım sistemde de Çekirdek sürücüsü yok.

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

Öyleyse bu cihaza ne bakıyor? Aslında bu şu Çekirdek modülü:

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

Bu modül hakkında daha fazla şey görmek istiyorsanız, şunları kullanabilirsiniz 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
...

Bunlar gibi girdi cihazlarının genellikle daha yüksek bir seviyede ele alındığı, bu durumda asıl sürücüler X11 düzeyinde uygulandığı anlaşılmaktadır.

Kullanıcı girişi, giriş alt sistemini kullanıcı alanından yönetmeyi sağlayan bir linux çekirdek modülüdür. Bir uygulamadan giriş aygıtları oluşturmak ve bunları işlemek için kullanılabilir. / Dev / input dizininde bir karakter cihazı yaratır. Cihaz sanal bir arayüzdür, fiziksel bir cihaza ait değildir.

KAYNAK: Kullanıcı girişi ile çalışmaya başlama: kullanıcı düzeyinde giriş alt sistemi

O zaman touchpad sürücülerim nerede?

X11'in alt sisteminde. xinput --listKomutu kullanarak cihazı görebilirsiniz . Örneğin, İşte Thinkpad dizüstü bilgisayarımdaki cihazlar:

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

Dokunmatik Yüzeyimin bu listede göründüğüne dikkat edin. Bu cihazlar hakkında ek bilgi bulabilirsiniz /proc, örneğin:

$ 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
...

Tamam ama sürücü nerede?

Sisteminiz bir Synaptic dokunmatik yüzey kullanıyorsa (ki bunlar tüm dokunmatik yüzeylerin ~% 90'ını oluşturduğuna inanıyorum) kullanıyorsa, daha derine inerek locate synaptics | grep xorgaşağıdakileri ortaya çıkarabilirsiniz:

$ 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

İlk sonuç, sorduğunuz gerçek sürücü. Buradaki ikinci dosya aracılığıyla X.org'a yüklenir:

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

Ve bu çizgi:

        MatchDevicePath "/dev/input/event*"

Fiziksel aygıtları bu sürücüyle ilişkilendiren şeydir. Muhtemelen kendine soruyorsun, bu adam nasıl bu kadar emin olabiliyor? Bu komutu kullanmak id=12, xinput --listdaha önce gösterdiğim çıktıyı kullanarak verilen Synaptic TouchPad ile ilişkili cihazı gösterir :

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

Çok ilginç! Synaptics yerine mtrack xorg sürücüsünü kullandığımda, mtrack sayfasında söylediklerinizden farklı bir şey buldum : "Çekirdek sürücüsü slotlu çoklu dokunma protokolünü kullanan herhangi bir trackpad'i destekler." Görünüşe göre xorg sürücüsü donanıma doğrudan temas etmiyor, ancak cevabınız bu ifade ile çakışıyor gibi görünüyor ...
xuhdev

Xorg giriş sürücüsünün aygıt sürücüsünden farklı olduğunu düşünüyorum. Koştum journalctl -b 0ve sonra aradım touchpadve bu çizgiye sahibim (**) bcm5974: Applying InputClass "evdev touchpad catchall". Böylece bcm5974aygıt sürücüsü olduğunu biliyorum
xuhdev

@ xuhdev - xorg sürücüsü uinputçekirdeği (sürücü) üzerinden hareket verilerini alıyor . Bu açıklamada net olmayan ne var?
slm

@slm OP, xorg sürücüsünden değil aygıt sürücüsünden bahsettiğini düşünüyorum. Göstermiş olduğunuz şey, xorg sürücüsü, ki benim anladığım kadarıyla cihaz sürücüsünden tamamen farklı. uinputmodül donanım aygıtlarıyla ilgili olarak yönlendirilmemiştir; doğru bilgiyi sağlamak için donanım sürücülerine bağlıdır ve daha sonra kullanıcı girişi kullanıcılara birleşik bir giriş arayüzü sağlar. Kullanıcı alanı yazılımı, bu durumda synaptics xorg sürücüsü, xorg uinput kullanarak çekirdeğe (ve dolaylı olarak kullanıcı girişi) bağlayabilir. Lütfen bu konuda uzman değilim, hatalıysam beni düzeltin ..
xuhdev

Ayrıca hid_multitouchlistenize de eklemelisiniz . Sanırım Dell Precision'ımdaki touchpad'i yönetiyor ve uinputmodül yüklü değil.
Cerin

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

Dizüstü bilgisayarımda şunu gösteriyor:

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

2
Komutu atlayarak cat | grep doğrudan kullanabileceğiniz gibi kullanmayın . grepcat
Thomas

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

journalctl -u display-manager | grep "input driver"ve xinput --listçekirdeği yeniden derlerken "Elantech" çekirdeği seçeneğini etkinleştirmem gerektiğini anlamama yardımcı oldu.
user7610
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.