Визначте виробника та модель пристрою xinput?


15

Я намагаюся знайти виробника пристрою та модель моєї клавіатури та сенсорної панелі, щоб я міг написати конфігураційний файл XOrg, орієнтований на нього через:

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

Як я можу виявити назву продукту та постачальника пристрою за допомогою інструмента CLI? Я хотів би прибити мою сенсорну панель і клавіатуру Bluetooth, щоб можна було налаштувати конфігурацію Xorg.

Відповіді:


6

Для пристроїв USB в Linux можна використовувати:

lsusb -v | grep -e idProduct -e idVendor

Лише для ідентифікаторів:

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

lsusbвикористовує /var/lib/usbutils/usb.idsдля перекладу ідентифікаторів до імен , я не знаю, чи використовував би Xorg те саме джерело.


Дивовижно, зараз я бачу свої USB-пристрої, але мені фактично потрібно знайти інформацію про Bluetooth. Ця інформація саме те, що я шукаю, просто потрібна для моїх пристроїв Bluetooth. Я можу знайти шестигранний ідентифікатор постачальника на пристроях 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)]

У наведеному вище висновку назва моделі або продукту для пристрою з сенсорним екраном "ELAN Touchscreen".

Шлях пристрою (вузол)

Щоб отримати ім'я постачальника пристрою xinput (або виробника ), нам потрібно знати пристрій Path (також званий Device Node) для запиту, а потім запитувати udevadm info. Ви можете отримати шлях, перерахувавши властивості xinput для пристрою та знайшовши значення "Вузол пристрою".

З нашого попереднього прикладу значення Device Node для сенсорного екрану, яке говорить, що воно має 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

На виході вище, назва виробника чи виробника сенсорного екрану буде "ELAN".

Конфігурація XOrg

Збираю всі разом, ми можемо створити нову конфігурацію XOrg InputClassрозділ , щоб відповідати конкретним пристрою постачальників, продукти або шлях. Використовуючи наші попередні приклади, цей розділ відповідає будь-якому продукту з сенсорним екраном, який виробляє виробник 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 Воістину Ергономічна клавіатура комп’ютера, а не Ергономічна клавіатура комп'ютера . Але, MatchProductздається, працює з обома рядками: постачальником та назвою продукту (як перераховано xinput list) або лише з назвою продукту (як перераховано у udevadm).
erik

1

MatchProduct "Product Name"не працює з висновком Стефанової пропозиції 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

Наступні команди були корисними для пошуку моделі / постачальника для використання з конфігурацією 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 замість справді ергономічної клавіатури комп'ютера . xinput listпоказує це правильно, але назва продавця та продукту разом в одному рядку.
erik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.