首页 > 技术知识 > 正文

tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因此这里先编译安装tslib,这样在后面编译Qt的时候才能打包编译进去。

1、确保以下软件已安装

sudo apt-get install automake sudo apt-get install autoconf sudo apt-get install libtool

2、下载源文件 http://download.csdn.net/source/3177449

3、解压,配置,安装

tar -zxvf tslib-1.4.tar.gz cd tslib ./autogen.sh echo “ac_cv_func_malloc_0_nonnull=yes” >arm-none-linux-gnueabi.cache ./configure –host=arm-none-linux-gnueabi –cache-file=arm-none-linux-gnueabi.cache –prefix=/usr/local/tslib1.4 make

(如遇到错误 undefined reference to `rpl_malloc,解决方法:将config.h.in中的#undef malloc屏蔽)

sudo make install

-prefix=/usr/local/tslib1.4是指定安装路径,其实包括下文的安装配置,路径都可以不指定,默认就是安装到/usr/local/目录下

4、打开/usr/local/tslib1.4/etc/ts.conf文件,搜索定位至#module_raw input,把行首的注释符去掉,但要注意行首不要留有空格,即文字是顶格的,不然之后会出现段错误(segmentational fault)。

5、移植至开发板

将安装路径下的整个tslib文件夹,下载至开发板上,我存放的路径为/usr/local

6、设置开发板环境变量

vi /etc/profile 添加如下内容:

export TSLIB_ROOT=/usr/local/tslib1.4

export TSLIB_TSDEVICE=/dev/input/event0

export QWS_MOUSE_PROTO=tslib:/dev/input/event0

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_CONSOLEDEVICE=none

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

说明:

TSLIB_TSDEVICE——触摸屏设备节点,这个要根据自己开发板的情况填写;

TSLIB_CONFFILE——配置文件名,就是前面复制并修改的ts.conf文件;

TSLIB_PLUGINDIR——插件目录

TSLIB_CALIBFILE——校准的数据文件pointercal。当执行ts_calibrate命令对触摸屏进行校正的时候,会生成一个校准文件,这样在以后使用触摸屏的时候,系统会根据该文件正确判断触点的位置。在这里我把pointercal文件放到temp目录下,因为对于我的系统来说,temp目录是可读写的。如果你选择的pointercal文件所在目录是不可写的,那么是不会生成pointercal文件的,即使执行了ts_calibrate命令,触点的位置也是错误的;

TSLIB_CONSOLEDEVICE——控制台设备文件名;

TSLIB_FBDEVICE——LCD设备节点,也要根据自己开发板的情况填写。

其中,TSLIB_ROOT更换为自己实际存放的路径;

另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下那个文件

7、#source /etc/profile,使配置生效

8、进入/usr/local/tslib1.4/bin,执行触摸屏校准和测试

./ts_calibrate 进行校验 ./ts_test 进行测试

猜你喜欢