मैं जानना चाहता हूं कि किस चालक को निर्धारित करना है (नीचे के लोगों में से) मेरे टचपैड को संभाल रहा है:
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
मैं जानना चाहता हूं कि किस चालक को निर्धारित करना है (नीचे के लोगों में से) मेरे टचपैड को संभाल रहा है:
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
जवाबों:
यह संभावना है कि उनमें से कोई भी ऐसा नहीं कर रहा है। उदाहरण के लिए मेरे सिस्टम पर जहां मैं फेडोरा 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"
journalctl -b 0
और फिर खोज की touchpad
, और मेरे पास यह रेखा है (**) bcm5974: Applying InputClass "evdev touchpad catchall"
। इस प्रकार मुझे पता bcm5974
है कि डिवाइस ड्राइवर है
uinput
कर्नेल मॉड्यूल (ड्राइवर) के माध्यम से गति डेटा मिल रहा है । इस कथन के बारे में क्या स्पष्ट नहीं है?
uinput
मॉड्यूल हार्डवेयर उपकरणों से संबंधित नहीं है; यह सही जानकारी प्रदान करने के लिए हार्डवेयर ड्राइवरों पर निर्भर करता है, और फिर यूनीपुट यूजरलैंड को एक एकीकृत इनपुट इंटरफ़ेस प्रदान करता है। यूजरलैंड सॉफ्टवेयर, इस मामले में synaptics xorg ड्राइवर, uinput का उपयोग करके xorg को कर्नेल (और उपयोगकर्ता इनपुट अप्रत्यक्ष रूप से) से जोड़ सकता है। कृपया मुझे सही करें अगर मैं गलत हूं, क्योंकि मैं इस क्षेत्र में विशेषज्ञ नहीं हूं ..
hid_multitouch
अपनी सूची में शामिल करना चाहिए । मुझे लगता है कि मेरी Dell परिशुद्धता पर टचपैड का प्रबंधन क्या है, और मेरे पास uinput
मॉड्यूल लोड नहीं है ।
$ cat /var/log/Xorg.0.log | grep "input driver"
मेरे लैपटॉप पर यह दिखाया गया है:
...
[ 9.054] (II) Using input driver 'synaptics' for 'Elan Touchpad'
...
cat | grep
जैसा कि आप सीधे कमांड grep
स्किप करने वाली फ़ाइलों पर उपयोग नहीं कर सकते cat
।
grep -e "input driver" /var/log/Xorg.0.log
journalctl -u display-manager | grep "input driver"
और xinput --list
मुझे यह पता लगाने में मदद की कि कर्नेल को फिर से जोड़ने पर मुझे "Elantech" कर्नेल विकल्प को सक्षम करने की आवश्यकता है।
lsmod
और देखें कि उनमें से कौन सा ड्राइवर लोड किया गया है। तुम भी अपने पढ़ने के लिए चाहते हो सकता है/var/log/Xorg.0.log
।