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

启用步骤

  1. 内核配置

    在内核编译配置文件(如.config)中启用:

    cpp 复制代码
    CONFIG_HID_MULTITOUCH=y  

    此配置需与CONFIG_INPUT_TOUCHSCREENCONFIG_TOUCHSCREEN_PROPERTIES等选项协同使用。 ‌

  2. 驱动适配

    若系统无法识别设备,需在内核的: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
  3. 编译与测试

    修改后需重新编译内核,并确保新驱动被正确加载。插入USB触摸屏后,可通过:ml-search-more[lsusb]{text="lsusb"}查看设备是否被识别,:ml-search-more[getevent]{text="getevent"}命令可验证输入设备状态

相关推荐
杨筱毅4 小时前
【Android】详细讲解ViewDragHelper的实现原理(不含代码版)
android
代码s贝多芬的音符11 小时前
ios android 小程序 蓝牙 CRC16_MODBUS
android·ios·小程序
2501_9159184114 小时前
iOS 混淆实战 多工具组合完成 IPA 混淆、加固与工程化落地(iOS混淆|IPA加固|无源码混淆|Ipa Guard|Swift Shield)
android·ios·小程序·https·uni-app·iphone·webview
雨白14 小时前
让协程更健壮:全面的异常处理策略
android·kotlin
Jeled15 小时前
AI: 生成Android自我学习路线规划与实战
android·学习·面试·kotlin
游戏开发爱好者816 小时前
如何系统化掌握 iOS 26 App 耗电管理,多工具协作
android·macos·ios·小程序·uni-app·cocoa·iphone
shaominjin12316 小时前
android在sd卡中可以mkdir, 但是不可以createNewFile
android·开发语言·python
AI科技星16 小时前
垂直原理:宇宙的沉默法则与万物运动的终极源头
android·服务器·数据结构·数据库·人工智能
用户416596736935518 小时前
Kotlin Coroutine Flow 深度解析:剖析 `flowOn` 与上下文切换的奥秘
android