ตรวจสอบผู้ผลิตอุปกรณ์และรุ่น xinput หรือไม่


15

ฉันพยายามค้นหาผู้ผลิตอุปกรณ์และรุ่นของแป้นพิมพ์และทัชแพดของฉันดังนั้นฉันจึงสามารถเขียนไฟล์กำหนดค่า XOrg ที่กำหนดเป้าหมายไว้ผ่าน:

Section "InputClass"
    Identifier "touchpad"
    MatchIsTouchpad "on"
    Driver "synaptics"
    MatchProduct "Product Name"
    MatchVendor "Vendor Name"
EndSection

ฉันจะค้นพบผลิตภัณฑ์และชื่อผู้จำหน่ายอุปกรณ์โดยใช้เครื่องมือ CLI ได้อย่างไร ฉันต้องการตอกย้ำทัชแพดและแป้นพิมพ์บลูทู ธ ของฉันเพื่อให้สามารถปรับแต่งค่า Xorg ได้

คำตอบ:


6

สำหรับอุปกรณ์ USB บน Linux คุณสามารถใช้:

lsusb -v | grep -e idProduct -e idVendor

สำหรับ ID เท่านั้น:

grep . /sys/bus/usb/devices/*/id*

lsusbใช้/var/lib/usbutils/usb.idsในการแปลรหัสเป็นชื่อฉันไม่รู้ว่า Xorg จะใช้แหล่งข้อมูลเดียวกันหรือไม่


เยี่ยมมากตอนนี้ฉันเห็นอุปกรณ์ USB ของฉันแล้ว แต่ฉันต้องการค้นหาข้อมูลบลูทู ธ ข้อมูลนี้เป็นสิ่งที่ฉันต้องการเพียงแค่ใช้กับอุปกรณ์บลูทู ธ ของฉัน ฉันสามารถหารหัสผู้ขายฐานสิบหกบนอุปกรณ์ Bluetooth ได้ แต่ฉันไม่พบชื่อผู้จำหน่ายหรือผลิตภัณฑ์ที่แท้จริง
Naftuli Kay

-1 เพราะสิ่งนี้ไม่ได้ผลสำหรับอุปกรณ์ที่ไม่ใช่ usb และมันยังใช้ไม่ได้กับอุปกรณ์ usb ทั้งหมดเพราะlsusbมักจะไม่แสดงชื่อผลิตภัณฑ์ คำตอบของ ManuelSchneid3r ทำงานได้ดีที่สุดสำหรับฉันนั่นคือ: xinput list.
erik

17

ชื่อผลิตภัณฑ์อุปกรณ์ (รุ่น)

ได้รับอุปกรณ์ XInput ชื่อสินค้า (หรือรุ่น ) xinput listโดยใช้ ตัวอย่างผลลัพธ์อาจมีลักษณะเช่นนี้:

# xinput list
⎡ Virtual core pointer                      id=2  [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4  [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=10 [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13 [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless        id=16 [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)]
    ↳ AT Translated Set 2 keyboard              id=12 [slave  keyboard (3)]

ในผลลัพธ์ข้างต้นรุ่นหรือชื่อผลิตภัณฑ์สำหรับอุปกรณ์ Touchscreen คือ "ELAN Touchscreen"

เส้นทางอุปกรณ์ (โหนด)

ที่จะได้รับอุปกรณ์ XInput ผู้ขายชื่อ (หรือผู้ผลิต ) เราจำเป็นต้องรู้เส้นทางอุปกรณ์ (เรียกว่าอุปกรณ์ Node) udevadm infoเพื่อสอบถามและขอให้ คุณสามารถหาพา ธ ได้โดยแสดงคุณสมบัติ xinput สำหรับอุปกรณ์และค้นหาค่า 'Device Node'

จากตัวอย่างก่อนหน้านี้ของเราค่าของ Device Node สำหรับ Touchscreen ซึ่งระบุว่ามีอยู่id=10สามารถพบได้ดังนี้:

# xinput list-props 10 | grep 'Device Node'
    Device Node (253):    "/dev/input/event9"

ชื่อผู้จำหน่ายอุปกรณ์ (ผู้ผลิต)

ตอนนี้เราสามารถรับชื่อผู้ขายอุปกรณ์ xinput (หรือผู้ผลิต ) โดยดูที่ค่าของVENDORคุณสมบัติที่ส่งคืนโดยudevadm infoสำหรับอุปกรณ์ที่มีชื่อพา ธ ของเราที่พบด้านบน:

# udevadm info --query=property --name=/dev/input/event9 | grep 'VENDOR='
ID_VENDOR=ELAN

ในผลลัพธ์ด้านบนชื่อผู้ผลิตหรือผู้จำหน่ายสำหรับ Touchscreen จะเป็น "ELAN"

การกำหนดค่า XOrg

วางกันทั้งหมดเราสามารถสร้างใหม่การกำหนดค่า xorg InputClassมาตราเพื่อให้ตรงกับผู้ผลิตอุปกรณ์เฉพาะผลิตภัณฑ์หรือเส้นทาง ใช้ตัวอย่างก่อนหน้าของเราในส่วนนี้ตรงกับผลิตภัณฑ์ Touchscreen ใด ๆ ที่ผลิตโดยผู้ขาย ELAN:

Section "InputClass"
    Identifier "elan touchscreen catchall"
    MatchDevicePath "/dev/input/event*"
    MatchProduct "Touchscreen"
    MatchVendor "ELAN"
EndSection

ขอขอบคุณที่@ Stéphane , @ Danielและ@ ManuelSchneid3r


1
xinput listแสดงทั้งผู้ขายและชื่อผลิตภัณฑ์ในหนึ่งบรรทัดคั่นด้วยช่องว่างเท่านั้น ในกรณีของฉันมันเป็นTrulyErgonomic.com แท้จริงแป้นพิมพ์คอมพิวเตอร์ Ergonomicแทนแท้จริงแป้นพิมพ์คอมพิวเตอร์ Ergonomic แต่MatchProductดูเหมือนว่าจะทำงานกับทั้งสองสตริง: ผู้ขายและชื่อผลิตภัณฑ์ (ตามที่ระบุโดยxinput list) หรือชื่อผลิตภัณฑ์เท่านั้น (ตามที่ระบุไว้โดยudevadm)
erik

1

MatchProduct "Product Name" ไม่ทำงานกับผลลัพธ์ของคำแนะนำของ Stephane lsusb -v | grep -e idProduct -e idVendorไม่ได้ทำงานกับการส่งออกของข้อเสนอแนะของสเตฟานฉันเพิ่งทดสอบมัน

xinput list ส่งออกสตริงที่ถูกต้องที่ใช้งานได้กับ MatchProduct


ทำxinput listรายการทั้งผู้ขายและผลิตภัณฑ์ด้วยกันไหม คุณรู้วิธีการทำงานซึ่งเป็นที่?
Sparhawk

2
@Sparhawk xinput listแสดงชื่อผลิตภัณฑ์ แต่ไม่ใช่ชื่อผู้จัดจำหน่าย udevadm infoแสดงชื่อผู้ขาย แต่ไม่ใช่ชื่อผลิตภัณฑ์
Christopher

@ คริสโตเฟอร์ฉันจำไม่ได้ว่าทำไมฉันถึงต้องการข้อมูลนี้ แต่ขอบคุณที่ตอบกลับและหวังว่ามันจะช่วยคนอื่นได้
Sparhawk

@Christopher: ไม่xinput listแสดงทั้งผู้ขายและชื่อผลิตภัณฑ์ในหนึ่งบรรทัดคั่นด้วยช่องว่าง ฉันต้องการใช้คำตอบของ @ DanielK เพื่อค้นหาเฉพาะชื่อผลิตภัณฑ์ แต่udevadmแสดง_แทนช่องว่าง ง่ายต่อการใช้งานอาจจะMatchUSBIDพบกับหรือlsusb lsusb -v
erik

ตกลงฉันเพิ่งทดสอบ: มันทำงานได้กับทั้งสตริงจากxinput listซึ่งเป็นผู้ขายและชื่อผลิตภัณฑ์ (อย่างน้อยในกรณีของฉัน) และด้วยชื่อผลิตภัณฑ์เท่านั้น (ซึ่งฉันได้จากการudevadmแทนที่_ตัวอักษรด้วยช่องว่าง
erik

1

ฉันพบว่าคำสั่งต่อไปนี้มีประโยชน์ในการค้นหา model / supplier เพื่อใช้กับคอนฟิกูเรชัน xorg.conf

จากhttps://bbs.archlinux.org/viewtopic.php?pid=753773 : (โดยที่ / dev / sdx ถูกแทนที่ด้วยเส้นทางอุปกรณ์ของอุปกรณ์เป้าหมายเช่น / dev / input / mouse1)

udevadm info --query=all --path=$(udevadm info --query=path --name=/dev/sdx)

ตามที่http://fedoraproject.org/wiki/Input_device_configuration :

udevadm info --export-db | grep ID_MODEL

แต่จะแสดงชื่อผลิตภัณฑ์ด้วย_แทนช่องว่าง ในกรณีของฉันมันก็Truly_Ergonomic_Computer_Keyboardแทนแท้จริงแป้นพิมพ์คอมพิวเตอร์ Ergonomic xinput listแสดงอย่างถูกต้อง แต่ผู้ขายและชื่อผลิตภัณฑ์ร่วมกันในหนึ่งบรรทัด
erik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.