Какой драйвер работает с моей сенсорной панелью?


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

этот вопрос был продолжением моего предыдущего . Если честно, похоже, никто не загружен.
Бануй

Ответы:


34

Вероятно, никто из них не делает этого. Например, в моей системе, где я использую Fedora 19 и Thinkpad 410 с тачпадом Synaptic, у меня также нет драйвера ядра.

$ 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*"

Это то, что связывает физические устройства с этим драйвером. И вы, вероятно, спрашиваете себя, как этот парень может быть так уверен? Использование этой команды показывает устройство, связанное с моей данной Synaptic TouchPad, id=12из xinput --listвывода, который я показал ранее:

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

Очень интересно! Поскольку я использую драйвер mtrack xorg вместо synaptics, я обнаружил нечто отличное от того, что вы сказали на странице mtrack : «Поддерживает любой трекпад, драйвер ядра которого использует протокол мультитач со слотами ». Кажется, что драйвер xorg не имеет прямого контакта с оборудованием, но ваш ответ кажется противоречащим этому утверждению ...
xuhdev

Я думаю, что драйвер ввода xorg отличается от драйвера устройства. Я побежал, journalctl -b 0а затем искал touchpad, и у меня есть эта строка (**) bcm5974: Applying InputClass "evdev touchpad catchall". Таким образом я знаю bcm5974это драйвер устройства
xuhdev

@xuhdev - драйвер xorg получает данные о движении через uinputмодуль ядра (драйвер). Что не ясно в этом утверждении?
SLM

@slm Я думаю, что ОП спрашивает о драйвере устройства, а не о драйвере xorg. То, что вы показали, это драйвер xorg, который, на мой взгляд, полностью отличается от драйвера устройства. uinputмодуль не относится к аппаратным устройствам; это зависит от драйверов оборудования для предоставления правильной информации, а затем uinput предоставляет унифицированный интерфейс ввода для пользовательского пространства. Программное обеспечение userland, в данном случае драйвер xap synaptics, может соединять xorg с ядром (и косвенно вводить пользователя) с помощью uinput. Пожалуйста, поправьте меня, если я ошибаюсь, так как я не эксперт в этой области ..
xuhdev

Вы также должны включить hid_multitouchв свой список. Я думаю, что именно этим управляет тачпад на моем Dell Precision, и у меня не uinputзагружен модуль.
Cerin

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команду.
Томас

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

journalctl -u display-manager | grep "input driver"и xinput --listпомог мне понять, что мне нужно включить опцию ядра "Elantech" при перекомпиляции ядра.
user7610
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.