Trình điều khiển nào đang xử lý touchpad của tôi?


22

Tôi muốn biết cách xác định trình điều khiển nào (trong số những người bên dưới) đang xử lý bàn di chuột của tôi:

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
Làm một lsmodvà xem những trình điều khiển được tải. Bạn cũng có thể muốn đọc của bạn /var/log/Xorg.0.log.
wingbedubmariner

câu hỏi này là một tiếp theo trên câu hỏi trước của tôi . Thành thật mà nói, có vẻ như không có gì được tải.
banuy

Câu trả lời:


34

Có vẻ như không ai trong số họ đang làm điều đó. Trên hệ thống của tôi, ví dụ như tôi đang sử dụng Fedora 19 và Thinkpad 410 với bàn di chuột Synaptic, tôi cũng không có trình điều khiển Kernel.

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

Vì vậy, những gì chăm sóc thiết bị này? Vâng, đây thực sự là mô-đun Kernel này:

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

Nếu bạn muốn xem thêm về mô-đun này, bạn có thể sử dụng 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
...

Vì hóa ra các thiết bị đầu vào như những thiết bị này thường được xử lý ở mức cao hơn, trong trường hợp này, các trình điều khiển thực tế được thực hiện ở cấp X11.

uinput là một mô-đun hạt nhân linux cho phép xử lý hệ thống con đầu vào từ vùng đất người dùng. Nó có thể được sử dụng để tạo và xử lý các thiết bị đầu vào từ một ứng dụng. Nó tạo ra một thiết bị ký tự trong thư mục / dev / input. Thiết bị này là một giao diện ảo, nó không thuộc về một thiết bị vật lý.

NGUỒN: Bắt đầu với uinput: hệ thống con đầu vào cấp người dùng

Vậy thì trình điều khiển touchpad của tôi ở đâu?

Họ đang ở trong hệ thống con của X11. Bạn có thể thấy thiết bị bằng xinput --listlệnh. Ví dụ: Đây là các thiết bị trên máy tính xách tay Thinkpad của tôi:

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

Lưu ý rằng TouchPad của tôi xuất hiện trong danh sách này. Bạn có thể tìm hiểu thêm thông tin về các thiết bị này thông qua /proc, ví dụ:

$ 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 nhưng tài xế đâu?

Tìm hiểu sâu hơn nếu hệ thống của bạn đang sử dụng bàn di chuột Synaptic (mà tôi tin rằng họ tạo ra ~ 90% tất cả các bàn di chuột), bạn có thể thực hiện một thao locate synaptics | grep xorgtác sẽ tiết lộ các tệp sau:

$ 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

Kết quả đầu tiên là trình điều khiển thực tế mà bạn đang hỏi về. Nó được tải vào X.org thông qua tệp thứ hai tại đây:

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

Và dòng này:

        MatchDevicePath "/dev/input/event*"

Là những gì liên kết các thiết bị vật lý với trình điều khiển này. Và có lẽ bạn đang tự hỏi, làm thế nào mà anh chàng này có thể chắc chắn như vậy? Sử dụng lệnh này sẽ hiển thị thiết bị được liên kết với TouchPad Synaptic đã cho của tôi bằng cách sử dụng id=12từ xinput --listđầu ra mà tôi đã hiển thị trước đó:

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

Rất thú vị! Khi tôi sử dụng trình điều khiển mtrack xorg thay vì synap, tôi đã tìm thấy một điều khác với những gì bạn đã nói trên trang mtrack : "Hỗ trợ bất kỳ trackpad nào có trình điều khiển kernel sử dụng giao thức đa điểm có rãnh." Có vẻ như trình điều khiển xorg không thực sự liên lạc trực tiếp với phần cứng, nhưng câu trả lời của bạn có vẻ mâu thuẫn với tuyên bố này ...
xuhdev

Tôi nghĩ trình điều khiển đầu vào xorg khác với trình điều khiển thiết bị. Tôi chạy journalctl -b 0và sau đó tìm kiếm touchpad, và tôi có dòng này (**) bcm5974: Applying InputClass "evdev touchpad catchall". Vì vậy, tôi biết bcm5974là trình điều khiển thiết bị
xuhdev

@xuhdev - trình điều khiển xorg đang nhận dữ liệu chuyển động thông qua uinputmô-đun hạt nhân (trình điều khiển). Điều gì không rõ ràng về tuyên bố này?
slm

@slm Tôi nghĩ OP đang hỏi về trình điều khiển thiết bị chứ không phải trình điều khiển xorg. Những gì bạn đã cho thấy là trình điều khiển xorg, theo hiểu biết của tôi là hoàn toàn khác với trình điều khiển thiết bị. uinputmô-đun không được định hướng liên quan đến các thiết bị phần cứng; nó phụ thuộc vào trình điều khiển phần cứng để cung cấp thông tin chính xác và sau đó uinput cung cấp giao diện nhập thống nhất cho vùng người dùng. Phần mềm userland, trong trường hợp này, trình điều khiển synaptics xorg, có thể kết nối xorg với kernel (và người dùng nhập gián tiếp) bằng cách sử dụng uinput. Xin hãy sửa tôi nếu tôi sai, vì tôi không phải là chuyên gia trong lĩnh vực này ..
xuhdev

Bạn cũng nên bao gồm hid_multitouchtrong danh sách của bạn. Tôi nghĩ đó là những gì đang quản lý bàn di chuột trên Dell Precision của tôi và tôi không uinputtải mô-đun.
Cerin

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

Trên máy tính xách tay của tôi, nó hiển thị:

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

2
Không sử dụng cat | grep vì bạn có thể trực tiếp sử dụng greptrên các tệp bỏ qua catlệnh.
Thomas

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

journalctl -u display-manager | grep "input driver"xinput --listgiúp tôi tìm ra tôi cần kích hoạt tùy chọn kernel "Elantech" khi biên dịch lại kernel.
dùng7610
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.