tslib校准触摸屏

最近在弄触摸屏,在网上看了一些资料介绍tslib,于是下了一个tslib1.4进行试验。

编译过程

1.下载源码包后解压;

2.运行autogen.sh脚本文件,产生configure文件;

3../configure配置生成make;这里可以加一下选项,比如编译器(开发arm板要指定arm交叉编译器),安装目录等。我是在主机下的没有加任何选项。

4.make编译。这一切都非常顺利。

移植过程

1.我在主机下建立usr/tslib目录作为目标目录。

2.根据网上说建立一些目录,如etc,lib,plugins等;

3.拷贝需要的程序和库文件到指定目录;

测试过程

这个环节问答最多,折磨我好几天,主要症结如下。

首先在注册环境变量时问答最大的是不知道值是多少,网上提供的都不符合我的要求。

export TSLIB_ROOT=/usr/tslib ——tslib的根目录

export TSLIB_PLUGINDIR=$TSLIB_ROOT/plugins——插件目录

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib——添加运行的依赖库目录

export TSLIB_CONSOLEFILE=none——控制台设备

export TSLIB_FBDEVICE=/dev/fb0——framebuffer,这里我遇到了问题,内核不支持framebuffer,所以在dev目录下没有这个设备fb0,出现IOCTL错误,后来发现在grub启动的时候添加vga=0x317后竟然就把framebuffer打开了,fb0也出来了,这一点让我很兴奋。我用的是debian,红旗6本身就有的,这可能就是不同linux的区别。

export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal——校准后的坐标文件

export  TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf——tslib的配置文件。在这里有两个问题,首先就是测试程序申请块指针的大小是512字节,所在在ts.conf中有好多东西,要把没用的全部删掉,不然读这个文件会发生指针越界报段错误。另外留下来的module要符合硬件,我刚开始留下input模块机器说触摸屏不是我所能识别的,我猜是模块不对,后来换成ucb1x00就可以了。ts.conf如下:

module_raw ucb1x00

module pthres pmin=1

module variance delta=30

module dejitter delta=100

module linear

原始的ts.conf里module_raw有好多,并且都被注释掉了,所以刚开始报告raw module找不到,你要把需要的raw module恢复,并且把不用的全删掉,前面已经说了。至于哪个是对的,可能要自己去一个一个试了,我就试了input和ucb1x00。

export TSLIB_TSDEVICE=dev/input/mouse3——这是触摸屏设备,没有的话报错ts_open:no such directory。网上很多都是/dev/input/event0, /dev/input/ucb1x00等等,这些都不符合我的要求。后来通过在触摸屏插拔前后浏览/dev/input文件夹才发现是mouse3,当然从这一点可以看出每台机器的触摸屏设备文件都不一样,可以从/dev中的设备文件变化确定。

运行过程

最后运行$TSLIB_ROOT/tests/ts_calibrate,屏幕上出现了十字鼠标,用5点进行校准。

debian自带触摸屏硬件驱动是/lib/modules/2.6.26-2-686/kernel/drivers/input/touchscreen/usbtouchscreen.ko.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值