GNU/Linux >> Znalost Linux >  >> Linux

Který ovladač ovládá můj touchpad?

Je pravděpodobné, že to nikdo z nich nedělá. Na mém systému, kde například používám Fedoru 19 a Thinkpad 410 s touchpadem Synaptic, nemám také žádný ovladač jádra.

$ lsmod|grep -iE "apple|cyapa|sermouse|synap|psmouse|vsxx|bcm"

Co se tedy o toto zařízení stará? Ve skutečnosti je to tento modul jádra:

$ lsmod|grep -iE "input"
uinput                 17672  0 

Pokud se chcete o tomto modulu dozvědět více, můžete použít 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
...

Jak se ukázalo, vstupní zařízení, jako jsou tato, jsou často řešena na vyšší úrovni, v tomto případě jsou skutečné ovladače implementovány na úrovni X11.

uinput je modul linuxového jádra, který umožňuje ovládat vstupní subsystém z uživatelské země. Lze jej použít k vytváření a manipulaci se vstupními zařízeními z aplikace. Vytvoří znakové zařízení v adresáři /dev/input. Zařízení je virtuální rozhraní, nepatří fyzickému zařízení.

ZDROJ: Začínáme s uinput:vstupní subsystém uživatelské úrovně

Tak kde mám ovladače touchpadu?

Jsou v subsystému X11. Zařízení můžete vidět pomocí xinput --list příkaz. Například zde jsou zařízení na mém notebooku 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)]

Všimněte si, že můj TouchPad se zobrazuje v tomto seznamu. Další informace o těchto zařízeních můžete zjistit prostřednictvím /proc , například:

$ 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
...

Dobře, ale kde je ovladač?

Pokud se ponoříte hlouběji, pokud váš systém používá touchpad Synaptic (o kterém se domnívám, že tvoří ~90 % všech touchpadů), můžete provést locate synaptics | grep xorg který by měl odhalit následující soubory:

$ 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

Prvním výsledkem je skutečný ovladač, na který se ptáte. Načte se do X.org prostřednictvím druhého souboru zde:

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
EndSection

A tento řádek:

        MatchDevicePath "/dev/input/event*"

Je to, co spojuje fyzická zařízení s tímto ovladačem. A nejspíš si říkáte, jak si ten chlap může být tak jistý? Pomocí tohoto příkazu zobrazíte zařízení spojené s mým zařízením Synaptic TouchPad pomocí id=12 z xinput --list výstup, který jsem ukázal dříve:

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

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

Na mém notebooku se zobrazuje:

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

Linux
  1. Zpracování chyb ve skriptech Bash

  2. Který shell používám?

  3. Který proces má Pid 0?

  1. Který Bash se provádí?

  2. Jaký grafický ovladač bych měl použít na Asus N43?

  3. Co je nepřerušitelný proces?

  1. Naučte se zpracování chyb Bash na příkladu

  2. JAVA_HOME adresář v Linuxu

  3. 2 tiskárny 1 fronta