터치 패드를 처리하는 드라이버는 무엇입니까?


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 1

이 질문은 이전 질문에 대한 후속 조치였습니다 . 솔직히 말하면 아무것도로드되지 않은 것처럼 보입니다.
banuy

답변:


34

그들 중 누구도 그 일을하고 있지 않을 것입니다. 예를 들어, 시냅틱 터치 패드와 함께 Fedora 19와 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
...

그래,하지만 운전자는 어디에?

시스템이 시냅틱 터치 패드 (모든 터치 패드의 ~ 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=12으로부터 xinput --list앞에서 보여 주었다 출력 :

$ 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 소프트웨어 (이 경우 synaptics xorg 드라이버)는 uinput을 사용하여 xorg를 커널 (및 사용자 입력)에 직접 연결할 수 있습니다. 내가이 분야의 전문가가 아니기 때문에 내가 틀렸다면 나를 바로 잡으십시오 ..
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 직접 사용할 수 있으므로 사용하지 마십시오 . grepcat
Thomas

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

journalctl -u display-manager | grep "input driver"그리고 xinput --list나는 커널을 재 컴파일 할 때 "Elantech"커널 옵션을 활성화해야 알아 내기 위해 나를 도왔다.
user7610
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.