GNU/Linux >> Linux の 問題 >  >> Linux

タッチパッドを処理しているドライバーはどれですか?

彼らの誰もそれをしていない可能性があります。たとえば、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)]

私の TouchPad がこのリストに表示されることに注意してください。これらのデバイスに関する追加情報は /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*"

物理デバイスをこのドライバーに関連付けるものです。そして、あなたはおそらく自問自答しているでしょう、なぜこの男はそんなに確信を持っているのでしょうか?このコマンドを使用すると、指定した Synaptic TouchPad に関連付けられたデバイスが id=12 を使用して表示されます xinput --list から 以前に示した出力:

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

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

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

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

Linux
  1. Linuxにデバイスドライバーをインストールする方法

  2. 例でBashエラー処理を学ぶ

  3. どちらの端末が優れているか:BashとZsh

  1. どのプロセスにPid0がありますか?

  2. Ubuntu –どのX11ドライバーシステムが使用されているかを確認する方法は?

  3. Asus N43ではどのグラフィックスドライバーを使用すればよいですか?

  1. which:コマンドが見つかりません

  2. 中断できないプロセスとは何ですか?

  3. struct epoll_event によるメモリ処理