tslib移植到X210开发板

要想在开发板上使用QT第一步需要移植tslib,QT底层依赖于tslib。所以接下来记录下tslib的移植过程。

移植tslib之前要保证触摸屏驱动的fb驱动好用,然后最好通过nfs来挂载根文件系统,这样有利与后面测试和验证。

1.下载tslib库,这个网上资源很多,而且版本比较老,基本没有更新,使用最多的就是tslib1.4版本,所以也使用该版本移植。
解压:
tar -xvf tslib-1.4.tar.gz

2.配置

 cd tslib
 ./autogen.sh

此时报错./autogen.sh: 4: autoreconf: not found是因为系统中没有安装autoconf工具
解决办法:
sudo apt-get install autoconf automake libtool

echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache 
mkdir /opt/tslib           //最后tslib的安装目录
./configure --prefix=/opt/tslib --host=arm-linux --cache-file=arm-linux.cache  //配置相关

3.编译安装

 make
 make install

此时发现 /opt/tslib已经多了etc include bin lib这些目录,接下来将这些部署到我们的根文件系统中去。

将tslib整个拷贝到rootfs根目录下,删除不必要的文件,比如include文件夹,这个是编译时用的,现在不需要了,还有lib目录下的.a静态库文件也没用,使用动态库就行。
接下来需要导出相关的环境变量。将要导出的环境变量写到/etc/profile中,这样不必每次开机后手动导出。在/etc/profile文件最后添加如下:

export TSLIB_TSDEVICE=/dev/input/event2             //触摸屏的设备上报,要根据自己板子对应
export TSLIB_CALIBFILE=/tslib/etc/pointercal      //执行校准后自动生成的文件
export TSLIB_CONFFILE=/tslib/etc/ts.conf           //配置文件
export TSLIB_PLUGINDIR=/tslib/lib/ts       
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tslib/lib
export TS_INFO_FILE=/sys/class/input/input2/uevent     //相应的根据触摸屏的设备修改

至此tslib已经完全部署到我们的开发板上了。接下来就是测试了,在tslib/bin下面有几个可执行文件
./ts_calibrate 执行校准程序出错:
No raw modules loaded.
ts_config: No such file or directory
解决办法:
在etc/ts.conf中打开module raw input

然后继续./ts_calibrate 提示段错误还不行,上网查找发现刚才在etc/ts.conf中打开module raw input时去掉了注释但是前面有个空格导致执行出错(细心很重要。。。)
1、etc/ts.conf文件中的各个设置选项之前不能有空格
2、在pointercal对应的目录下,不要建立一个空的pointercal文件,因为会自动生成。

然后继续执行./ts_calibrate 还是出错,上查找资料发现是tslib和kernel的版本不匹配
解决办法:
在内核源码中将/include/linux/input.h中的版本
#define EV_VERSION 0x010001
改为
#define EV_VERSION 0x010000

最后在执行校准程序和测试程序都没有问题,一切正常,下一步移植QT到开发板。

发布了27 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_24622489/article/details/87777615