最近弄QTE的移植,真是不勝其煩。現在把他整理出來,作為分享。
首先是軟件包的各個版本
Ubuntu 10.04
qt-everywhere-opensource-src-4.6.3.tar.gz
arm-linux-gcc-3.4.1.tar.bz2
qt-sdk-linux-x86-opensource-2010.04.bin
tslib-1.4.tar.gz
一.選擇交叉編譯器
我 不知道,移植QT對交叉編譯器有固定的版本要求。我查了很多資料,也沒得到個什麼確切的說法。比較靠譜的一個說法是“ arm-linux-gcc 3.4.1算是一個已經比較舊的版本了,現在我們在Linux 2.6.29環境下,用的是4.3.2的編譯器。不過,因為還有一個S3C2410 + Linux 2.4.18的產品線,所以仍然沒有捨棄 3.4.1。 ”。而且在其他參數配置相同的情況下,我用自己編譯的arm-softfloat-linux-gnu-gcc 3.4.5總是會提示這樣那樣的錯誤。對此我辦法解釋,只好用arm-linux-3.4.1.
安裝arm-linux-3.4.1。這個比較簡單:
(1). 解壓
#tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 得到一個usr文件夾。
(2) .添加環境變量:
#vi /etc/bash.bashrc
在末尾加上:export PATH=$PATH:/*解壓所在文件夾*/usr/local/arm/3.4.1/bin:
(3). 使新的環境變量生效:
#source /etc/bash.bashrc
(4). 檢查路徑是否設置正確:
#echo $PATH
(5) . 檢查交叉編譯工具是否安裝成功:
#arm-linux-gcc -v
出現版本信息就OK了
二 .編譯tslib1.4
(1)解壓源代碼:
tar zxvf tslib-1.4.tar.gz
cd tslib-1.4
(2)安裝一些工具:
sudo apt-get install automake libtool
(3)執行腳本生成configure文件
./autogen.sh
(4)執行configure生成Makefile文件
echo “ac_cv_func_malloc_0_nonnull=yes”>$ARCH-linux.cache
./configure --host=arm-linux --cache-file=$ARCH-linux.cache --prefix=/home/linux/tslib-3.4.1
(5)編譯安裝
make
make install
(6)拷到板子文件系統上
cp -a /home/linux/tslib-3.4.1 /source/rootfs
(7)修改ts.conf文件
vim ts.conf
將第二行的#module_raw input的"#"去掉,並使 module_raw input頂格。
(8)設置開發板的環境變量。這裡寫成腳本文件
vim qtsetenv.sh
export TSLIB_ROOT=/tslib-3.4.1
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CONFFILE=/tslib-3.4.1/etc/ts.conf
export TSLIB_PLUGINDIR=/tslib-3.4.1/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_FBDEVICE=/dev/fb0
export QWS_SIZE=320x240
export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
export LD_LIBRARY_PATH=/tslib-3.4.1/lib:$LD_LIBRARY_PATH
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_TSEVENTTYYPE=H3600i
(9)測試。可以運行/tslib/bin下的測試文件了。