我的用minigui为平台开发的软件终于写的八八九九了,由于用的开源免费的版本,根本没什么人维护与技术支持,写这个软件真是一个痛苦的过程,遇到了很多问题。
其中一个很大的问题就是触摸屏的坐标映射不准确,必须进行校准。tslib就是一个开源的触摸屏校准工具。
这篇文章我只介绍编译与测试tslib,至于如何用tslib校准minigui的IAL接口,我还在做,等做好了,发上来分享。
1.首先下载一个tslib的源码,我下的是tslib-1.0的版本。
2.运行autogen.sh(注意我在redhat9.0上运行不了,因为没有libtool工具,大家可以自己去安装,由于我的虚拟机还有fedora8所以就可以编译过去了)。
3.做第2步骤的时候可能会报错,“ts_test.c.text+0x200): undefined reference to `rpl_malloc'”,最简单的方法就是把tslib-1.0\config.h中有一行定义“#define malloc rpl_malloc”,直接注释即可。
4.导出交叉编译工具:
export CC="/opt/host/armv4l/bin/arm-unkown-linux-gcc"
5.运行configure
#./configure --host=arm-linux --prefix=/home/tslib
--enable=inputapi=no(与你的触摸屏驱动有关)
如果失败说明你的automake工具没装或版本过低
6. #make
#makeinstall
7.这时会在/home/tslib下产生编译好的东东
首先我们修改etc下的tc.conf
选择一个驱动架构,我选择的第一个,把#号去掉
8.然后把tslib里面所有的内容拷贝到目标板中,这里我出了个大问题,搞的我半天时间,如果你通过NFS的话应该没问题,我是通过U盘拷下去的,因为U盘的文件系统是fat格式的,原来的link文件信息丢失
必须重新用指令完成
rm ./lib/libts.so (删除已经丢失信息的link)
rm ./lib/libts-0.0.so.0
ln -s libts-0.0.so.0.1.1 libts.so(重新link)
ln -s libts-0.0.so.0.1.1 libts-0.0.so.0
9.把tslib里面的文件分别拷贝到arm板子的相应位置
cp ./bin/* /bin
cp ./etc/* /etc
cp -af ./lib/* /lib
10. 在运行tslib的校准程序之前,必须设置相关的环境变量:
export TSLIB_TSDEVICE=/dev/touchscreen/0raw (我的触摸屏驱动)
export TSLIB_CONFFILE=/etc/ts.conf (其他都一样)
export TSLIB_PLUGINDIR=/lib/ts/
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=/lib/
11.运行:
#/bin/ts_test //看看准不准
#/bin/ts_calibrate //校准
#/bin/ts_test //是不是准了?
https://static.assets-stash.eet-china.com/album/old-resources/2009/10/23/cb66cca8-644e-4b10-8c19-989b5139e536.rar
文章评论(0条评论)
登录后参与讨论