tslib1.4移植(个人小结).doc_第1页
tslib1.4移植(个人小结).doc_第2页
tslib1.4移植(个人小结).doc_第3页
tslib1.4移植(个人小结).doc_第4页
tslib1.4移植(个人小结).doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tslib1.4移植(参照TX2440A的tslib移植)一、 说明l tslib版本:tslib-1.4l 交叉编译器版本:arm-linux-gcc 4.1.2l 操作系统平台:Linux Red Hat 9.0l 开发板平台:arm TX2440A二、 移植1、学习光盘/源码包中tslib1.4源码包,解压,进入tslib目录,执行#tar xzvf tslib1.4.gz #./autogen.sh出现错误:possible undefined macro: AS_HELP_STRING可能是因为系统自带的autoconf工具里面没有定义这个宏,查看一下autoconf的版本#autoconf V是2.57版的,在学习光盘/liunx工具平台有2.64版,复制解压,进入autoconf目录,执行#tar xzvf autoconf.gz#./configure又出现错误:no acceptable m4 could be found in $PATH原因是安装autoconf工具,需要GNU的m4工具,但是系统里没有这个工具,所以还要从网上下载,在/gnu/m4/找到m4-1.14.13.tar.bz2,下载完后,或者在学习光盘/linux工具平台中有,解压后进入m4-1.14.13目录,执行#./configure#make#make install安装完成后,再进入autoconf目录,执行#./configure#make#make install新安装的autoconf工具就把/usr/bin下的可执行程序覆盖了,然后执行#source /etc/profile使环境变量生效,再查看 autoconf版本,确保是2.64版。2、进入tslib目录,执行#./configure -prefix=/usr/local/tslib -host=arm-linux -target=arm-linux -enable-inputapi=no#make这时会出现一个错误:ts_test.o(.text 0x218): In function main: undefined reference to rpl_malloc查看一下源码,发现是ac_cv_func_malloc_0_nonnull引起了,那我们需要建一个cache文件,来欺骗configure,让它不检查这一项,执行#echo ac_cv_func_malloc_0_nonnull=yes mytslib.cache再执行#./configure -prefix=/usr/local/tslib -host=arm-linux -target=arm-linux -enable-inputapi=no -cache-file=mytslib.cache#make#make install这一步很重要。3 、安装完成后,把/usr/local/tslib目录下的所有内容拷贝到根文件系统(利用busybox制作的)的/usr/local/tslib目录下,修改tslib/etc/ts.conf文件,将第二行module_raw input的注释去掉。保留的内容如下:module_raw input /tslib从linux的输入设备读取数据时用到模块module pthres pmin=1/pthres为tslib提供触摸屏灵敏度门槛插件module variance delta=30/ variance为tslib提供触摸屏滤波算法插件module dejitter delta=100/ dejitter为tslib提供去噪算法插件module linear/ linear为tslib提供坐标变换插件4、设置环境变量脚本 tslib.sh(增加权chmod 777 tslib.sh) ,同时将tslib.sh复制根文件系统usr/bin#!bin/shexport TSLIB_ROOT=/usr/local/tslib/export TSLIB_TSDEVICE=/dev/event0/触摸屏设备文件名export TSLIB_CALIBFILE=/etc/pointercal/指定触摸屏校准文件export TSLIB_CONFILE=$TSLIB_ROOT/etc/ts.conf/指定tslib配置文件存放位置export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts /tslib需要加载模块所在目录export TSLIB_CONSOLEDEVICE=none /控制台设备文件名,tslib运行时控制台设备,这里是LCD,设定noneexport TSLIB_FBDEVICE=/dev/fb0 /指定帧缓冲设备export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib:$QTLIB/加载库的路径export QWS_SIZE=320*240/lcd的显示尺寸export QWS_MOUSE_PROTO=Tslib:/dev/event0export QWS_DISPLAY=LinuxFb:mmWidth35:mmHeight45:0ts_calibrate /系统开启时运行该触摸屏校正程序4、将根文件系统/usr/local/tslib/bin/ts_calibrate拷贝到/usr/bin下, #cp usr/local/tslib/bin/ts_calibrate usr/bin# chmod 777 usr/bin/ts_calibrate5、修改根文件系统的启动vi etc/init.d/rcs 增加tslib.sh&6、制作根文件系统 并烧录到开发板上。启动开发板,这个就是触摸屏校正程序,运行时,屏幕上会依次出现5个点,点击后会在/etc/目录下生成pointercal文件三、遇到问题1 终端显示:ts_open: No such file or directory分析ts_open找不到设备文件,分析源程序ts_calibrate int main()struct tsdev *ts;calibration cal;int cal_fd;char cal_buffer256;char *tsdevice = NULL;char *calfile = NULL;unsigned int i;signal(SIGSEGV, sig);signal(SIGINT, sig);signal(SIGTERM, sig);if( (tsdevice = getenv(TSLIB_TSDEVICE) != NULL ) /读取环境变量中值,根据终端提示,可知ts = ts_open(tsdevice,0);无法正常打开。对比得知TSLIB_TSDEVICE和export TSLIB_TSDVICE=/dev/event0。变量名不正确。低级错误。呵呵。总结:遇到问题时,逐步排查,进入源代码查看。ts = ts_open(tsdevice,0); else #ifdef USE_INPUT_APIts = ts_open(/dev/input/event0, 0);#elsets = ts_open(/dev/touchscreen/ucb1x00, 0);#endif /* USE_INPUT_API */2 /etc/init.d/rcS: line 18: tslib.sh: not found 检查根文件系统usr/bin/tslib.sh ,是不是脚本文件多了M 字符。(原因不详)一点心得。呵呵 vi usr/bin/tslib.sh 3、将tslib.sh&分别放在etc/init.d/rcs 和etc/profile 中,测试结果tslib.sh 都能正常运行。不存在etc/init.d/rcs异常情况。(但是在开发板终端检查env时,没有显示tslib.sh设置的)与网上说的不同。呵呵。网上说法如下:在你的开发板的/etc/profile文件里添加运行tslib的环境变量(一定要放到/etc/profile,我放到/etc/init.d/rcS里就没有作用,愿因是export只能在当前shell和它的子shell有用,不能影响登录的shell)# /etc/profilePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/arm/X11R6/binexport PATH export TSLIB_ROOT=/usr/localexport TSLIB_TSDEVICE=/dev/event0(你的开发板dev下的触摸屏设备节点文件)export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib(这句我注释掉的原因是:有一种说法是使用LD_LIBRARY_PATH这样设置不安全,我的做法是把路径添加到/etc/ld

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论