답변:
그들 중 누구도 그 일을하고 있지 않을 것입니다. 예를 들어, 시냅틱 터치 패드와 함께 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"
journalctl -b 0
검색했고 touchpad
, 나는이 줄을 가지고있다 (**) bcm5974: Applying InputClass "evdev touchpad catchall"
. 따라서 나는 bcm5974
장치 드라이버입니다
uinput
커널 모듈 (드라이버)을 통해 모션 데이터를 가져오고 있습니다. 이 진술에 대해 분명하지 않은 것은 무엇입니까?
uinput
모듈은 하드웨어 장치와 관련이 없습니다. 올바른 정보를 제공하기 위해 하드웨어 드라이버에 의존하고, uinput은 사용자 영역에 통합 된 입력 인터페이스를 제공합니다. userland 소프트웨어 (이 경우 synaptics xorg 드라이버)는 uinput을 사용하여 xorg를 커널 (및 사용자 입력)에 직접 연결할 수 있습니다. 내가이 분야의 전문가가 아니기 때문에 내가 틀렸다면 나를 바로 잡으십시오 ..
hid_multitouch
목록에 포함시켜야 합니다. 이것이 Dell Precision의 터치 패드를 관리하는 것으로 생각되며 uinput
모듈이로드 되지 않았습니다 .
$ cat /var/log/Xorg.0.log | grep "input driver"
내 노트북에는 다음이 표시됩니다.
...
[ 9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...
cat | grep
직접 사용할 수 있으므로 사용하지 마십시오 . grep
cat
grep -e "input driver" /var/log/Xorg.0.log
journalctl -u display-manager | grep "input driver"
그리고 xinput --list
나는 커널을 재 컴파일 할 때 "Elantech"커널 옵션을 활성화해야 알아 내기 위해 나를 도왔다.
lsmod
하고로드하는 드라이버 중 어느 참조하십시오. 를 읽을 수도 있습니다/var/log/Xorg.0.log
.