主题 : 关于tslib问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 7439
精华: 1
发帖: 16
金钱: 130 两
威望: 50 点
贡献值: 10 点
综合积分: 52 分
注册时间: 2009-07-15
最后登录: 2020-04-20
楼主  发表于: 2009-11-24 13:14

 关于tslib问题

管理提醒: 本帖被 kasim 执行加亮操作(2009-11-25)
从网上下载了一个tslib-1.3,编译通过,在运行ts_calibrate时,出现了下面的语句,大家帮我看看,问题可能出现在哪?

xres = 800, yres = 480
ts_read: Invalid argument  --就是这句出错了
级别: 新手上路
UID: 7439
精华: 1
发帖: 16
金钱: 130 两
威望: 50 点
贡献值: 10 点
综合积分: 52 分
注册时间: 2009-07-15
最后登录: 2020-04-20
1楼  发表于: 2009-11-24 18:19
搞了一下午的strace,终于.....还是编译出错,每个版本的出错都不尽相同,搞LINUX开发的全是天才啊,不是人做的事啊!
强烈要求版总做一个mini2440上的strace,给大家用,哈哈哈.
级别: 新手上路
UID: 7439
精华: 1
发帖: 16
金钱: 130 两
威望: 50 点
贡献值: 10 点
综合积分: 52 分
注册时间: 2009-07-15
最后登录: 2020-04-20
2楼  发表于: 2009-11-25 11:11
太感谢了,有了它,腰也不疼了,眼睛也不累了,睡觉也香了!
kasim ,
级别: 新手上路
UID: 7439
精华: 1
发帖: 16
金钱: 130 两
威望: 50 点
贡献值: 10 点
综合积分: 52 分
注册时间: 2009-07-15
最后登录: 2020-04-20
3楼  发表于: 2009-11-25 13:00
搞死我了,终于完成tslib了,有兴趣的还没有成功的,look一下下面的文章,再试吧

拷贝tslib-1.3.tar.bz2文件至/usr/local目录下
#tar -xjvf tslib-1.3.tar.bz2 --解压一下,会生成一个目录叫/usr/local/tslib-1.3
#export CC=arm-linux-gcc     --设定编译器
#./autogen.sh              
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
#mkdir /usr/local/tslibbuil  --建一个目录,我准备将编译好的文件全放在这个目录下面
#./configure --host=arm-linux  --prefix=/usr/local/tslibbuil  --cache-file=arm-linux.cache

下面将要修改一下文件,不然编译会出错
#gedit /usr/local/tslib-1.3/plugins/Makefile
找到下面的语句LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
将它改成LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`
注意`这个符号,不是单引号,而是键盘第二行第一个字母,就是键盘1左边那个,说明的够详细了吧
保存好后,再修改另一个文件
#gedit /usr/local/tslib-1.3/src/ts_read_raw.c
找到char *defaulttseventtype这个变量,改为
char *defaulttseventtype="H3600"
保存后,再修改最后一个文件就可以准备编译了
#gedit /usr/local/tslib-1.3/src/ts_config.c
找到int ts_config(struct tsdev *ts)这个函数
将最后返回值改一下,将return ret;改为 return 0;
#make
#make install

大约一分钟后/usr/local/tslibbuil这个目录下就有文件产生了,其中ts_calibrate是触模屏的校对程序,
ts_test是一个测试程序,它可以在终端中显示出坐标,以后不在QT上开发的,直接开发FrameBuffer的朋友可
以看ts_test.c这个源码了解触模屏的控制

程序是编译好了,但必须在开发板上再设置一些内容,方可运行
在你的开发板的/etc/profile文件里添加运行tslib的环境变量
export TSLIB_ROOT=/usr/local
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSEVENTTYPE=H3600
保存,重启

修改配置文件ts.conf,在/usr/local/etc目录下

module_raw input
module pthres
module variance delta=30
module dejitter delta=100
module linear

运行ts_calibrate试试吧
如果文件是通过ftp下载的,可能无法执行,可用下面的命令执行
#chmod -R 777 ts_calibrate


参考了http://www.aiothome.com上前辈的文章,还有kasim版主的帮忙,我是搞
了好久终于搞定了(我智商不高,信相大家都比我高出不少),大家分享一下,如果
不行(一般情况下都应该好用了),算你倒霉,网上看资料吧
还有一个法子,就是下载strace,这个东东不错,找问题就找strace