Mini2440移植qt-extended4.4.3

來源:互聯網
上載者:User

  因為項目需求,前段時間在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,大家都可以到友善之臂和飛淩的官網去下載這兩份資料。時間倉促,難免疏漏。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.