कौन सा ड्राइवर मेरे टचपैड को संभाल रहा है?


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
विंगडसुबमरिन

यह सवाल मेरे पिछले एक पर एक अनुवर्ती था । ईमानदार होने के लिए ऐसा लगता है कि कोई भी लोड नहीं है।
केयू

जवाबों:


34

यह संभावना है कि उनमें से कोई भी ऐसा नहीं कर रहा है। उदाहरण के लिए मेरे सिस्टम पर जहां मैं फेडोरा 19 और एक थिंकपैड 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 एक लिनक्स कर्नेल मॉड्यूल है जो उपयोगकर्ता भूमि से इनपुट सबसिस्टम को संभालने की अनुमति देता है। इसका उपयोग किसी एप्लिकेशन से इनपुट डिवाइस बनाने और संभालने के लिए किया जा सकता है। यह / dev / इनपुट डायरेक्टरी में एक कैरेक्टर डिवाइस बनाता है। डिवाइस एक आभासी इंटरफ़ेस है, यह एक भौतिक उपकरण से संबंधित नहीं है।

स्रोत: uinput के साथ आरंभ करना: उपयोगकर्ता स्तर इनपुट सबसिस्टम

तो फिर मेरे टचपैड ड्राइवर कहां हैं?

वे X11 के सबसिस्टम में हैं। आप xinput --listकमांड का उपयोग करके डिवाइस देख सकते हैं । उदाहरण के लिए, यहाँ मेरे थिंकपैड लैपटॉप के उपकरण हैं:

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

बहुत ही रोचक! जैसा कि मैं synaptics के बजाय mtrack xorg ड्राइवर का उपयोग करता हूं, मैंने mtr पृष्ठ पर आपके द्वारा कही गई बात से कुछ अलग पाया : "किसी भी ट्रैकपैड का समर्थन करता है जिसका कर्नेल चालक slotted मल्टीटच प्रोटोकॉल का उपयोग करता है।" ऐसा लगता है कि xorg ड्राइवर को वास्तव में हार्डवेयर के साथ सीधा संपर्क नहीं मिलता है, लेकिन आपका उत्तर इस कथन के साथ टकराव लगता है ...
xuhdev

मुझे लगता है कि xorg इनपुट ड्राइवर डिवाइस ड्राइवर से अलग है। मैं भाग गया journalctl -b 0और फिर खोज की touchpad, और मेरे पास यह रेखा है (**) bcm5974: Applying InputClass "evdev touchpad catchall"। इस प्रकार मुझे पता bcm5974है कि डिवाइस ड्राइवर है
xuhdev

@xuhdev - xorg ड्राइवर को uinputकर्नेल मॉड्यूल (ड्राइवर) के माध्यम से गति डेटा मिल रहा है । इस कथन के बारे में क्या स्पष्ट नहीं है?
slm

@ एसएलएम मुझे लगता है कि ओपी डिवाइस चालक के बारे में पूछ रहा है, एक्सगॉर चालक नहीं। आपने जो दिखाया है वह xorg ड्राइवर है, जो मेरी समझ के अनुसार डिवाइस ड्राइवर से पूरी तरह से अलग है। uinputमॉड्यूल हार्डवेयर उपकरणों से संबंधित नहीं है; यह सही जानकारी प्रदान करने के लिए हार्डवेयर ड्राइवरों पर निर्भर करता है, और फिर यूनीपुट यूजरलैंड को एक एकीकृत इनपुट इंटरफ़ेस प्रदान करता है। यूजरलैंड सॉफ्टवेयर, इस मामले में synaptics xorg ड्राइवर, uinput का उपयोग करके xorg को कर्नेल (और उपयोगकर्ता इनपुट अप्रत्यक्ष रूप से) से जोड़ सकता है। कृपया मुझे सही करें अगर मैं गलत हूं, क्योंकि मैं इस क्षेत्र में विशेषज्ञ नहीं हूं ..
xhhdev

आपको hid_multitouchअपनी सूची में शामिल करना चाहिए । मुझे लगता है कि मेरी Dell परिशुद्धता पर टचपैड का प्रबंधन क्या है, और मेरे पास uinputमॉड्यूल लोड नहीं है ।
सेरिन

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

मेरे लैपटॉप पर यह दिखाया गया है:

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

2
cat | grep जैसा कि आप सीधे कमांड grepस्किप करने वाली फ़ाइलों पर उपयोग नहीं कर सकते cat
थॉमस

grep -e "input driver" /var/log/Xorg.0.log
मास्टरवॉक

journalctl -u display-manager | grep "input driver"और xinput --listमुझे यह पता लगाने में मदद की कि कर्नेल को फिर से जोड़ने पर मुझे "Elantech" कर्नेल विकल्प को सक्षम करने की आवश्यकता है।
user7610
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.