一、获取输入设备name。有一下两种方法
1、使用 cat /proc/bus/input/devices 可以查看 输入设备信息
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="generic ft5x06 (79)"
P: Phys=
S: Sysfs=/devices/platform/soc@0/30800000.bus/30a50000.i2c/i2c-3/3-0038/input/input4
U: Uniq=
H: Handlers=event3
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003
I: Bus=0003 Vendor=10c4 Product=8108 Version=0111
N: Name="YSPRINGTECH USB OPTICAL MOUSE"
P: Phys=usb-xhci-hcd.0.auto-1.2/input0
S: Sysfs=/devices/platform/32f10108.usb/38200000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.2/1-1.2:1.0/0003:10C4:8108.0005/input/input9
U: Uniq=
H: Handlers=event4
B: PROP=0
B: EV=17
B: KEY=70000 0 0 0 0
B: REL=903
B: MSC=10
其中 name 为 input_dev->name。Vendor=10c4 Product=8108 为usb设备id
2. cat /sys/class/input/event4/device/name
YSPRINGTECH USB OPTICAL MOUSE
二 、修改内核代码 drivers/input/mousedev.c 添加
if(dev->name == "YSPRINGTECH USB OPTICAL MOUSE")
return 0;
如果 name为YSPRINGTECH USB OPTICAL MOUSE 。退出不生成usb mouse
static int mousedev_connect(struct input_handler *handler,
struct input_dev *dev,
const struct input_device_id *id)
{
struct mousedev *mousedev;
int error;
if(dev->name == "YSPRINGTECH USB OPTICAL MOUSE")
return 0;
mousedev = mousedev_create(dev, handler, false);
if (IS_ERR(mousedev))
return PTR_ERR(mousedev);
error = mixdev_add_device(mousedev);
if (error) {
mousedev_destroy(mousedev);
return error;
}
return 0;
}