zoukankan      html  css  js  c++  java
  • 移植tslib1.4至mini2440

    在移植tslib1.4至mini2440的过程中出现了一些问题,在解决问题的过程中也学到了不少东西。但是由于注意力不集中也导致了一些低级的错误,非常地浪费时间,以后在做事的时候必须集中注意力,宁愿慢一点都不要马马虎虎。

    开发环境:

    开发板:mini2440

    开发板的内核版本:linux2.6.32.2

    交叉编译器的版本:arm-linux-gcc4.4.3

    配置tslib1.4的步骤为:

    1.解压tslib-1.4.tar.gzcd tslib/

    2../autogen.sh

    3.echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

    4../configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no --prefix=/usr/local/tslib   //这里注意,严格写成/usr/local/tslib,如果你的NFS文件系统/usr下没有local这个目录,则创建一个,拷贝到开发板时也要一样的目录,否则:运行./ts_calibrate,会报not found的错误,红色字体为网络上的文章注释,没有尝试过换成其他的路径会不会发生错误。)

    5.make&make install(可能报错 ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'原因是在 tslib-1.4/config.h 中有一行定义 “#define malloc rpl_malloc”,直接注释掉这行定义即可,除非你自己实现了一个 malloc 版本。红色字体为网络上的文章注释,我在缺少第三步的情况下会出现这个问题,但是如果正确运行第三步并不会出现这个问题)。

    6.拷贝主机的/usr/local/tslib目录至开发板的/usr/local/tslib目录(实际就是拷贝tslib

    7.配置环境变量

     1 vi /etc/profile
     2 添加如下内容:
     3 export TSLIB_ROOT=/usr/local/tslib
     4 export TSLIB_TSDEVICE=/dev/event0 (你的开发板dev下的触摸屏设备节点文件) —>使用cat /dev/event0 ,然后点击触摸屏查看终端中是否出现乱码来判断这个设备节点是否链接的触摸驱动
     5 export TSLIB_CALIBFILE=/etc/pointercal
     6 export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
     7 export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
     8 export TSLIB_FBDEVICE=/dev/fb0
     9 export QWS_MOUSE_PROTO=tslib:/dev/event0
    10 export QWS_SIZE=240*320
    11 export QWS_DISPLAY=LinuxFB:mmWidth80:mmHeight80:0
    12 export QTDIR=/usr/local/Trolltech/Qt-4.8.5-arm
    13 export QT_QWS_FONTDIR=$QTDIR/lib/fonts
    14 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib:$QTDIR/lib:/lib

    我在移植的过程中碰到的最大问题出现在这个地方,一开始编辑profile文件的过程中出现错误生成了profile.bak(还是什么?具体后缀记不清了),导致profile文件看上去都正常且使用env命令打印出的环境变量也正常,但是运行测试程序的时候就是会出现No such file...的错误。将profile.bak删除再重新建立即可解决问题。

    8.修改配置文件

    vi /usr/local/tslib/etc/ts.conf 将”module_raw input“前的空格及#去掉。

    9.开发板重启,启动后运行命令: ts_calibrate,这个时候就可以进行触摸屏的校准了

    有些型号的开发板在运行测试程序时可能会出现:

    问题1.Couldnt load module input

        No raw modules loaded.

        ts_config: Success

    原因:/tslib/lib/ts/没有对应的input.so文件(为什么?)

    解决方法

    从文件rootfs_qtopia//usr/local/lib/ts文件夹中拷贝input.so到对应目录即可解决问题。

    解决办法(网络文章里的方法,没有去尝试)

    1. 将开发板附带光盘中的文件系统/rootfs_qtopia_qt4/usr/local/lib/ts文件夹中的friendlyarm-ts-input.so(这里各个开发板按照自己的型号选择)复制到NFS文件系统中的相应目录下

    2.  vi /usr/local/tslib/etc/ts.conf 

    将第一项module_raw input  ,其中input修改为friendlyarm-ts-input

    问题2.测试程序名:not found

    使用arm-linux-readlf -a 测试程序名 | grep lib来查看测试程序所依赖的库文件,使用find命令搜索并将相应的库文件拷贝到跟文件的lib目录下

  • 相关阅读:
    shell 自动登录 上传 下载
    用例设计----PICT&Allpairs
    已有实例 Oracle 下新增实例
    【原创】安卓兼容性测试
    【原创】某版本性能测试
    【原创】Jmeter正则表达式提取json中多个关联值
    【转】四种常见的 POST 提交数据方式
    rfw使用接口库测试--FAIL : UnicodeEncodeError: 'ascii' codec can't encode characters in position
    【原创】Robotframework 简介
    java学习笔记_内存分析
  • 原文地址:https://www.cnblogs.com/blackeyes/p/5097471.html
Copyright © 2011-2022 走看看