飛淩的開發板目前使用arm-linux-gcc 3.4.5版本來交叉編譯tslib-1.4庫和qt-extended-4.4.3庫,由於qt-extended-4.4.3處於開發中,暫時不放到飛淩開發板的檔案系統中,不過可以使用NFS網路檔案系統來進行調試和運行 Qtopia4
如何使用NFS網路檔案系統可以參考飛淩的《OK6410開發板LINUX2.6使用者手冊》 NFS部分。
開發平台:Ubantu9.10, 交叉編譯器:arm-linux-gcc3.4.5 ,飛淩開發板:6410系列
1 編譯tslib
編譯和運行qt-extended-4.4.3(Qtopia4),需要tslib庫,該庫是觸控螢幕需要的庫檔案,如對觸控螢幕的資料進行過濾,防震等,QT的庫會調用tslib的庫檔案
注意:您也可以不用編譯tslib-1.4,直接使用我們編譯好的tslib庫即可,使用tslib同樣需要配置環境變數,如何配置請跳到“配置環境變數”一節
編譯方法:
解壓tslib-1.4.rar後 記得先安裝三個東西
#sudo apt-get install autoconf
#sudo apt-get install automake
#sudo apt-get install libtool
#cd tslib/
//設定環境變數,指向交叉編譯器路徑
export PATH=/usr/local/arm/arm-linux-gcc-3.4.5/bin:$PATH
export TOOLCHAIN=/usr/local/arm/arm-linux-gcc-3.4.5
export TB_CC_PREFIX=arm-linux-
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
運行指令碼
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
配置安裝參數
#./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.cache 2>&1 | tee conf_log
編譯
#make 2>&1 | tee make_log
#make install
編譯後會出現bulid檔案夾
#cd build/etc
#gedit ts.conf
去掉module_raw input前面的#號和空格,注意:module_raw input前面不能有空格,否則運行測試軟體時會提示 Segmentation fault
看一下主機目錄 /usr/local/arm/下面是否已經有了 tslib ,如果有記得修改ts.conf,如果沒有
把build 檔案夾拷貝到/usr/local/arm下,把build改名為tslib, 編譯qt-extended-4.4.3時需要,另外把這個tslib放到網路檔案系統目錄中的/usr/local下面,我的是/forlinx/root/usr/local/
在開發板上進入到tslib/bin裡面運行./ts_calibrate 看一下螢幕上是否出現校準程式 ,如果出現則表示tslib編譯成功完成.在開發板上運行時需要設定環境變數,運行編譯好的Qtopia4時也需要環 境變數,為了在每次啟動開發板自動化佈建環境變數可以把以下的內容放到 /forlinx/root/etc/profile檔案中
配置環境變數:該環境變數是運行tslib測試程式和運行Qtopia時必須添加的環境變數,在開發板上添加.
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_TSEVENTTYPE=H3600
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=Tslib:/dev/input/event1
#export QWS_MOUSE_PROTO=TPanel:/dev/input/event1
#export QWS_MOUSE_PROTO="Tslib:/dev/input/event1 MouseMan:/dev/input/mice"
#export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice
export QTDIR=/opt/Qtopia
export QPEDIR=/opt/Qtopia
export PATH=$QTDIR/bin:$PATH
export QT_PLUGIN_PATH=$QTDIR/plugins:$QTDIR/qt_plugins/
export QT_QWS_FONTDIR=$QPEDIR/lib/fonts/
export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/usr/local/tslib/lib:$LD_LIBRARY_PATH
2 編譯和運行qt-extended-4.4.3
注意: 您可以使用自己編譯的Qtopia在開發板上運行,也可以使用我們已經編譯好的Qtopia,不用自己編譯,編譯過程需要很長時間,我的PC用了3個多小時。
如果直接使用編譯好的Qtopia,看“運行Qtopia4”一節。
編譯Qtopia4:
編譯Qtopia4需要指定交叉編譯器的路徑,如果在編譯tslib時已經設定好了環境變數就不需要再設定了,編譯之前先執行export命令,看一下是否已經有了以下的環境變數
export PATH=/usr/local/arm/arm-linux-gcc-3.4.5/bin:$PATH
export TOOLCHAIN=/usr/local/arm/arm-linux-gcc-3.4.5
export TB_CC_PREFIX=arm-linux-
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
編譯qt-extended-4.4.3 時注意先建立一個空檔案夾,該檔案夾與qt-extended-4.4.3處於同一層級目錄下,如qt-extended-4.4.3所在目錄為 /mnt/Qt-test/qt-extended-4.4.3,則需要建立 /mnt/Qt-test/builddir檔案夾,然後在命令終端中
另外需要注意的是:1 編譯Qtopia時確保你的Ubantu9.10環境中安裝了GNU g++編譯器,Qtopia編譯過程中用這個編譯器用來編譯一些工具在PC上運行.
2 注意你的Ubantu中要安裝X11的SDK庫,Qtopia編譯過程中需要使用X11SDK裡面的一些標頭檔,使用以下命令即可安裝需要的檔案
apt-get install libx11-dev libxext-dev libxtst-dev
3 編譯時間 虛擬機器中的qt-extended-4.4.3 檔案夾不能放在與Windows共用的目錄中,否則會編譯出錯.
cd /mnt/Qt-test/builddir 輸入以下內容,即可開始配置Qtopia4了,具體的配置含義可以 ../qt-extended-4.4.3/configure -help 查看,您可以根據自己的需要,填寫屬於自己的配置,另外網路 上有不少關於配置的解釋,在此就不多講了
../qt-extended-4.4.3/configure -release -image /opt/Qtopia -prefix /opt/Qtopia -xplatform linux-arm-g++ -arch arm -build-qt -no-dbus -ui-type home -launch-method quicklaunch -remove-module qvfb -remove-module modem -remove-module bluetooth -add-displaysize 480x272 -remove-module drm -remove-module infrared -remove-module dbus -extra-qt-config "-qt-mouse-linuxtp" -extra-qt-embedded-config "-xplatform qws/linux-arm-g++ -embedded arm -qconfig qpe -shared -little-endian -webkit -qt-kbd-usb -qt-libpng -qt-libjpeg -qt-gif -depths 4,8,16,32 -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib" 2>../qtopiaconfigureERR.txt
配置完成後,根據提示即可完成編譯和安裝,目前安裝在 /opt/Qtopia 下面,
運行Qtopia4:
把Qtopia放到開發板的 /opt目錄下面即 /opt/Qtopia/,我的是NFS檔案系統是 /forlinx/root/opt/Qtopia,確認在開發板上已經設定好了環境變數,環境變數參看tslib中 “配置環境變數”一節。
配置好環境變數後,既可以運行Qtopia了,另外Qtopia中內建的軟體也可以單獨運行,Qtopia/bin裡面的軟體如 ./photogallery -qws 即可運行圖片瀏覽軟體 ,而不需要啟動qpe案頭環境.下面的命令 可運行Qtopia
cd /opt/Qtopia/bin
./qpe
即可在螢幕上看到Qtopia4的介面, 裡面附帶了一些應用程式,目前這些應用程式需要修改完善,有的暫時不能使用,我們會逐步進行程式的修改和最佳化,最終會給您一個驚喜的使用體驗。