linuxarm移植
❶ QT4如何移植到ARM-linux目標板
一、准備
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
構建一個新的根文件系統目錄,路徑為
/root/rootfs
二、具體步驟:
1、編譯安裝busybox
在官網下載最新版。可以參考如下幾處要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
輸入如下命令,編譯並安裝。
# make;make install
2、編譯安裝tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安裝目錄指明為 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是為了在編譯QTE時,不用指定tslib的頭文件和庫文件,方便以後程序開發。
注意:在做這一步前,需要做一個目錄鏈接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目錄下
# ln -s ../../usr/include ./
3、編譯安裝QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用這個配置,編譯後的QTE庫文件即可放在目標文件系統的/usr/lib下,而不是默認/usr/local/Trolltech/QtEmbedded-4.5.1 這個很深的目錄
2)、編譯
# make
# cp lib/* /root/rootfs/usr/lib -rd 將QTE庫文件拷貝到根文件系統的目錄
# cp plugins /root/rootfs/usr -rd 將QTE插件目錄拷貝到根文件系統的目錄
4、根文件系統的設置
1)、這時/root/rootfs/usr下應該有 bin etc include lib sbin目錄
tslib生成的etc目錄,包含一個tslib的配置文件 nf,編輯此文件,去掉mole_raw input前的注釋
# mv etc ../ 移動到rootfs的根目錄
2)、進行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、編輯etc/profile,添加以下內容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最後,通過mkyaffs2image 製作鏡像,燒寫鏡像,啟動ts_calibrate校驗觸屏即可。