Mini2440移植qt-extended4.4.3
一、開發(fā)環(huán)境
本文引用地址:http://m.butianyuan.cn/article/201611/316972.htm上位機(jī):Fedora9.0
交叉編譯器版本:arm-linux-gcc4.4.3(友善之臂提供,在此說明下:arm-linux-gcc4.4.3或arm-linux-gcc4.4.2是支持arm9的,建議在arm9上移植不要使用友善之臂提供的arm-linux-gcc4.5(支持的是arm11的));
網(wǎng)絡(luò)文件系統(tǒng)目錄:/opt/root_nfs/root_qtopia(大家根據(jù)自己的情況而定)
開發(fā)板LCD版本:w35
開發(fā)板bootloader:u-boot(嵌入式家園提供)
開發(fā)板內(nèi)核:uImage(嵌入式家園提供)
根文件系統(tǒng):root_qtopia(嵌入式家園提供)
聲明:bootloader、內(nèi)核和根文件系統(tǒng)大家也可以直接使用友善之臂提供的。
二、交叉編譯tslib1.4
編譯和運(yùn)行qt-extended-4.4.3(Qtopia4),需要tslib庫,該庫是觸摸屏校準(zhǔn)時需要的庫文件,如對觸摸屏的數(shù)據(jù)進(jìn)行過濾、去抖動等,QT的庫會調(diào)用tslib的庫文件。
在此提示大家,安裝Fedora時,最好是完全安裝,不要缺省安裝,因?yàn)榫幾gtslib等時需要第三方庫的支持。
1、解壓tslib1.4.tar.gz
2、進(jìn)入tslib目錄:
[root@localhost /]# cd tslib/
3、設(shè)置環(huán)境變量、制定交叉編譯器
#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、運(yùn)行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出現(xiàn)build目錄,進(jìn)入相關(guān)的etc目錄找到ts.conf濱修改,刪除module_rawinput’前面的#號和空格,
并將build目錄改為tslib(命令:[root@localhost tslib]# mv build tslib),所以現(xiàn)在tslib在pc機(jī)下目錄為:/usr/local/arm/tslib/tslib,然后把tslib目錄拷貝至網(wǎng)絡(luò)文件系統(tǒng)中:/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、進(jìn)入arm目錄
[root@localhost /]# cd arm
為了實(shí)現(xiàn)一鍵編譯,在此我編寫一個腳本:build,內(nèi)容如下:
#!/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腳本的權(quán)限并執(zhí)行
[root@localhost arm]# chmod +x build
[root@localhost arm]# ./build
由于文件比較大,編譯時間大概需要2.5個小時,大家先休息下吧,喝杯咖啡吧,祈禱不要出錯,哈哈
5、編譯完成后,這時,在‘builddir’目錄下會生成‘SDK’和‘Image’,‘SDK’是在開發(fā)板上開發(fā)Qt圖形界面軟件的API庫,另外還有國際化工具等工具軟件。而‘Image’目錄下的文件,就是我
們期盼已久的Qtopia4.4.3可執(zhí)行文件。如下:
四、在Mini2440運(yùn)行qt-extended4.43
步驟1.本章的演示實(shí)驗(yàn)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.進(jìn)入/opt/root_nfs/root_qtopia/opt目錄,然后將image目錄改名為Qtopia4.4.3
[root@localhost opt]#mv image Qtopia4.4.3
步驟3.接下來,在網(wǎng)絡(luò)根文件系統(tǒng)的bin目錄下建立qtopia4.4.3文件,內(nèi)容如下:
步驟4.接下來,修改rcS啟動文件,讓Linux啟動后直接運(yùn)行Qtopia4.4.3:打開文件
‘/forlinx/root/etc/init.d/rcS’,最后幾行修改的內(nèi)容如下:
#/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
六、重啟開發(fā)板,可以看到效果了
移植過程中參考了Mini6410 Qt4和Qtopia編程開發(fā)指南-20101228.pdf和OK6410 QT移植百科全書.pdf,大家都可以到友善之臂和飛凌的官網(wǎng)去下載這兩份資料。時間倉促,難免疏漏。
評論