Mini2440移植qt-extended4.4.3

288 篇文章 0 订阅
171 篇文章 0 订阅

作者:embeddedman

转自:http://blog.csdn.net/embeddedman/article/details/7408599


因为项目需求,前段时间在Mini2440上移植了qt-extended4.4.3,现将移植过程简单的说下,希望对做相关的工作的朋友有帮助。

一、开发环境

  上位机:Fedora9.0

   交叉编译器版本:arm-linux-gcc4.4.3(友善之臂提供,在此说明下:arm-linux-gcc4.4.3或arm-linux-gcc4.4.2是支持arm9的,建议在arm9上移植不要使用友善之臂提供的arm-linux-gcc4.5(支持的是arm11的));

   网络文件系统目录:/opt/root_nfs/root_qtopia(大家根据自己的情况而定)

  开发板LCD版本:w35

  开发板bootloader:u-boot(嵌入式家园提供)

  开发板内核:uImage(嵌入式家园提供)

  根文件系统:root_qtopia(嵌入式家园提供)

 声明:bootloader、内核和根文件系统大家也可以直接使用友善之臂提供的。


二、交叉编译tslib1.4

  编译和运行qt-extended-4.4.3(Qtopia4),需要tslib库,该库是触摸屏校准时需要的库文件,如对触摸屏的数据进行过滤、去抖动等,QT的库会调用tslib的库文件。

 在此提示大家,安装Fedora时,最好是完全安装,不要缺省安装,因为编译tslib等时需要第三方库的支持。

1、解压tslib1.4.tar.gz

2、进入tslib目录:

[root@localhost /]# cd tslib/

3、设置环境变量、制定交叉编译器

#export PATH=/opt/toolchain/4.4.3/bin:$PATH
#export TOOLCHAIN=/opt/toolchain/4.4.3
#export TB_CC_PREFIX=arm-linux-
#export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux

4、运行tslib目录下的脚本

#./autogen.sh

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

5、配置

#./configure--host=arm-linux
--cache-file=arm-linux.cache
--enable-inputapi=no
PLUGIN_DIR=/usr/local/arm/tslib/plugins
-prefix=/usr/local/arm/tslib/build
-host=arm-linux
--cache-file=arm-linux.cache2>&1 | tee conf_log

这一行:-prefix=/usr/local/arm/tslib/build表示tslib安装的目录

最后一行将配置信息写入conf_log文件,方便大家检查错误

6、编译

#make2>&1|teemake_log
#makeinstall

7、成功后在/usr/local/arm/tslib出现build目录,进入相关的etc目录找到ts.conf滨修改,删除module_rawinput’前面的#号和空格,

并将build目录改为tslib(命令:[root@localhost tslib]# mv build tslib),所以现在tslib在pc机下目录为:/usr/local/arm/tslib/tslib,然后把tslib目录拷贝至网络文件系统中:/opt/root_nfs/root_qtopia/usr/local中


三、交叉编译qt-extended4.4.3

1、新建目录arm

[root@localhost /]# mkdir arm

2、拷贝qt-extended-opensource-src-4.4.3.tar.gz至arm目录

3、进入arm目录

[root@localhost /]# cd arm

为了实现一键编译,在此我编写一个脚本:build,内容如下:

#!/bin/bash

rm qt-extended-4.4.3 -fr
tar xvzf qt-extended-opensource-src-4.4.3.tar.gz

rm -fr builddir
mkdir builddir

#linux-arm-g++  
export PATH=/opt/toolchain/4.4.3/bin:$PATH
export TOOLCHAIN=/opt/toolchain/4.4.3
export TB_CC_PREFIX=arm-linux-
#export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi


QTOPIA_PREFIX_DIR=/opt/Qtopia4.4.3
export QTOPIA_DEPOT_PATH=$PWD/qt-extended-4.4.3
export QPEDIR=$PWD/builddir
export LC_CTYPE="en_US"
export LANG="en_US"
export LANGUAGE="en_US"

cd $QPEDIR
echo yes | $QTOPIA_DEPOT_PATH/configure \
             -ui-type mobile \
             -xplatform linux-arm-g++ \
             -arch arm \
             -release \
             -clean \
             -prefix ${QTOPIA_PREFIX_DIR} \
             -sound-system oss \
             -build-qt \
             -no-sxe \
             -no-ssl \

             -no-v4l2 \                                                                                           
             -no-vpn \                                                                                            
             -no-phonon \                                                                                         
             -no-libamr \                                                                                         
             -dynamic-rotation \                                                                                  
             -mediaengines cruxus \                                                                               
             -remove-mediaengine gstreamer,helix \                                                                
             -pictureflow \                                                                                       
             -remove-module bluetooth,drm \                                                                       
             -no-dbus \                                                                                           
             -no-dbusipc \                                                                                        
             -add-displaysize 240x320 \                                                                           
             -extra-qt-embedded-config "-embedded arm -xplatform qws/linux-arm-g++ -no-cups -nomake examples -nomake demos -qt-zlib
-qt-libjpeg -qt-libmng -qt-libpng -no-dbus -depths 16,32 -qt-gfx-linuxfb -qt-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multis
creen -qt-kbd-tty -no-kbd-usb -no-kbd-sl5000 -no-kbd-yopy -no-kbd-vr41xx -no-kbd-qvfb -qt-mouse-tslib -I/usr/local/arm/tslib/tslib/i
nclude  -L/usr/local/arm/tslib/tslib/lib -no-webkit -no-openssl -no-phonon -no-phonon-backend -no-nas-sound -no-exceptions -svg" \
              -extra-qt-config "-no-webkit" \                                                                     
             2>&1 | tee ../qtopiaconfig.log                                                                       
                                                                                                                                                                                                             
bin/qbuild 2>&1 | tee ../qtopia4.4.3makelog                                                                       
bin/qbuild image                                                    

4、修改build脚本的权限并执行

[root@localhost arm]# chmod +x build

[root@localhost arm]# ./build

由于文件比较大,编译时间大概需要2.5个小时,大家先休息下吧,喝杯咖啡吧,祈祷不要出错,哈哈


5、编译完成后,这时,在‘builddir’目录下会生成‘SDK’和‘Image’,‘SDK’是在开发板上开发Qt图形界面软件的API库,另外还有国际化工具等工具软件。而‘Image’目录下的文件,就是我
们期盼已久的Qtopia4.4.3可执行文件。如下:



四、在Mini2440运行qt-extended4.43

  步骤1.本章的演示实验NFS挂载的目录是‘/opt/root_nfs’。将嵌入式家园提供的root_qtopia.ta.gz在PC的‘/opt/root_nfs’目录下解压。最后将前面编译出来的‘image’目录整体拷贝到‘/opt/root_nfs/root_qtopia/opt’中:

[root@localhost builddir]# cp -r image /opt/root_nfs/root_qtopia/opt

  步骤2.进入/opt/root_nfs/root_qtopia/opt目录,然后将image目录改名为Qtopia4.4.3
[root@localhost opt]#mv image Qtopia4.4.3

步骤3.接下来,在网络根文件系统的bin目录下建立qtopia4.4.3文件,内容如下:



步骤4.接下来,修改rcS启动文件,让Linux启动后直接运行Qtopia4.4.3:打开文件
‘/forlinx/root/etc/init.d/rcS’,最后几行修改的内容如下:


#/bin/qtopia &
#/bin/qtopia4 &
echo "                                  " > /dev/tty1
echo "Starting Qtopia, please waiting..." > /dev/tty1
source /bin/qtopia4.4.3
if [  -f /etc/pointercal ]; then
        $QPEDIR/bin/qpe -qws &
else
        usr/local/tslib/bin/ts_calibrate $QPEDIR/bin/qpe -qws &
fi

六、重启开发板,可以看到效果了


移植过程中参考了Mini6410 Qt4和Qtopia编程开发指南-20101228.pdf和OK6410 QT移植百科全书.pdf,大家都可以到友善之臂和飞凌的官网去下载这两份资料。时间仓促,难免疏漏。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值