tslib移植
准备工作
- 开发板有uboot
- 搭建tftp服务器,开发板可通过服务器下载内核并启动;
- nfs工具,开发板可通过nfs工具加载到主机(电脑)的rootfs;
- 触摸屏可使用,在cat触摸屏设备,有触摸动作时能获取到反馈信息。
- 查看输入设备:ls /dev/input/event1
- 测试输入设备:cat /dev/input/event1
安装tslib
Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能。tslib本来是一个用于校正电阻触摸屏的工具,电容屏虽然不需要校正,但是qt基于了该库,所以即使电容触摸屏,我们要移植tslib。
- 下载tslib-1.4(网上较多,此处不提供下载链接);
- 解压tslib源码 tar -xvf tslib-1.4.tar.gz
- 环境检测:进入到解压目录 ./autogen.sh
报错: ./autogen.sh: 4: ./autogen.sh: autoreconf: not found 是因为该工具需要依赖3个软件autoconf、automake 、libtool而ubuntu中默认没有,则需要安装,电脑联网,输入sudo apt-get install autoconf automake libtool安装工具;
- 输入指令echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache
- 创建一个目录做tslib安装目录: mkdir /opt/tslib
- 生成makefile并指定了一些配置如安装路径、安装工具等: ./configure --prefix=/opt/tslib --host=arm-linux --cache-file=arm-linux.cache
- 编译:make
- 安装:make install
部署到开发板
实际上我们刚刚在编译的时候已经设定了使用交叉编译工具链,编译的结果就是用于开发板。现在只需直接拷贝到开发板中即可。
- 将安装在opt目录下的tslib(动态库.so 、配置文件、bin文件)全部拷贝到开发板;
- 定义tslib运行需要的环境变量
export TSLIB_TSDEVICE=/dev/input/event1 //导出触摸设备路径
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