usb触摸板会同时加载hid-generic.c和hid-multitouch.c驱动
[ 213.602561] usb 4-1: new full-speed USB device number 2 using ohci-platform
[ 213.834953] usb 4-1: New USB device found, idVendor=6615, idProduct=108c, bcdDevice= 1.30
[ 213.835048] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 213.835081] usb 4-1: Product: USB TouchScreen
[ 213.835108] usb 4-1: Manufacturer: Beijing IRTOUCHSYSTEMS Co.,Ltd.
[ 213.835136] usb 4-1: SerialNumber: 788B669E0753
[ 213.846822] input: Beijing IRTOUCHSYSTEMS Co.,Ltd. USB TouchScreen as /devices/platform/fd8c0000.usb/usb4/4-1/4-1:1.0/0003:6615:108C.0001/input/input4
[ 213.902890] hid-generic 0003:6615:108C.0001: input,hidraw0: USB HID v1.11 Mouse [Beijing IRTOUCHSYSTEMS Co.,Ltd. USB TouchScreen] on usb-fd8c0000.usb-1/input0
[ 213.914431] input: Beijing IRTOUCHSYSTEMS Co.,Ltd. USB TouchScreen as /devices/platform/fd8c0000.usb/usb4/4-1/4-1:1.1/0003:6615:108C.0002/input/input5
[ 213.971215] hid-multitouch 0003:6615:108C.0002: input,hiddev96,hidraw1: USB HID v1.11 Device [Beijing IRTOUCHSYSTEMS Co.,Ltd. USB TouchScreen] on usb-fd8c0000.usb-1/input1
我们只需要让其加载hid-multitouch.c驱动即可
evtest可以看到生成了event3和event4这2个输入事件
[root@ok3568:/]# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: rk805 pwrkey
/dev/input/event1: adc-keys
/dev/input/event2: rk-headset
/dev/input/event3: Beijing IRTOUCHSYSTEMS Co.,Ltd. USB TouchScreen
/dev/input/event4: Beijing IRTOUCHSYSTEMS Co.,Ltd. USB TouchScreen
lsusb查看usb触摸板的vid和pid
[root@ok3568:/]# lsusb
Bus 004 Device 002: ID 6615:108c
hid-generic.c驱动屏蔽掉该设备
diff --git a/drivers/hid/hid-generic.c b/drivers/hid/hid-generic.c
index 3b6eccbc2..2588e5a6b 100644
--- a/drivers/hid/hid-generic.c
+++ b/drivers/hid/hid-generic.c
@@ -53,6 +53,9 @@ static bool hid_generic_match(struct hid_device *hdev,
if (bus_for_each_drv(&hid_bus_type, NULL, hdev, __check_hid_generic))
return false;
+ if (hdev->vendor == 0x6615 && hdev->product == 0x108c)
+ return false;
+
return true;
}