最近弄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下的测试文件了。