ฉันต้องการทราบวิธีการตรวจสอบว่าไดรเวอร์ใด (จากด้านล่าง) จัดการทัชแพดของฉัน:
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
คำตอบ:
มีโอกาสที่จะไม่มีใครทำเช่นนั้น ในระบบของฉันเช่นที่ฉันใช้ Fedora 19 และ Thinkpad 410 กับทัชแพด Synaptic ฉันไม่มีไดรเวอร์เคอร์เนลเช่นกัน
$ 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 directory อุปกรณ์ดังกล่าวเป็นอินเทอร์เฟซเสมือนไม่ใช่อุปกรณ์ทางกายภาพ
แหล่งที่มา: เริ่มต้นด้วย 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
ผลลัพธ์แรกมีไดรเวอร์ที่คุณถามเกี่ยวกับ มันถูกโหลดเข้าสู่ 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"
journalctl -b 0
แล้วค้นหาtouchpad
และฉันมีสาย(**) bcm5974: Applying InputClass "evdev touchpad catchall"
นี้ ดังนั้นฉันรู้ว่าbcm5974
เป็นไดรเวอร์อุปกรณ์
uinput
เคอร์เนลโมดูล (ไดรเวอร์) ข้อความนี้ไม่ชัดเจนเกี่ยวกับอะไร
uinput
โมดูลไม่ได้เกี่ยวข้องโดยตรงกับอุปกรณ์ฮาร์ดแวร์ มันขึ้นอยู่กับไดรเวอร์ของฮาร์ดแวร์เพื่อให้ข้อมูลที่ถูกต้องและจากนั้น uinput จะจัดหาอินเทอร์เฟซอินพุตแบบรวมให้กับผู้ใช้ ซอฟต์แวร์ userland ในกรณีนี้ไดรเวอร์ synaptics xorg สามารถเชื่อมต่อ xorg กับเคอร์เนล (และอินพุตของผู้ใช้ทางอ้อม) โดยใช้ uinput โปรดแก้ไขให้ฉันด้วยถ้าฉันผิดเพราะฉันไม่ใช่ผู้เชี่ยวชาญในสาขานี้ ..
hid_multitouch
ไว้ในรายการของคุณ ฉันคิดว่านั่นคือสิ่งที่จัดการทัชแพดใน Dell Precision ของฉันและฉันไม่ได้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
นอกจากนี้คุณยังอาจต้องการอ่านของคุณ