ไดร์เวอร์ตัวใดที่จัดการทัชแพดของฉัน


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นอกจากนี้คุณยังอาจต้องการอ่านของคุณ
wingedsubmariner

คำถามนี้คือการติดตามของฉันก่อนหน้านี้หนึ่ง ความซื่อสัตย์ดูเหมือนว่าไม่มีใครโหลด
banuy

คำตอบ:


34

มีโอกาสที่จะไม่มีใครทำเช่นนั้น ในระบบของฉันเช่นที่ฉันใช้ 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"

น่าสนใจมาก! เมื่อฉันใช้ไดรเวอร์ mtrack xorg แทน synaptics ฉันพบสิ่งที่แตกต่างจากที่คุณพูดในหน้า mtrack : "รองรับแทร็กแพดที่มีเคอร์เนลไดรเวอร์ใช้โปรโตคอลมัลติทัชแบบ slotted" ดูเหมือนว่าไดรเวอร์ xorg จะไม่ได้รับการติดต่อโดยตรงกับฮาร์ดแวร์ แต่คำตอบของคุณดูเหมือนจะขัดแย้งกับคำสั่งนี้ ...
xuhdev

ฉันคิดว่าไดรเวอร์อินพุต xorg แตกต่างจากไดรเวอร์อุปกรณ์ ฉันวิ่งjournalctl -b 0แล้วค้นหาtouchpadและฉันมีสาย(**) bcm5974: Applying InputClass "evdev touchpad catchall"นี้ ดังนั้นฉันรู้ว่าbcm5974เป็นไดรเวอร์อุปกรณ์
xuhdev

@xuhdev - ไดรเวอร์ xorg กำลังรับข้อมูลการเคลื่อนไหวผ่านuinputเคอร์เนลโมดูล (ไดรเวอร์) ข้อความนี้ไม่ชัดเจนเกี่ยวกับอะไร
slm

@slm ฉันคิดว่า OP กำลังถามเกี่ยวกับไดรเวอร์อุปกรณ์ไม่ใช่ไดรเวอร์ xorg สิ่งที่คุณได้แสดงให้เห็นคือไดรเวอร์ xorg ซึ่งความเข้าใจของฉันแตกต่างจากไดรเวอร์อุปกรณ์อย่างสิ้นเชิง uinputโมดูลไม่ได้เกี่ยวข้องโดยตรงกับอุปกรณ์ฮาร์ดแวร์ มันขึ้นอยู่กับไดรเวอร์ของฮาร์ดแวร์เพื่อให้ข้อมูลที่ถูกต้องและจากนั้น uinput จะจัดหาอินเทอร์เฟซอินพุตแบบรวมให้กับผู้ใช้ ซอฟต์แวร์ userland ในกรณีนี้ไดรเวอร์ synaptics xorg สามารถเชื่อมต่อ xorg กับเคอร์เนล (และอินพุตของผู้ใช้ทางอ้อม) โดยใช้ uinput โปรดแก้ไขให้ฉันด้วยถ้าฉันผิดเพราะฉันไม่ใช่ผู้เชี่ยวชาญในสาขานี้ ..
xuhdev

คุณควรรวมhid_multitouchไว้ในรายการของคุณ ฉันคิดว่านั่นคือสิ่งที่จัดการทัชแพดใน Dell Precision ของฉันและฉันไม่ได้uinputโหลดโมดูล
Cerin

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
masterwok

journalctl -u display-manager | grep "input driver"และxinput --listช่วยให้ฉันรู้ว่าฉันต้องเปิดใช้งานตัวเลือกเคอร์เนล "Elantech" เมื่อทำการคอมไพล์เคอร์เนลอีกครั้ง
user7610
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.