将qt-embedded-linux移植至arm(s3c2440)

宿主机:Fedora13
目标 机:s3c2440
交叉 编译 器:arm-linux-gcc- 3.4.1
交叉编译器路径:/usr/local/arm/3.4.1

qt版本:qt-embedded-linux-opensource-src-4.5.3

tslib版本:tslib-1.4.tar.gz

 

一、移植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出错可在configure时加入--enable-inputapi=no

#make 

#make install

 

 3.添加到文件系统:

 把 tslib_build/bin/下的ts_calibrate(触摸校准测试程序)拷到文件系统的/bin下,把tslib_build/lib/下的文件拷到文件系统的lib下,

/tslib_build/etc/ts.conf 拷到文件系统的/etc/下。

 

 

二、移植qt

 

1.下载源码:ftp://ftp.qt.nokia.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz

2.解压缩:#tar -xzvf qt-embeded-linux-opensource-src-4.5.3.tar.gz

3.修改源码,去掉鼠标指针:

#cd qt-embedded-linux-opensource-src-4.5.3/src/gui/embedded/

找到 qwscursor_qws.h,在里面加上#define QT_NO_QWS_CURSOR   ,程序里面好像可以去掉,也可以不加。

4、configure

在qt-embedded-linux-opensource-src-4.5.3下建立一个脚本

#vim myconfig.sh

#!/bin/bash ./configure / -release -shared / -fast / -pch / #若编译出现类似<command line>:1: sorry, unimplemented: had to relocate 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

根据移植需要选择相应的内容,执行configure

#source myconfig.sh

编译

#make (时间比较长)

5、编译完成后,把编译完的LIB库加到你的文件系统中:

cd your_rootfs cd opt mkdir qt mkdir qtopia mkdir qt/lib (存放你的QT库) mkdir qtopia/bin(存放你的QT应用程序) cp -rf qt-embedded-linux-opensource-src-4.5.2/lib qt/ cp qt-embedded-linux-opensource-src-4.5.2/examples/mainwindows/menus/menus qtopia/bin

6、制作QT启动脚本:

#vim bin/myqt

添加以下内容:

#!/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 &  

7、开机自动启动你的QT应用程序:

 

#vim etc/init.d/rcS

在最后一行添加:/bin/myqt &

8、.把刚才的文件系统,制作成内核支持的格式,然后烧入FLASH中。(移植过程中最好是采用NFS挂载的方式,这样方便调试,测试没有问题才烧到FLASH中),不出意外的话,你会看到TSLIB校准界面了,校准完会出现QT界面,点点看,准不准。

 

如果启动后显示无法打开/dev/null或者/dev/fb0设备等问题,这就需要自己手动添加相应的节点

#mknod -m 666 /dev/null c 2 2 

#mknod /dev/fb0 c 29 0

然后手动执行一下/bin/myqt脚本,不出意外的话应该能正常显示屏幕校准的测试程序了。

 

由于本人的内核驱动并未完全移植好(尤其是触摸屏,LCD显示也不是很正常),所以出现画面之后触屏暂时无法使用,待重新编译下内核,将触摸驱动起来之后再进行后面的移植工作。

 

 

你可能感兴趣的:(将qt-embedded-linux移植至arm(s3c2440))