嵌入式Linux2.6常见开源工程的移植(一)

时间:2013-08-23 12:15来源:凌阳教育 作者:sunplusedu 点击:
    第一:tslib1.0移植
 
    移植QT需要tslib 触摸屏校正程序的支持,下面我们进行tslib1.0版本的编译、移植讲解
    下载地址: http://www.rayfile.com/zh-cn/files/a01f838a-c1bb-11e0-aaa6-0015c55db73d/
    #tar  zxvf  tslib-1.0.tar.bz2
    1、生成.configure文件
    ./autogen.sh
    2、指定交叉编译器及配置脚本
    #CC=arm-linux-gcc    //选择交叉编译器
    #./configure--host=arm-linux --prefix=$PWD/../tslib1.0_target  --enable-inputapi=no
    //在当前路径的前一级目录建立目标文件夹
    #exportPLUGIN_DIR=$PWD/plugins
    3.编译
    在tslib-1.0\config.h中有一行定义“#define malloc rpl_malloc”,直接注释
    #make
    #make install
    则会在与当前目录平级的文件夹下建立tslib_target文件夹,里面包含bin/ etc/ include/ lib/ 等几个文件夹.
    3、移植到开发板上
    1)在开发板的usr/目录下建立文件夹tslib,将上述四个文件夹拷贝到tslib目录下
    #cd    /usr/
    #mkdir /usr/tslib
    #cp    tslib_target/*  /usr/tslib  -r
    2)修改/usr/tslib/etc/ts.conf将第一句话的屏蔽去掉
    #module_raw input
    改为
    module_raw input (注意前面不要有空格)
    3)修改开发板 /etc目录下/profile 文件,添加以下启动脚本并运行
    #vi /etc /profile
    export T_ROOT=/usr/tslib                              #目录
    exportPATH=$PATH:$T_ROOT/bin                          #可执行程序目录加入环境变量
    exportLD_LIBRARY_PATH=/lib:/lib:/usr/lib:$T_ROOT/lib  #库文件目录
    export TSLIB_CONSOLEDEVICE=none
    export TSLIB_FBDEVICE=/dev/fb0                        #framebuffer设备文件
    export TSLIB_TSDEVICE=/dev/event0                     #触摸屏设备文件
    export TSLIB_CALIBFILE=/etc/pointercal                #指定触摸屏校准文件pintercal的存放位置
    export TSLIB_CONFFILE=$T_ROOT/etc /ts.conf             #tslib模块配置文件
    export TSLIB_PLUGINDIR=$T_ROOT/lib/ts/                #tslib插件库目录
    echo "ts init success!"
    4、使用与测试
    1)ts_calibrate
    执行后,屏幕上出现5个点,依次点击进行校准,校准完毕后,在/etc下会产生pointercal文件,供其它程序使用,ts_calibrate是一个应用程序,在屏幕上画几个按钮,将用户点击后从ts驱动获得的数据和屏上的坐标位置通过一套算法来获得校准数据写到一个校准文件里
    2)ts_print        将屏幕坐标打印出来
    横坐标 纵坐标
    1796351007.320859:    156    116   500   按下
    1796351007.355145:    156    116     0   抬起
    3)ts_print_raw    将屏幕坐标的原始数据打印出来
    1796350964.530867:    216   865      1  按下
    1796350989.946831:      0     0      0  抬起
    4)ts_test检测一下校正结果,如果touch的时候,十字光标随着手指移动
    5、常见错误的解答
    1)
    在make的过程提示以下错误解决:
    libtool:link: only absolute run-paths areallowed
    忘记指定环境变量:exportPLUGIN_DIR=$PWD/plugins
    2)
    ts_config: Success
    追查后应该是在打开ts_config中出现了错误
    tslib插件库目录 没有指定对
    exportTSLIB_PLUGINDIR=$T_ROOT/share/ts/plugins/     #tslib插件库目录
    3)
    ts_open:Inappropriate ioctol for device
    自己板子的触摸屏驱动不支持ioctl操作
    .configure 时加上 --enable-inputapi=no 参数
    4)
    ./ts_calibrate: error while loading shared libraries: libts-0.0.so.0: cannotopen shared object file: Error 40
    ./ts_calibrate: error while loading shared libraries: libts-0.0.so.0: cannotope
    n shared object file: No such file or directory
    解决办法:
    #echo $LD_LIBRARY_PATH  //查看lib路径,
    #export LD_LIBRARY_PATH=$T_ROOT/lib
    5)
    ts_open: No such file or directory
    解决办法:
    #export TSLIB_TSDEVICE=/dev/input/event0   //触摸屏设备路径
    6)
    Couldnt open tslib config file: No such file or directory ts_config: Illegalseek
    解决办法:
    #export TSLIB_CONFFILE=$T_ROOT/etc /ts.conf
    7)
    Couldnt load module pthres
    No raw modules loaded.
    ts_config: Success
    解决办法:
    #export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
    8)
    No raw modules loaded.
    Ts_config: No such file or directory
    解决办法:
    修改$T_ROOT/etc /ts.conf, 至少放开一个module_raw,并去掉前面空格
    
分享到:

凌阳教育嵌入式培训——全国唯一“原厂嵌入式培训”机构,全国唯一“按班公布学员就业去向”的诚信机构

关注我们:

全国免费咨询电话:156-0117-5697或010-62981113(转2824) 服务监督电话:010-62981113-2800

京ICP备09010168号  京公网安备11010802010586号

北京嵌入式培训中心:海淀区上地信息产业基地中黎科技园1号楼3层A段

Copyright © 2017 SunplusEdu Inc. All Rights Reserved