Android触屏TP驱动事件上报以及多点触摸
RK3288 11.0 USB 触屏,发现触摸时,是一个鼠标的光标在移动,应该是触屏驱动配置问题,导致触屏上报的是鼠标事件。
getevent打印信息
EV_REP是键盘重复按键控制,EV_MSC是按键的物理位置扫描码上报,而正常TP坐标事件应该是EV_ABS
https://blog.csdn.net/jlgcumt/article/details/106216398
参考了这个文章
配置了触屏的VID PID 对应的idc文件后,单点触摸没问题,多点触摸不支持,可能还是某个配置有问题。
随后看到了这个文章
https://blog.csdn.net/weixin_48671098/article/details/147985747
发现应该是多点触屏的配置项没有打开。
CONFIG_HID_MULTITOUCH
是Linux内核中用于启用HID多触点设备(如USB触摸屏)支持的配置选项。当使用标准HID协议的USB触摸屏时,需在内核配置中启用此选项并配合相关驱动配置。 12
启用步骤
-
内核配置
在内核编译配置文件(如.config
)中启用:CONFIG_HID_MULTITOUCH=y
此配置需与
CONFIG_INPUT_TOUCHSCREEN
、CONFIG_TOUCHSCREEN_PROPERTIES
等选项协同使用。 -
驱动适配
若系统无法识别设备,需在内核的:ml-search-more[hid-multitouch.c]{text="hid-multitouch.c"}
、:ml-search-more[hid-core.c]{text="hid-core.c"}
、:ml-search-more[hid-ids.h]{text="hid-ids.h"}
等文件中添加或修改以下内容:- 在
hid-ids.h
中定义设备的:ml-search-more[VID]{text="VID"}
(供应商ID)和:ml-search-more[PID]{text="PID"}
(产品ID)宏; - 在
hid-multitouch.c
中注册驱动模块,并添加对应的设备识别逻辑。 14
- 在
-
编译与测试
修改后需重新编译内核,并确保新驱动被正确加载。插入USB触摸屏后,可通过:ml-search-more[lsusb]{text="lsusb"}
查看设备是否被识别,:ml-search-more[getevent]{text="getevent"}
命令可验证输入设备状态