Xác định nhà sản xuất thiết bị và mô hình xinput?


15

Tôi đang cố gắng tìm nhà sản xuất thiết bị và kiểu bàn phím và bàn phím cảm ứng của mình để tôi có thể viết tệp cấu hình XOrg nhắm mục tiêu thông qua:

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

Làm cách nào tôi có thể khám phá tên sản phẩm và nhà cung cấp của thiết bị bằng công cụ CLI? Tôi muốn đóng xuống bàn di chuột và bàn phím Bluetooth để có thể điều chỉnh cấu hình Xorg.

Câu trả lời:


6

Đối với thiết bị USB trên Linux, bạn có thể sử dụng:

lsusb -v | grep -e idProduct -e idVendor

Chỉ dành cho ID:

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

lsusbsử dụng /var/lib/usbutils/usb.idsđể dịch id thành tên , tôi không biết liệu Xorg có sử dụng cùng một nguồn hay không.


Thật tuyệt vời, bây giờ tôi có thể thấy các thiết bị USB của mình, nhưng tôi thực sự cần tìm thông tin Bluetooth. Thông tin này chính xác là những gì tôi đang tìm kiếm, chỉ cần nó cho các thiết bị Bluetooth của tôi. Tôi có thể tìm thấy id nhà cung cấp hex trên thiết bị Bluetooth, nhưng dường như tôi không thể tìm thấy tên nhà cung cấp hoặc sản phẩm thực tế.
Naftuli Kay

-1 vì điều này không hoạt động đối với các thiết bị không phải là usb. Và nó thậm chí không hoạt động cho tất cả các thiết bị usb, vì lsusbthường không hiển thị tên sản phẩm. Câu trả lời của ManuelSchneid3r có hiệu quả nhất đối với tôi, đó là : xinput list.
erik

17

Tên sản phẩm thiết bị (Model)

Nhận tên sản phẩm (hoặc kiểu máy ) thiết bị xinput bằng cách sử dụng xinput list. Ví dụ đầu ra có thể trông giống như thế này:

# 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)]

Ở đầu ra trên, kiểu máy hoặc tên sản phẩm cho thiết bị Màn hình cảm ứng là "Màn hình cảm ứng ELAN".

Đường dẫn thiết bị (Nút)

Để có được Tên nhà cung cấp thiết bị xinput (hoặc nhà sản xuất ), chúng ta cần biết Đường dẫn thiết bị (còn gọi là Nút thiết bị) để truy vấn, sau đó hỏi udevadm info. Bạn có thể nhận đường dẫn bằng cách liệt kê các thuộc tính xinput cho một thiết bị và tìm giá trị 'Nút thiết bị'.

Từ ví dụ trước của chúng tôi, giá trị Nút thiết bị cho Màn hình cảm ứng, cho biết nó có id=10, có thể được tìm thấy như thế này:

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

Tên nhà cung cấp thiết bị (Nhà sản xuất)

Bây giờ chúng ta có thể lấy Tên nhà cung cấp thiết bị xinput (hoặc nhà sản xuất ) bằng cách xem giá trị của thuộc VENDORtính được trả về udevadm infocho thiết bị có tên đường dẫn được tìm thấy ở trên:

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

Trong đầu ra ở trên, tên nhà sản xuất hoặc nhà cung cấp cho Màn hình cảm ứng sẽ là "ELAN".

Cấu hình XOrg

Đặt tất cả lại với nhau, chúng ta có thể tạo Phần cấu hình XOrgInputClass mới để khớp với các nhà cung cấp thiết bị, sản phẩm hoặc đường dẫn cụ thể. Sử dụng các ví dụ trước của chúng tôi, phần này khớp với bất kỳ Sản phẩm màn hình cảm ứng nào do Nhà cung cấp ELAN sản xuất:

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

Nhờ @ Stéphane , @Daniel@ ManuelSchneid3r


1
xinput listhiển thị cả tên nhà cung cấp và sản phẩm trong một dòng, chỉ được phân tách bằng dấu cách. Trong trường hợp của tôi, đó là TrulyErgonom.com Bàn phím máy tính thực sự tiện dụng thay vì Bàn phím máy tính thực sự tiện dụng . Nhưng MatchProductdường như hoạt động với cả hai chuỗi: tên nhà cung cấp và sản phẩm (như được liệt kê bởi xinput list) hoặc chỉ tên sản phẩm (như được liệt kê bởi udevadm).
erik

1

MatchProduct "Product Name"không hoạt động với đầu ra của đề xuất của Stephane lsusb -v | grep -e idProduct -e idVendor. Tôi chỉ thử nó.

xinput list đưa ra chuỗi chính xác hoạt động với MatchProduct


xinput listliệt kê cả nhà cung cấp và sản phẩm với nhau? Bạn có biết làm thế nào để làm việc đó là?
Sparhawk

2
@Sparhawk xinput listhiển thị tên Sản phẩm nhưng không hiển thị tên Nhà cung cấp. udevadm infohiển thị tên Nhà cung cấp nhưng không hiển thị tên Sản phẩm.
Christopher

@Christopher Tôi thực sự không thể nhớ tại sao tôi muốn thông tin này, nhưng cảm ơn vì đã trả lời, và hy vọng nó có thể giúp đỡ người khác.
Sparhawk

@Christopher: Không, xinput listhiển thị cả tên nhà cung cấp và sản phẩm trong một dòng, cách nhau bởi một khoảng trắng. Tôi cần sử dụng câu trả lời của @ DanielK để chỉ tìm tên sản phẩm. Nhưng udevadmhiển thị _ thay vì khoảng trắng. Dễ sử dụng hơn có thể là MatchUSBID được tìm thấy cùng với lsusbhoặc lsusb -v.
erik

Ok, tôi vừa thử nó: Nó hoạt động cả với toàn bộ chuỗi từ xinput list, đó là tên nhà cung cấp và sản phẩm (ít nhất là trong trường hợp của tôi) và chỉ với tên sản phẩm (mà tôi nhận được từ việc udevadmthay thế _ chars bằng dấu cách.
erik

1

Tôi đã tìm thấy các lệnh sau hữu ích trong việc tìm kiếm mô hình / nhà cung cấp để sử dụng với cấu hình xorg.conf.

Từ https://bbs.archlinux.org/viewtopic.php?pid=753773 : (trong đó / dev / sdx được thay thế bằng đường dẫn thiết bị của thiết bị đích tức là / dev / input / mouse1)

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

Theo http://fedoraproject.org/wiki/Input_device_configuration :

udevadm info --export-db | grep ID_MODEL

Nhưng điều này liệt kê tên sản phẩm với _ thay vì dấu cách. Trong trường hợp của tôi, đó là Truly_Ergonom_Computer_Pal thay vì Bàn phím máy tính thực sự tiện dụng . xinput listhiển thị chính xác, nhưng tên nhà cung cấp và sản phẩm cùng nhau trong một dòng.
erik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.