新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Mini2440移植qt-extended4.4.3

        Mini2440移植qt-extended4.4.3

        作者: 時間:2016-11-11 來源:網絡 收藏
        因為項目需求,前段時間在Mini2440移植qt-extended4.4.3,現將移植過程簡單的說下,希望對做相關的工作的朋友有幫助。

        一、開發環境

        本文引用地址:http://www.104case.com/article/201611/316972.htm

        上位機: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,大家都可以到友善之臂和飛凌的官網去下載這兩份資料。時間倉促,難免疏漏。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 西乌| 禄丰县| 嵊州市| 巴中市| 楚雄市| 突泉县| 平南县| 龙陵县| 呼图壁县| 全椒县| 建宁县| 赤水市| 九龙坡区| 剑阁县| 高雄市| 河源市| 泸溪县| 德清县| 偏关县| 金昌市| 大悟县| 牡丹江市| 邢台县| 阳西县| 灵石县| 东方市| 浑源县| 两当县| 通许县| 西吉县| 法库县| 遂宁市| 酉阳| 金溪县| 普安县| 繁峙县| 和平区| 庆安县| 南昌县| 凤台县| 柘城县|