qt開發環境的建立與qte4.6.3、tslib1.4的移植

QT開發環境的建立以及qte4.6.3、tislib1.4移植到博創star2410開發板
1.首先是建立Linux開發環境
1.1.在windowsXP下安裝博創公司提供的虛擬機軟件VMware Workstation,版本爲VMware-workstation-full-7.0.1-227600,安裝完成後進行漢化,由於要覆蓋文件,所以要先在任務管理器中結束所有有關VMware的進程,然後將漢化文件覆蓋到VMware的安裝目錄,至此VMware虛擬機軟件安裝完成。
1.2.虛擬機軟件安裝成功後,就開始安裝Linux操作系統,這裏我使用的Ubuntu10.04長期支持版,可以到Ubuntu的官方網站上下載,下載地址爲:http://www.ubuntu.org.cn/desktop/get-ubuntu/download/或者http://releases.ubuntu.com/lucid/(第一個不行就使用第二個);下載完成後打開虛擬機,在起始頁上點擊新建虛擬機,然後選中Ubuntu鏡像文件的路徑,然後是輸入用戶名、下一步、最後是定製硬件,可以根據自己需要添加,這裏我把內存調整爲1G,額外添加了一個串口,最後完成開始自動安裝,這個過程是全自動的,基本不需要手動操作,下面我們就是等待安裝完成。(安裝的快慢跟你的機器配置有關);安裝完成,大概用了不到兩個小時,但是在登錄界面卻無法使用鍵盤。解決方法:(1) 開戶屏幕鍵盤功能 在上圖開機界面在右下角單擊小人圖案,再單擊“Universal Access Perferences”,點擊“Universal Access Perferences”對話框,在對話框中選中“Use on-screen keyboard”(使用屏幕鍵盤),以開啓屏幕鍵盤功能,這時會有一個屏幕鍵盤快速閃過; (2) 重新啓動打開屏幕鍵盤輸入密碼開啓屏幕鍵盤功能後重新啓動系統,這時就可以通過上面的步驟打開屏幕鍵盤,輸入相應的密碼 (3) 登錄後鍵盤功能正常使用。 注意在(1)步後沒出現軟鍵盤, 需要重啓機器。 (4)進入系統之後,要修改/etc/default/console-setup. 的文件內容 原文 XKBMODEL="SKIP" XKBLAYOUT="us" XKBVARIANT="U.S. English" XKBOPTIONS="" 改成 XKBMODEL="pc105" XKBLAYOUT="us" XKBVARIANT="" XKBOPTIONS="" 然後重啓,這樣在登入界面時就可能使用鍵盤了。這裏我們使用root賬戶,在命令行輸入:sudo passwd root,輸入兩次密碼後添加root賬戶成功,重啓,使用root賬戶登錄,然後是設置軟件源,首先備份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup,而後用gedit或其他編輯器打開: gedit /etc/apt/sources.list,到官方選中合適的源,這裏我們選擇163的源,具體爲:deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse,替換掉文件中所有的內容保存編輯好的文件:,然後,刷新列表:
apt-get update
終端設置小技巧
因爲經常會用到終端:所以把終端加到右鍵菜單:
apt-get install nautilus-open-terminal
至此我們的Linux操作系統基本安裝成功。但是語言還是英文,大家可以根據自己喜好是否調整爲中文,調整方法,打開system菜單下administration下的language support,出現語言配置對話框,然後你可以選中最下面的installl/removae language安裝中文或者其他語言,在調整後重啓系統起效!
2.安裝開發工具QT
首先需要說明的是,我們把QT的安裝分爲兩部分,第一、安裝在LinuxPC機下開發的QT以及IDE開發工具QT Creator。第二、安裝交叉編譯的QTE以及移植QTE到博創star2410開發板,下面我們開始正式安裝。
2.1.安裝LinuxPC機上的開發工具QT
首先我們到QT的官方網站下載Linux下的QT版本,下載地址爲:http://qt.nokia.com/downloads-cn,這裏我們直接下載最新版本的Qt SDK for Linux/X11 32-bit** (370 Mb) (軟件開發工具包)裏面包括QT4.6.3以及QT IDE開發工具QT Creator,由於我們是直接下載編譯好的二進制包,所以我們只需要更改一下文件的屬性,變爲可執行就行了,具體命令爲:chmod +x qt-sdk-linux-x86-opensource-2010.04.bin,這樣我們就能在文件的目錄裏執行./qt-sdk-linux-x86-opensource-2010.04.bin,然後就開始安裝了。然後點擊next、I accept the agreement、next、(默認安裝路徑爲/opt/qtsdk-2010.04,你可以根據自己喜好更改路徑,這裏我們選擇默認)、next、(在選擇組件對話框裏我們依然默認)next、(外部管理對話框,默認)next、(準備安裝)next後開始安裝,我們只需要等待就行,最後點擊finish安裝完成,我們會在桌面發現多了一個圖標,這說明我們的QT以及Qt Creator安裝成功,最後一步就是設置環境變量,具體步驟如下:使用編輯器打開配置文件 命令爲:gedit ~/.profile ,在文件的最後添加export QTDIR=$PATH:/opt/qtsdk-2010.04/qt
export PATH=$PATH:/opt/qtsdk-2010.04/qt/bin
環境變量設置完成,重啓系統,但是現在我們的QT還不能使用,因爲我們的LinuxPC機沒有安裝標準C開發環境,最後再執行一條命令:apt-get install build-essential libncurses5-dev,至此我們的PC機QT開發工具就安裝完成了,可以正常使用了。
2.2.搭建QTE-arm環境並移植QTE以及tslib1.4到博創star2410開發板
首先我們要先安裝交叉編譯工具鏈,這裏我們使用的交叉編譯器爲博創公司提供的版本爲arm-linux-gcc3.4.6,將arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2放到/root/song目錄下,然後打開目錄解壓編譯器,具體命令爲:tar xjvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 -C /usr/local/(注意:C 後面有個空格,並且 C 是大寫的,它是英文單詞“Change”的第一個字母,在此是改變目錄的意思。),這樣我們就將編譯器安裝在了/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/下,然後設置環境變量,仍然是:gedit ~/.profile 在文件最後添加:export PATH=$PATH:/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin,保存文件,然後執行:source ~/.profile是變量立即生效,然後在命令行下輸入:arm-linux-gcc -v檢查是否安裝成功,安裝成功則出現:Reading specs from /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/3.4.6/specs
Configured with: /home/samba/armlinux/crosstool/crosstool-0.42/build/arm-linux/gcc-3.4.6-glibc-2.3.6/gcc-3.4.6/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux --with-headers=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/include --with-local-prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.6
否則可能是環境變量設置問題,仔細檢查應該就能解決。
交叉編譯器安裝成功後,我們就開始解壓及編譯觸摸屏軟件tslib1.4.tar.gz,具體步驟如下:打開文件所在目錄:cd /root/song ,解壓:tar xjvf tslib-1.4.tar.bz2,進入解壓目錄:cd tslib-1.4,修改腳本:gedit build.sh,原來的內容爲:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
#./configure --prefix=/mnt/nfs/tslib1.4-install --host=arm-linux
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/mnt/nfs/Trolltech/QtopiaCore-4.3.3/tslib1.4
make

make install
修改後:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/usr/local/tslib
make

make install
保存退出並執行:./build.sh開始編譯並安裝,中間沒有出錯,成功安裝到了/usr/local/tslib目錄下,tslib1.4編譯成功。下面開始編譯安裝qte4.6.3-arm,首先到官方下載最新版的qte,版本爲:qt-everywhere-opensource-src-4.6.3.tar.gz ,下載地址爲:http://qt.nokia.com/downloads/embedded-linux-cpp,然後開始編譯安裝,
具體步驟如下:進入文件所在目錄:cd /root/song,解壓:tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz,進入解壓目錄:cd qt-everywhere-opensource-src-4.6.3,修改錯誤文件:gedit src/3rdparty/freetype/include/freetype/config/ftconfig.h,將第330行修改爲:"orr    %0, %0,%2, lsl #16/n/t"  /* %0 |= %2 << 16 */,防止出現如下錯誤:text/qfontengine_ft.cpp: In member function `bool QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':
text/qfontengine_ft.cpp:696: warning: converting to `int' from `qreal'
{standard input}: Assembler messages:
{standard input}:781: Error: register or shift expression expected -- `orr r3,r2,lsl#16'
{standard input}:792: Error: register or shift expression expected -- `orr r2,r3,lsl#16'
{standard input}:7752: Error: register or shift expression expected -- `orr r3,r0,lsl#16'
{standard input}:7765: Error: register or shift expression expected -- `orr r1,r0,lsl#16'
make[1]: *** [.obj/release-shared-emb-arm/qfontengine_ft.o] 錯誤 1
make[1]:正在離開目錄 `/root/song/qt-everywhere-opensource-src-4.6.3;然後開始配置configure:命令爲:./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/Trolltech/qte4.6.3-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -I/usr/local/tslib/include -L/usr/local/tslib/lib -v -D__ARM_ARCH_5TEJ__,然後輸入o回車,再輸入yes回車開始配置,配置成功提示:Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/qte4.6.3-arm

To reconfigure, run 'make confclean' and 'configure'.
然後開始編譯:make,需要等待一會,快慢視個人配置。大概半個小時左右make完畢,然後執行:make install,完成後qte就被安裝在了/usr/local/qte4.6.3-arm下面,至此,qte4.6.3-arm編譯安裝成功。
然後我們開始把qte移植到博創star2410開發板上,具體步驟爲:1.複製tslib庫以及ts目錄,cp /usr/local/tslib/lib/libts* /usr/local/qte4.6.3-arm/lib/,cp -rf /usr/local/tslib/lib/ts /usr/local/qte4.6.3-arm/lib/,進入目錄:cd /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib,繼續拷貝庫:cp libgcc_s.so.1 /usr/local/qte4.6.3-arm/lib/,cp librt.so.1 /usr/local/qte4.6.3-arm/lib/,cp libstdc++.so.6 /usr/local/qte4.6.3-arm/lib/,cp libz.so.1 /usr/local/qte4.6.3-arm/lib/,拷貝庫完成,對於有些庫文件,可以裁剪一下,命令如下:arm-linux-strip libstdc++.so.6,最後將/usr/local/qte4.6.3-arm/lib/中的所有文件打包,命令如下:tar czvf lib-new.tar.bz2 *,然後再將tslib校準程序移植,cd /usr/local/tslib/lib,拷貝需要的庫文件,cp /usr/local/qte4.6.3-arm/lib/librt.so.1 .,cp /usr/local/qte4.6.3-arm/lib/libz.so.1 .,最後將整個tslib目錄打包,命令如下:tar czvf touch.tar.bz2 *,最後將我們所有打包的文件以及前面交叉編譯的MPlayer全部放到一個目錄下,這裏我建立了一個embed目錄,將所有包放進去,解壓整理,最終生成一個應用程序包,其中包括MPlayer,觸摸屏校準程序,usb設備掛載,以及qte4.6.3,包的名字爲:embed.tar.bz2。至此我們的移植以接近尾聲,下面我們把編譯好的應用程序包下載到star2410上,步驟如下:先在Linux下面使用minicom連接上板子,設置板子的IP使和主機在同一網段,命令如下:ifconfig eth0 192.168.88.189 broadcast 192.168.88.254 ,然後再執行inetd,是更改生效。然後在windows下使用FlashFXP軟件匿名連接板子的IP,連接上後,將embed.tar.bz2傳送到板子,很快就可以傳完,然後在板子上,進入root目錄,執行命令:mv /root/system/var/ftp/pub/embed.tar.bz2 .,然後解壓程序包:tar xzvf embed.tar.bz2,這樣root目錄下就出現了我們的程序目錄,首先我們進入touch目錄進行觸摸屏校準,我們先寫touch.sh一個腳本方便程序執行,腳本內容如下:#bin/sh
export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
/root/touch/bin/ts_calibrate
/root/touch/bin/ts_test
保存退出,執行腳本:./touch.sh,出現如下錯誤:No raw modules loaded.                                                         
ts_config: Success                                                             
No raw modules loaded.                                                         
ts_config: Success
解決方法:vi etc/ts.conf,將文件中第二行# module_raw input前面的#號去掉,然後在執行腳本,屏幕上出現校準程序,點擊十字架開始校準,至此,tslib1.4移植成功!
最後我們進入qte4.6.3目錄中,同樣我們也寫一個腳本方便程序運行,腳本qt.sh內容如下:export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export QTDIR=$PWD
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
export QT_QWS_FONTDIR=$PWD/lib/fonts
export LANG=zh_CN
export QWS_DISPLAY="LinuxFb:mmWidth160:mmHeight120:0"
/root/qte4.6.3/bin/demo -qws
保存退出,然後執行:./qt.sh
出現以下錯誤,並且觸摸屏不能使用:No raw modules loaded.                                                         
QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or di'
Please check your tslib installation!
解決方法:還是將etc/ts.conf文件中的第二行前面的#號去掉,保存退出,在執行./qt.sh,成功,無任何提示,屏幕顯示我們的例子,並且觸摸屏使用正常,至此,我們的qte4.6.3、tslib1.4的編譯安裝以及移植到博創的star2410板子上的工作全部完成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章