注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

deisp的博客

 
 
 

日志

 
 

qtopia移植:交叉编译qtopia-2.2.  

2008-02-12 17:08:37|  分类: qt移植 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

0

2007-10-13 09:27 来源: 作者: 网友评论 0 条 浏览次数 418

交叉编译qtopia-2.2.0(2.2.0版本里面集成了qt\tmake\qtopia)

解压qtopia-free-src-2.2.0.tar.gz,将其mv   qtopia-free-2.2.0  到

/root/host /qtopia-free-2.2.0

     cd /root/host/qtopia-free-2.2.0

     ./configure

     make

  得到本机运行版本uic 工具

解压qtopia-free-src-2.2.0.tar.gz 将其mv至 /root/2410s/qtopia-free-2.2.0

     cp /root/host/qtopia-free-2.2.0/qt2/bin/uic

/root/2410s/qtopia-free-2.2.0/qt2/bin/

如上所述arm-linux-gcc 已安装到/usr/local/arm/2.95.3/bin/,并设置$PATH变量

     export PATH=/usr/local/arm/2.95.3/bin:$PATH

     建立PDA安装目录

     mkdir /root/2410s/qtopia  (make install的安装目录)

     cd /root/2410s/qtopia-free-2.2.0

      修改文件

     vi /root/2410s/qtopia-free-2.2.0/qt2/src/kernel/qwsmouse_qws.cpp

     其中有3处/ect/pointercal 将其改为/mnt/yaffs/pointercal

     (这里因为我的根文件系统不可写,默认的/etc下不可写,所以在校准的时候把pointercal方到了/mnt/yaffs/下,这里按照你自己校准文件的存放路径改即可,如果是可读根文件系统,就不用修改了)

  修改文件

     vi /root/2410s/qtopia-free-2.2.0/qtopia/mkspecs/qws/linux-arm-g++/qmake.conf

     将此行

     QMAKE_LIBS_QT = -lqte

     修改为

     QMAKE_LIBS_QT = -lqte -lpng -lts -lz -luuid -ljpeg

  再:

     export QTDIR=/root/2410s/qtopia-free-2.2.0/qt2

     export QPEDIR=/root/2410s/qtopia-free-2.2.0/qtopia

     export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH

     export TMAKEDIR=/root/2410s/qtopia-free-2.2.0/tmake

     export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

****************

在/root/2410s/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h的末尾加上,这是使qt自己支持触摸屏,我也加了。

#define QT_QWS_IPAQ

#define QT_QWS_IPAQ_RAW

***********************8

     cp  /root/2410s/qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h

/root/2410s/qtopia-free-2.2.0/qt2/src/tools

     cd $QPEDIR/src/libraries/qtopia

     cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp

     cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h

开始configure了

     cd /root/2410s/qtopia-free-2.2.0

     ./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 8,16,24,32 -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -no-xft –release -I/root/2410s/arminclude -L/root/2410s/armlib -lpng -lts -lz –luuid -ljpeg" -qpe '-xplatform linux-arm-g++ -edition pda –displaysize 640x480 -I/root/2410s/arminclude -L/root/2410s/armlib

-prefix=/root/2410s/arm/qtopia'

  最后

     make

     make install

/root/2410s/下面有一个qtopia目录,是所需的文件

在/root/2410s/qtopia/lib/目录下面看到libqte.so libqte.so.2 libqte.so.2.3

libqte.so.2.3.12 这四个文件. 这是编译qte的库文件

     拷贝库与触摸屏校准/测试程序

     mkdir /root/2410s/qtopia/bin/tests

     mkdir /root/2410s/qtopia/lib/ts

     cp /root/2410s/tslib-1.3/tests/.libs/ts_* /root/2410s/qtopia/bin/tests

     cp /root/2410s/tslib-1.3/src/.libs/libts-0.0.so.0* /root/2410s/qtopia/lib

     cp /root/2410s/tslib-1.3/src/.libs/libts.so /root/2410s/qtopia/lib

     cp /root/2410s/tslib-1.3/plugins/.libs/*.so /root/2410s/qtopia/lib/ts

     cp /root/2410s/armlib/*.so* /root/2410s/qtopia/lib   //所有需要的支持的库文件

将qtopia复制到共享文件夹/root/share/

     cp -r /root/2410s/qtopia  /root/share/

 注意 ::::   把文件/root/2410s/tslib-1.3/etc/ts.conf文件拷贝到你的板子的/etc/目录下

cp /root/2410s/tslib-1.3/etc/ts.conf  /root/share

****************

首先要建立宿主机和开发板的通讯,假设本机的ip 地址为192.168.0.155 并且/root/share 为共享文件夹。

*******************

将/root/share设置为共享目录,可通过nfs来访问

配置NFS(网络文件系统)

使计算机系统通过网络访问其它计算机系统的目录和文件

远程访问控制

修改etc/export指定文件夹共享可访问

最后一行加上

/root/share 192.168.0.* (rw,sync,no_root_squash)

共享目录 可访问主机ip地址 访问方式

执行minicom

minicom

启动nfs服务(也可在一个文件中加上语句,不用每次敲击命令)

nfs /etc/rc.d/init.d/nfs  start

在开发板终端输入命令

ifconfig eth0 192.168.0.12 (如果开发板不能自动得到ip,需要设置)

mount –t nfs –o nolock 192.168.0.155:/root/share /mnt/nfs 将文件复制到开发板上

mount –t nfs –o nolock 192.168.0.155:/tmp/qtmp /tmp 

(因为qte在板上跑会创建/tmp/qtembedded-0,而我的根文件系统为只读文件系统cramfs,这句是为了使/tmp可写,要不然会出现错误Cannot create Qt/Embedded data directory: /tmp/qtembedded-0。如果是可写文件系统不用这一步。)

把文件/root/share/tslib/etc/ts.conf文件拷贝到你的板子的/mnt/yaffs目录下

    cp /mnt/nfs/ts.conf /mnt/yaffs

(默认是/etc目录下面的,我这里需要修改也是因为根文件系统不可写的缘故)

运行[以下操作在目标板上进行]:

     在你的板子上设置运行环境变量

export QTDIR=/mnt/nfs/qtopia

export QPEDIR=/mnt/nfs/qtopia

export QWS_MOUSE_PROTO=TPanel:/dev/touchscreen/0raw

export LD_LIBRARY_PATH=/mnt/nfs/qtopia/lib

export TSLIB_TSEVENTTYPE=H3600  对tslib中的设备结构体定义

export TSLIB_CONSOLEDEVICE=none tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty

export TSLIB_FBDEVICE=/dev/fb0  指定帧缓冲设备

(我的开发板上只有/dev/fb/0,所以做了一个链接  ln -s /dev/fb/0 /dev/fb0)

export TSLIB_TSDEVICE=/dev/touchscreen/0raw指定开发板对应触摸屏设备节点文件

export TSLIB_CALIBFILE=/mnt/yaffs/pointercal指定触摸屏校准文件pintercal的存放位置

(默认是在/etc下面,可写文件系统为/etc/pointercal)

export TSLIB_CONFFILE=/mnt/yaffs/ts.conf 指定TSLIB配置文件的位置

export TSLIB_PLUGINDIR=$QTDIR/lib/ts 指定触摸屏插件所在路径

***************************

如果为可写根文件系统,可以修改开发板/etc/profile文件,将这些环境变量写入,就不用每次设置了

*****************************

校准屏幕(5点校准)

     cd /mnt/nfs/qtopia/bin/tests

     ./ts_calibrate

    会陆续在LCD的4个角和中点出现光标,点击光标进行校准,生成校准文件

     再运行测试

     /ts_test

     这时LCD上出现光标,你的手指点哪里光标就会跟到哪里才成功

     (如果有问题,参考终端的打印信息,坐标的值)

需要时序信息。如果是可写rootsf,新建/urs/share文件夹,按照上面的方法,将本机/root/2410s/qtopia/etc/zoneinfo文件夹拷贝到/urs/share/下 如果是只读rootfs,要重新制作镜像文件烧写(还需要支持输入法文件,运行pda时会有warnig)

     运行PDA

      cd ..

     ./qpe

出现”Tap anywhere to continue”,然后进行qpe5点校准,进入qpe

  评论这张
 
阅读(165)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018