我有一个 USB 触摸屏连接到我的硬件设置,但使用时cat /proc/bus/input/devices
为我提供了同一设备的两个条目:
I: Bus=0003 Vendor=2965 Product=5023 Version=0110
N: Name="Kortek Kortek Touch"
P: Phys=usb-0000:00:14.0-3.4/input2
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.2/0003:2965:5023.0006/input/input7
U: Uniq=S20131028
H: Handlers=mouse1 event7 js0
B: PROP=0
B: EV=1b
B: KEY=30000 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=2965 Product=5023 Version=0110
N: Name="Kortek Kortek Touch"
P: Phys=usb-0000:00:14.0-3.4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.0/0003:2965:5023.0004/input/input13
U: Uniq=S20131028
H: Handlers=mouse2 event13
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=a608000 3
为什么同一个设备有两个不同的条目?
答案1
我想我找到了这背后的原因。
同一设备作为具有不同接口的两个设备暴露给 USB 子系统。
就像在条目中一样Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.2/0003:2965:5023.0006/input/input7
,设备公开了硬件的接口 2,从3-3.4:1.2
最后一位数字所在的字符串可以看出InterfaceNumber
。
如果我们查看 的输出cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.2/0003:2965:5023.0006/input/input7/device
,我们可以看到DRIVER=hid-generic
该硬件接口将此设备公开为 USBHID 通用设备。
然而,对于如 中所示的接口为 0 的其他条目/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.0/0003:2965:5023.0004/input/input13
, 的输出cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.0/0003:2965:5023.0004/input/input13/device
显示,DRIVER=hid-multitouch
这意味着硬件的此接口将其公开为 HID MULTITOUCH。
因此,这两个条目适用于相同的硬件。