我正在尝试查找键盘和触摸板的设备制造商和型号,以便我可以通过以下方式编写针对它的 XOrg 配置文件:
Section "InputClass"
Identifier "touchpad"
MatchIsTouchpad "on"
Driver "synaptics"
MatchProduct "Product Name"
MatchVendor "Vendor Name"
EndSection
如何使用 CLI 工具发现设备的产品和供应商名称?我想确定我的蓝牙触摸板和键盘,以便能够定制 Xorg 配置。
答案1
设备产品名称(型号)
获取 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 属性并查找“设备节点”值来获取路径。
从我们之前的示例中,触摸屏的设备节点值(表示它有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”。
X组织配置
把它们放在一起,我们可以创建一个新的XOrg 配置InputClass
部分匹配特定的设备供应商、产品或路径。使用我们之前的示例,此部分与 ELAN 供应商制造的任何触摸屏产品相匹配:
Section "InputClass"
Identifier "elan touchscreen catchall"
MatchDevicePath "/dev/input/event*"
MatchProduct "Touchscreen"
MatchVendor "ELAN"
EndSection
答案2
对于 Linux 上的 USB 设备,您可以使用:
lsusb -v | grep -e idProduct -e idVendor
仅针对 ID:
grep . /sys/bus/usb/devices/*/id*
lsusb
用于/var/lib/usbutils/usb.ids
翻译id到名字,我不知道Xorg是否会使用相同的源。
答案3
MatchProduct "Product Name"
不适用于 Stephane's suggest 的输出lsusb -v | grep -e idProduct -e idVendor
。我刚刚测试过。
xinput list
输出正确的字符串MatchProduct
答案4
我发现以下命令对于查找与 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