哪个驱动程序在处理我的触摸板?


22

我想知道如何确定哪个驱动程序(以下驱动程序)正在处理我的触摸板:

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
做一个lsmod,看看哪些驱动程序已加载。您可能还想阅读您的文章/var/log/Xorg.0.log
wingedsubmariner 2014年

这个问题是我上一个问题的跟进。老实说,它看起来好像没有加载。
banuy

Answers:


34

他们可能都没有这样做。例如,在我使用Fedora 19和带有Synaptic触摸板的Thinkpad 410的系统上,我也没有内核驱动程序。

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

那么,该如何保养该设备?好吧,实际上就是这个内核模块:

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

如果您想了解有关此模块的更多信息,可以使用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
...

事实证明,诸如此类的输入设备通常在更高级别上处理,在这种情况下,实际的驱动程序在X11级别上实现。

uinput是一个Linux内核模块,允许从用户区域处理输入子系统。它可用于创建和处理来自应用程序的输入设备。它在/ dev / input目录中创建一个字符设备。该设备是虚拟接口,不属于物理设备。

源: uinput入门:用户级别输入子系统

那么,我的触摸板驱动程序在哪里?

它们在X11的子系统中。您可以使用xinput --list命令查看设备。例如,这是我的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)]

请注意,我的触摸板出现在此列表中。您可以通过找到有关这些设备的其他信息/proc,例如:

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

好的,但是司机在哪里?

如果您的系统正在使用Synaptic触摸板(我相信它们占所有触摸板的90%),则可以进行更深入的研究,您可以执行locate synaptics | grep xorg以下操作来显示以下文件:

$ 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

第一个结果是您要询问的实际驱动程序。它通过此处的第二个文件加载到X.org中:

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

这行:

        MatchDevicePath "/dev/input/event*"

是将物理设备与此驱动程序关联的东西。您可能会问自己,这个人怎么能确定?使用此命令,id=12xinput --list前面显示的输出中可以看到与给定Synaptic TouchPad相关的设备:

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

很有意思!当我使用mtrack xorg驱动程序而不是突触时,我发现与您在mtrack页面上所说的有所不同:“支持任何内核驱动程序使用插槽式多点触摸协议的触控板。” 似乎xorg驱动程序并没有真正与硬件直接接触,但是您的回答似乎与此声明相矛盾...
xuhdev

我认为xorg输入驱动程序与设备驱动程序不同。我跑了journalctl -b 0,然后搜寻touchpad,我有这条线(**) bcm5974: Applying InputClass "evdev touchpad catchall"。因此,我知道bcm5974是设备驱动程序
xuhdev

@xuhdev-xorg驱动程序正在通过uinput内核模块(驱动程序)获取运动数据。这个说法不清楚吗?
slm

@slm我认为OP正在询问设备驱动程序,而不是xorg驱动程序。您所展示的是xorg驱动程序,据我了解,它与设备驱动程序完全不同。uinput模块与硬件设备无关;它依赖于硬件驱动程序来提供正确的信息,然后uinput提供了到userland的统一输入接口。userland软件(在本例中为synaptics xorg驱动程序)可以使用uinput将xorg与内核(以及用户输入间接)连接。如果我做错了,请指正我,因为我不是该领域的专家
。.– xuhdev

您还应该hid_multitouch在列表中。我认为这就是在Dell Precision上管理触摸板的原因,并且我没有uinput加载模块。
塞林

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

在我的笔记本电脑上,它显示:

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

2
不要使用,cat | grep 因为您可以grep跳过cat命令直接在文件上使用。
Thomas

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

journalctl -u display-manager | grep "input driver"xinput --list帮助我弄清楚了重新编译内核时需要启用“ Elantech”内核选项。
user7610
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.