IMX6Q平台EETI eGTouch驱动移植全记录:从内核配置到tslib校准

张开发
2026/4/15 10:47:05 15 分钟阅读

分享文章

IMX6Q平台EETI eGTouch驱动移植全记录:从内核配置到tslib校准
IMX6Q平台EETI eGTouch驱动移植实战指南从内核适配到精准触控在嵌入式系统开发中触摸屏作为人机交互的核心组件其驱动稳定性直接影响用户体验。NXP的IMX6Q处理器凭借其强大的多媒体处理能力和丰富的外设接口成为工业控制、智能终端等领域的首选方案。本文将深入剖析EETI eGTouch驱动在IMX6Q平台上的完整移植流程涵盖内核配置、驱动安装、设备调试以及tslib校准等关键环节为开发者提供一套可复用的实战方案。1. 开发环境准备与内核配置1.1 硬件与软件基础配置在开始移植前需要确保开发环境满足以下要求硬件平台基于NXP IMX6Q的定制开发板如MYIMX6-EK314内核版本Linux 4.1.15需确认与官方驱动兼容性交叉编译工具链arm-linux-gnueabihf-gcc 4.9或更高版本调试工具USB转串口调试器、逻辑分析仪可选验证内核版本命令uname -a # 预期输出示例Linux myimx6ek314 4.1.15-myimx6-g5d588fa6-dirty #4 SMP PREEMPT Tue Nov 17 17:26:34 CST 2020 armv7l GNU/Linux1.2 内核关键配置项调整EETI eGTouch驱动依赖以下内核模块支持需在内核配置中确认make menuconfig必须启用的配置选项Device Drivers → Input device support → TouchscreensHID_MULTITOUCHy注意官方文档可能错误建议设为模块化Device Drivers → HID supportHIDRAWyUSB_HIDyHID_GENERICy注意配置完成后需重新编译内核并烧写到目标板建议保留.config备份以便后续问题排查。2. EETI驱动安装与系统集成2.1 驱动包获取与准备从EETI官网下载最新Linux驱动包如eGTouch_v2.5.9321.L-ma解压后目录结构通常包含eGTouch_v2.5.9321.L-ma/ ├── Documentation/ ├── Firmware/ ├── setup.sh ├── eGTouchARMhfnonX.tar.gz └── Patch/关键文件说明setup.sh自动化安装脚本eGTouchARMhfnonX.tar.gzARM架构预编译驱动二进制Patch/内核补丁文件视具体版本可能需要2.2 驱动安装流程详解执行安装脚本时需特别注意以下交互步骤chmod x setup.sh ./setup.sh安装过程中的关键选择接口类型选择根据硬件连接方式选择[2] USB多显示器支持除非特殊需求一般选择NTslib支持必须选择Y以启用校准功能控制器数量单点触控默认1典型安装日志片段(I) Found uinput at path /dev/uinput (I) Place eGTouch driver archive to /usr/local/eGTouchARMhfnonX. (I) Create eGTouch daemon shortcut in /usr/bin. (I) Append eGTouch daemon execution into /etc/rc.local.2.3 驱动加载验证安装完成后通过以下命令验证驱动状态ls /dev/input/ # 查看新增的input设备节点 cat /proc/bus/input/devices # 确认eGalax设备已识别正常输出应包含类似以下内容I: Bus0003 Vendor0eef Productc002 Version0111 N: NameeGalax Inc. eGalaxTouch P80H84 2094 v00_T1 k48_165 P: Physusb-ci_hdrc.1-1.2/input0 S: Sysfs/devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.2/1-1.2:1.0/0003:0EEF:C002.0001/input/input43. 触摸设备调试技巧3.1 内核日志级别调整为获取详细的调试信息可临时提高内核打印级别echo 8 4 1 7 /proc/sys/kernel/printk各参数含义参数位置作用推荐值1控制台日志级别7调试时可设为82默认消息级别43最低控制台级别14默认控制台级别73.2 原始输入数据捕获通过hexdump直接读取触摸事件hexdump /dev/input/event6 # eventX需根据实际设备号调整输出解析示例0000000 122f 5bac b7df 0000 0003 002f 0000 0000 0000010 122f 5bac b7df 0000 0003 0039 0000 00000003 0035X坐标0003 0036Y坐标0003 003a压力值3.3 常见问题排查指南问题1触摸无响应检查项USB设备是否被识别lsusb驱动是否加载ps aux | grep eGTouch输入设备权限ls -l /dev/input/event*问题2坐标偏移严重解决方案执行tslib校准检查LCD与触摸屏分辨率匹配问题3驱动崩溃收集信息内核日志dmesg核心转储文件需配置ulimit4. tslib校准与优化4.1 tslib编译与配置从GitHub获取最新tslib源码git clone https://github.com/libts/tslib cd tslib ./autogen.sh ./configure --hostarm-linux-gnueabihf --prefix/usr/local/tslib make make install关键配置文件/etc/ts.conf示例module_raw input module variance delta30 module dejitter delta100 module linear4.2 校准流程实战执行五点点校准export TSLIB_FBDEVICE/dev/fb0 export TSLIB_TSDEVICE/dev/input/event6 /usr/local/tslib/bin/ts_calibrate校准完成后生成/etc/pointercal文件内容格式-46 3440 -1527352 1976 -38 2162056 655364.3 触摸性能优化参数在/etc/ts.conf中调整以下参数可改善响应variance模块delta30降低噪声阈值dejitter模块delta100平滑轨迹linear模块启用坐标线性补偿实测参数对比参数组合延迟(ms)精度(px)适用场景delta30/10012±2常规操作delta20/808±3快速响应delta50/15018±1高精度绘图4.4 自动化集成方案将tslib环境变量加入启动脚本cat /etc/profile.d/tslib.sh EOF export TSLIB_CONSOLEDEVICEnone export TSLIB_FBDEVICE/dev/fb0 export TSLIB_TSDEVICE/dev/input/event6 export TSLIB_CALIBFILE/etc/pointercal export TSLIB_CONFFILE/etc/ts.conf export TSLIB_PLUGINDIR/usr/local/tslib/lib/ts EOF在Qt应用中集成tslib支持QApplication a(argc, argv); qputenv(QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS, rotate180:invertx); qputenv(QT_QPA_EGLFS_TSLIB, 1);

更多文章