どのドライバーがタッチパッドを処理していますか?


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と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=12xinput --list出力から使用している特定のSynaptic TouchPadに関連付けられているデバイスが表示されます。

$ 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はユーザーランドへの統一された入力インターフェイスを提供します。ユーザーランドのソフトウェア、この場合はsynaptics xorgドライバーは、uinputを使用してxorgをカーネル(および間接的にユーザー入力)に接続できます。この分野の専門家ではないため、間違っている場合は修正してください。
xuhdev15年

hid_multitouchリストにも含める必要があります。Dell Precisionのタッチパッドを管理しているのはそれだと思いますuinput。モジュールがロードされていません。
セリン

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

私のラップトップでは次のように表示されます:

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

2
コマンドをスキップしてファイルでcat | grep 直接使用できるため、使用しないでください。grepcat
トーマス

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.