使用的IMX6ULLpro 移植tslib
1.第一次移植完之后在单板上报错为
原因:
在交叉编译tslib之前没额外设置交叉编译链,因为之前在用户配置文件中永久设置了arm-linux的交叉编译工具链,而现在安装的tslib是x86架构的。
解决:
清除前面编译的文件
在交叉编译tslib前额外设置
// 对于IMX6ULL,命令如下
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x
86_64_arm-linux-gnueabihf/bin
2.在解决第一个问题之后,移植tslib库到单板上执行测试文件后报错
原因:在tslib库的READ.md上有相关环境变量的介绍。
tslib依赖fb(LCD驱动)、input/event(触摸屏驱动)等,要保证开发板的相关驱动已移植好.
具体含义参照文章:tslib移植中环境变量编辑 - maxiongying - 博客园 (cnblogs.com)
解决:
进入单板/etc/profile添加触摸屏支持环境变量
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE=/dev/event1
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/lib/ts
//event fb 根据实际情况
勘误:这里我板子的fb是fb0
测试:先关闭IMX6ULL默认的qt gui 程序,在/etc/init.d找到板子的ui程序S99myirhmi2移除,并重启。
mv /etc/init.d/S99myirhmi2 /root
reboot
(1)ts_calibrate校准触摸屏
(2)ts_test_mt功能正常
参考文章:触摸屏tslib库交叉编译并移植ARM校准测试_曾哥电子设计的博客-CSDN博客
移植tslib时ts_setup: No such file or directory、ts_open: No such file or director_肿么阔以次兔兔的博客-CSDN博客
当晚继续踩坑.....
3.跟着视频自己写触摸屏测试应用程序后,上传Ubuntu编译提示错误:
原因:在之前把交叉编译工具链换成了x86的没改回来,头文件库文件也没有在arm-linux的工具链目录下
解决: 设置交叉编译工具链
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
将tslib的头文件,库文件放到arm-linux的工具链目录下,
cd tslib-1.21/tmp/
cp include/* -rf /home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/7.5.0/include
cp lib/* -rfd /home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/7.5.0/../../../../arm-buildroot-linux-gnueabihf/lib/
测试,成功