Answers:
对于Linux上的USB设备,可以使用:
lsusb -v | grep -e idProduct -e idVendor
仅对于ID:
grep . /sys/bus/usb/devices/*/id*
lsusb
用于/var/lib/usbutils/usb.ids
将ID转换为名称,我不知道Xorg是否会使用相同的源。
lsusb
通常不会显示产品名称。ManuelSchneid3r的答案对我来说效果最好,即:xinput list
。
使用获取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触摸屏”。
要获取xinput设备的供应商名称(或制造商),我们需要知道要查询的设备路径(也称为设备节点),然后询问udevadm info
。您可以通过列出设备的xinput属性并找到“设备节点”值来获取路径。
在前面的示例中id=10
,可以找到触摸屏的“设备节点”值(表示为),如下所示:
# xinput list-props 10 | grep 'Device Node'
Device Node (253): "/dev/input/event9"
现在,我们可以通过查看具有以上路径名的设备返回的属性值来获得xinput设备的Vendor Name(或Manufacturer):VENDOR
udevadm info
# udevadm info --query=property --name=/dev/input/event9 | grep 'VENDOR='
ID_VENDOR=ELAN
在上面的输出中,触摸屏的制造商或供应商名称将为“ ELAN”。
放在一起,我们可以创建一个新的XOrg配置InputClass
部分来匹配特定的设备供应商,产品或路径。使用我们之前的示例,本节与ELAN供应商生产的任何触摸屏产品相匹配:
Section "InputClass"
Identifier "elan touchscreen catchall"
MatchDevicePath "/dev/input/event*"
MatchProduct "Touchscreen"
MatchVendor "ELAN"
EndSection
xinput list
在一行中显示供应商名称和产品名称,仅用空格字符分隔。在我的情况下,它是TrulyErgonomic.com Truly Ergonomic电脑键盘,而不是Truly Ergonomic电脑键盘。但是MatchProduct
似乎可以同时使用以下字符串:供应商和产品名称(如所列出xinput list
)或仅产品名称(如所列出udevadm
)。
MatchProduct "Product Name"
与Stephane建议的输出不兼容lsusb -v | grep -e idProduct -e idVendor
。我刚刚测试过。
xinput list
输出适用于的正确字符串 MatchProduct
xinput list
列出供应商和产品?您知道如何算出哪个吗?
xinput list
显示产品名称,但不显示供应商名称。udevadm info
显示供应商名称,但不显示产品名称。
xinput list
在一行中同时显示供应商名称和产品名称,并用空格分隔。我需要使用@DanielK的答案来仅查找产品名称。但是udevadm
显示_而不是空格。较容易使用的可能是使用或找到的MatchUSBID。lsusb
lsusb -v
xinput list
,这是供应商和产品名称(至少在我的情况),并且只有产品名称(这是我从拿到udevadm
更换_用空格字符。
我发现以下命令对于查找与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
xinput list
正确显示它,但是供应商和产品名称一起显示在一行中。