ok6410 linux3.8.3 tslib1.0安装移植

原文链接:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=357014&authorid=222350&page=3#comment_top
在进行Qt开发之前,建立Qt编译环境、移植Qt是一个至关重要的步骤。
1.1.1   tslib安装
OK6410开发平台在使用触摸屏时,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。tslib能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供一个统一的接口。
在官方网站下载tslib-1.0.tar.bz2,地址:http://sourceforge.net/projects/tslib.berlios/files/。
将下载完成之后的tslib-1.0.tar.bz2存放在宿主机任意一个目录下:
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib$ ls
tslib-1.0.tar.bz2
将其解压出来:
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib$ tar jxvftslib-1.0.tar.bz2
解压完成之后进入tslib-1.0目录,如下所示:
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib/tslib-1.0$ls
acinclude.m4     autogen.sh    COPYING  m4          plugins  tests
AUTHORS          ChangeLog     etc     Makefile.am  tslib.pc.in
autogen-clean.sh configure.ac  INSTALL  NEWS        src
安装autoconf、automake、libtool:
root@zhuzhaoqi-desktop:/home/zhuzhaoqi#apt-get installautoconf
root@zhuzhaoqi-desktop:/home/zhuzhaoqi#apt-get installautomake
root@zhuzhaoqi-desktop:/home/zhuzhaoqi#apt-get installlibtool
由于open函数的语法不符合最新的gcc,在/tests/ts_calibrate.c中加入open的第三个参数:
if ((calfile = getenv("TSLIB_CALIBFILE")) !=NULL) {
cal_fd= open (calfile, O_CREAT | O_RDWR,0777);
} else {
cal_fd= open ("/etc/pointercal", O_CREAT | O_RDWR,0777);
}
执行编译:
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib/tslib-1.0$./autogen.sh
……
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib/tslib-1.0$./configure --prefix=/usr/local/tslib-1.0/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes--enable-inputapi=no
……
--prefix=/usr/local/tslib-1.0/这是安装路径,进行编译、安装。
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib/tslib-1.0$make
……
zhuzhaoqi@zhuzhaoqi-desktop:~/Qt-4.8.4/tslib/tslib-1.0$sudomake install
安装完成之后在/usr/local/目录下有:
zhuzhaoqi@zhuzhaoqi-desktop:/usr/local$ ls
arm  etc    include lib  qwt-6.0.2      sbin  src
bin  games  info    man  qwt-6.0.2-arm  share   tslib-1.0
修改ts.conf:
zhuzhaoqi@zhuzhaoqi-desktop:/usr/local/tslib-1.0/etc$vim ts.conf
去掉module_rawinput前面的#,注意前面这个空格也得删除,如下:
# Uncomment if you wish to use the linux input layerevent interface
module_raw input
将/usr/local/tslib-1.0/目录下的所有文件拷贝到开发板,笔者是存放在usr/local/。如下:
zhuzhaoqi@zhuzhaoqi-desktop:/usr/local/tslib-1.0$ sudocp -r * /home/zhuzhaoqi/rootfs/usr/local/
在OK6410中设置tslib环境变量,在文件系统的/etc/profile中添加如下:
// 指定帧缓冲设备
export set TSLIB_FBDEVICE=/dev/fb0
// 指定触摸屏设备节点
export set TSLIB_TSDEVICE=/dev/input/event0  
// 指定TSLIB  配置文件的位置
export set TSLIB_CONFFILE=/usr/local/etc/ts.conf
// 指定触摸屏校准文件 pintercal  的存放位置
export set TSLIB_CALIBFILE=/etc/pointercal
// 指定触摸屏插件所在路径
export set TSLIB_PLUGINDIR=/usr/local/lib/ts
// 设定控制台设备为 none  ,否则默认为 /dev/tty 
export TSLIB_CONSOLEDEVICE=none   
在测试触摸屏之前,首先得保证在/dev目录下有触摸屏设备节点eventX:
[YJR@zhuzhaoqi]\# ls -l /dev/input/e*
crw-rw----    1 root     root     13,  64 Jan  1 08:00 /dev/input/event0
运行ts_calibrate:
[YJR@zhuzhaoqi]\# cd bin/
[YJR@zhuzhaoqi]\# ls
ts_calibrate ts_harvest    ts_print      ts_print_raw  ts_test
[YJR@zhuzhaoqi]\# ./ts_calibrate
运行/usr/local/bin中的ts_calibrate进行校准,成功的话会出现界面,并点击十字符号,完成后会生成/etc/pointercal文件,这便是触摸屏的校准配置文件。
或者可以写一个触摸屏校准脚本calibrate,存放在/bin目录下:
#!/bin/sh
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_TSEVENTTYPE=H3600
export TSLIB_CONSOLEDEVICE=none
export QWS_KEYBOARD="TTY:/dev/tty1"
if [ -c /dev/input/event0 ]; then
        if [ -e/etc/pointercal -a ! -s /etc/pointercal ] ; then
               rm /etc/pointercal
        fi
fi
export PATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH
exec /usr/local/tslib/bin/ts_calibrate  1>/dev/null 2>/dev/null
#exec /usr/local/tslib/bin/ts_test  1>/dev/null 2>/dev/null
执行calibrate:
[YJR@zhuzhaoqi]\# ./calibrate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值