相信大家移植的时候遇到到最多的问题就是找不到触摸设备而报错,然后一顿突突改了版本,噢,没用,哈哈,解决方法其实很简单,我猜你用的很可能是tslib1.4,多年入坑经验猜的,没事,解决方式来了,就三字,换高版本,这里以imx6ull开发板和tslib1.7(强力推荐)为例
首先下载tslib1.7版本,这里默认你安装了交叉编译工具链,没安装请先安装交叉编译工具链,
解压tslib1.7
unzip tslibrelease1.7.zip
进入解压的tslib文件夹并配置后make
cd tslibrelease1.7
./configure --prefix=/home/book/tslib --host=arm-buildroot-linux-gnueabihf
会在/home/book/tslib下生成编译后的目标,arm-buildroot-linux-gnueabihf交叉编译链前缀
make
哈哈是不是发现出错了,那就对了,别急,这是正常的
第三注释掉解压的tslib目录下的config.h的290行
vi config.h +290
将就看一下哈哈
第四make
第五make install
第六将虚拟机ubuntu~/tslib里的内容移植到开发板的/tslib下
第七vi /etc/profile的末尾加上下面内容,下面内容根据实际情况改
export TSLIB_ROOT=/tslib/lib
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONFFILE=/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CALIBFILE=/tslib/calibration
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tslib/lib
解释一下上面的环境变量:
TSLIB_ROOT 指明TSLIB库在开发板中的具体位置,要以实际情况为准。 TSLIB_TSDEVICE 指明开发板触摸屏的设备节点文件名称。 TSLIB_FBDEVICE 指明开发板LCD的设备节点文件名称。 TSLIB_CONFFILE 指明TSLIB库的配置文件的具体位置,要以实际情况为准。 TSLIB_PLUGINDIR 指明TSLIB库的插件模块的具体位置,要以实际情况为准。 TSLIB_CONSOLEDEVICE 指明终端名称,none意为让系统自动匹配。 TSLIB_CALIBFILE 指明校正文件的位置,该文件在执行ts_calibrate之后自动生成。 LD_LIBRARY_PATH 是开发板系统的动态库链接路径
恭喜,重启开发板,你成功了,可以进入/tslib/bin下的程序执行试一下啦