全部博文(21)
分类: LINUX
2010-01-07 08:54:30
|
移植qt-embedded-linux-opensource-src-4.5.2到ARM+LINUX平台
一. TSLIB移植部分
1.下载TSLIB-1.4源码:
#mkdir tslib (这是你存放TSLIB 源码的文件夹,我们下面要通过CVS网络下载源码,网络上也能找到,但是有可能不好用)
#svn co svn://svn.berlios.de/tslib/trunk/tslib tslib
2.编译:
#cd tslib
#./autogen.sh (生成configure)
#./configure --host=arm-linux --prefix=/home/xxxx/tslib_build/ (xxxx为你的系统用户名)
#make
#make install
3.问题:我采用的是UBUNTU 9.10(办公,开发都很不错,所以已经不用WINDOWS+虚拟机了,打魔兽的时候才用XP),需要安装一些工具:
cvs,automake,autoconf等才能编译TSLIB,这个刚开始不知道,所以浪费了一些时间。
4.添加到文件系统:
把 tslib_build/bin/下的ts_calibrate拷到文件系统的/bin下,把tslib_build/lib/下的文件拷到文件系统的lib下,/tslib_build/etc/ts.conf 拷到文件系统的/etc/下。
二. qt移植部分
1.下载源码:
2.解压缩:#tar -xzvf qt-embeded-linux-opensource-src-4.5.2.tar.gz
3.修改源码,去掉鼠标指针:
#cd qt-embedded-linux-opensource-src-4.5.2/src/gui/embedded/
找到 qwscursor_qws.h,在里面加上#define QT_NO_QWS_CURSOR ,程序里面好像可以去掉,也可以不加。
4.configure:
./configure \
-release -shared \
-fast \
-pch \
-no-qt3support \
-qt-sql-sqlite \
-no-libtiff -no-libmng \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-xplatform qws/linux-arm-g++ \
-embedded arm \
-depths 4,8,16,32 \
-little-endian \
-qt-kbd-usb \
-no-openssl \
-nomake examples -nomake demos -nomake tools \
-optimized-qmake \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm \
-no-xinerama -no-xshape \
-no-separate-debug-info \
-no-qvfb \
-qt-gfx-linuxfb \
-no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb \
-no-webkit \
-confirm-license \
-qt-mouse-tslib -I/home/xxxx/tslib_build/include -L/home/xxxx/tslib_build/lib
5.make && make install:时间有点长,不过这已经是最短的configure时间了。
6.把编译完的LIB库加到你的文件系统中:
#cd your_filesystem
#cd opt
#mkdir qt
#mkdir qtopia
#mkdir qt/lib (存放你的QT库)
#mkdir qtopia/bin(存放你的QT应用程序)
#cp qt-embedded-linux-opensource-src-4.5.2/lib/* qt/lib/
#cp qt-embedded-linux-opensource-src-4.5.2/examples/mainwindows/menus/menus qtopia/bin
7.制作QT启动脚本:
#vim bin/qtopia
添加以下内容:
#!/bin/sh
export set TSLIB_TSDEVICE=/dev/event0
export set TSLIB_CONFFILE=/etc/ts.conf
export set TSLIB_PLUGINDIR=/lib/ts
export set TSLIB_CALIBFILE=/etc/pointercal
export set HOME=/root
export set QTDIR=/opt/qt
export set QPEDIR=/opt/qtopia
export set KDEDIR=/opt/qt
export set QWS_DISPLAY="LinuxFB:/dev/fb0"
export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
#export QWS_SIZE=320x240
export set QWS_KEYBOARD="USB:/dev/input/event1"
export set QWS_MOUSE_PROTO="Tslib:/dev/event0"
export set QT_PLUGIN_PATH=$QTDIR/plugins/
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set PATH=$QPEDIR/bin:$PATH
export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_P
ts_calibrate
$QPEDIR/bin/menus -qws &
8.开机自动启动你的QT应用程序:
#vi etc/init.d/rcS
在最后一行添加:/bin/qtopia &
9.把刚才的文件系统,制作成内核支持的格式,然后烧入FLASH中。(移植过程中最好是采用NFS挂载的方式,这样方便调试,测试没有问题才烧到FLASH中),不出以外的话,你会看到TSLIB校准界面了,哈哈哈。校准完会出现QT界面,点点看,准不准。