摘 要:基于Linux嵌入式GUI在當今嵌入式圖形界面開發中占有一定市場。其開源,易于移植的特點使其更加被廣泛的應用。Qtopia手機平臺移植時,需要注意移植前的準備,移植中注意的問題和在具體移植過程的分析及實現等。
關鍵詞:Linux;ARM平臺;Qtopia手機平臺移植
1 引言
QT是Trolltech公司有名的產品,最初是作為一個跨平臺的C++ GUI庫開發,但隨著它的發展增加了一系列與GUI庫無關的庫,現在QT已經成為一個通用的C++跨平臺類庫。Qt針對不同操作系統發布不同的版本,它們所定義的提供給應用程序開發人員的API其實是相同的,在應用程序開發人員看來,它們不必關心當前操作系統是哪一種,只需要調用同一套API來實現它們的應用程序即可。
2 移植前準備
本文Qtopia版本是Qtopia-opensource-4.2.4版本的,帶有手機桌面環境,移植的交叉編譯器版本為arm-linux-gcc 4.1.2,內核版本為:Linux-2.6.31,操作系統平臺為:Linux Red Hat 9.0,開發板平臺為:TX2440A。在移植前首先要先建好一個基本的根文件系統,改名為qtopia_root,然后再將Tslib移植入根文件系統中,以保證在移植完成Qtopia后能夠正常的運行。
3 Qtopia手機平臺移植
3.1 開始移植
由于Qtopia不能在源碼目錄下編譯,在將Qtopia解壓到source目錄下后,要在同目錄下再建立一個target目標文件,然后就可以在該目錄下編譯源碼。建這個目錄是為了和qtopia進行交互。再在虛擬機下建一個執行make install時的安裝目錄,也要在根文件系統中創建這個目錄,做為qpe的啟動目錄。以下的操作都是在source中進行。
1)進入qconfig-qpe.h:首先注釋掉關于鼠標光標的宏定義,使得程序運行時觸摸屏中央有光標出現;
2)將qconfig-qpe.h拷貝到global目錄,并注釋掉其他文件里光標的定義;
3)關于時區問題。一種方法是把虛擬機目錄下/usr/share/zoneinfo中的所有文件拷到在根文件系統上建立的zoneinfo文件中。第二種方法是修改源代碼,使它指向自己的文件夾。
3.2 配置
由于配置代碼一般較長,因此可以事先寫好一個相應的配置文件,在target目錄下執行該配置文件即可。主要配置選項說明如下:
1)-xplatform linux-arm-g++ -arch arm,目標平臺為arm-linux,體系結構為arm;
2)-extra-qtopiacore-config,為Qtopia core配置選項。
如果沒有錯誤,就可以執行make和make install,這個時間比較長,2小時左右。Qtopia會被安裝到/usr/local/qtopia目錄下。
3.3 兩種文件系統啟動方式
⑴用掛載NFS方式啟動
1)配置網絡,確保掛載NFS正常;
2)配置啟動腳本,新建一個名為qtopia文件,加入可執行權限,并把它放到根文件系統中;
3)然后在/etc/init.d/rcS 文件中加入一句開機自動運行qtopia腳本;
4)將觸摸屏校正程序放到根文件系統/usr/bin目錄下;
5)創建qtopia文件夾,用于掛載NFS;
6)制作文件系統,燒入開發板,啟動系統。
⑵U盤傳輸文件
1)與NFS掛載方式的2)到5)步相同;
2)將qtopia目錄放到根文件系統的/usr/local下,再將啟動程序qpe放到根文件系統/usb/bin下;
3)裁剪文件系統:將文件系統中的部分文件分離出來,制作成壓縮包,存入U盤中,制作文件系統鏡像,下載到開發板中,系統啟動后,將U盤插入開發板,掛載U盤,傳輸被分離出的文件到相應的目錄下。
3.4 運行系統
首次運行系統,會先運行觸摸屏校正程序,依次用觸摸筆點擊屏幕上出現的五個十字光標的中心,再進入qtopia。正常啟動后,屏幕中心就會出現鼠標光標,然后出現啟動LOGO,再進入主界面。當執行過觸摸屏校正程序,下次開機時就會直接進入qtopia。
[參考文獻]
[1]施威銘研究室.Linux C語言實務[M].北京:機械工業出版社,2002.
[2]田家林,陳利學,寇向輝.LINUX嵌入式操作系統在ARM上的移植[J].中文核心期刊《微計算機信息》(嵌入式與SOC),2007年第23卷第4-2期.
[3]倪繼利.Qt及Linux操作系統窗口設計[M].北京:電子工業出版社,2006.