次のいずれかのドライバが自分のタッチパッドを処理しているかどうかを確認する方法を知りたいです。
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
おそらくそれらのどれもそうしなかったでしょう。たとえば、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
最初の結果はあなたが要求した実際のドライバです。ここでは、2番目のファイルを介してX.orgにロードされます。
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
EndSection
そしてこの行は:
MatchDevicePath "/dev/input/event*"
物理デバイスとドライバに関連付けられています。あなたは助言するかもしれません。この人はどうやってそのように確信できますか?以前に表示された出力から特定のid=12
Synaptic TouchPadに関連付けられているデバイスを表示するには、このコマンドを使用します。xinput --list
$ xinput --list-props 12 | grep "Device Node"
Device Node (251): "/dev/input/event4"
答え2
$ cat /var/log/Xorg.0.log | grep "input driver"
私のラップトップには次のように表示されます。
...
[ 9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...