1.在使用嵌入式设备时,我们通常使用的是裁剪的linux系统,所当我们需要增加某些功能时就要重新编译内核,然后将内核文件重新写到开发板中。
2.在做项目的时候需要使用usb接口电容触摸屏,但是发现插上后发现只显示usb设备,dev/input目录下并没有新的输入设备产生,所以需要增加内核功能。
3. 因为使用的电容屏是一个HID设备,编译内核需要勾选的内容如下:
Device Drivers --->
HID Devices --->
Special HIDDrivers --->
HID Multitouchpanels
4. 但是重新编译内核过后发现,插入电容触摸屏还是没有输入设备,查阅了好多资料终于发现,因为我用的内核版本较低,用的是三点几的版本,所以需要修改内核源文件,修改内容如下:
在内核源文件中找到hid-multitouch.c文件,在static const struct hid_device_id mt_devices[]结构体中添加
{ .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(VID, PID) },其中VID和PID可以用lsusb命令看到,或者直接插在windows电脑上,查看设备属性也会有两个十六进制数,把VID和PID替换掉保存重新编译linux内核就可以了。
5.再把屏幕插到开发板上,进入dev目录然后再进入input目录发现多了一个event1和mouse1设备,运行cat event1命令,点击屏幕就会出现一堆乱码,说明电容屏可以使用了。
6.对于不同开发板,可能还需要修改启动文件来加载输入设备,这就需要根据不同板子来修改了。