因为项目需求,前段时刻在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 240×320 \
-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,我们都能够到友善之臂和飞凌的官网去下载这两份材料。时刻匆促,不免遗漏。