ARM6410移植QtEmbedded.docx
《ARM6410移植QtEmbedded.docx》由会员分享,可在线阅读,更多相关《ARM6410移植QtEmbedded.docx(15页珍藏版)》请在冰豆网上搜索。
ARM6410移植QtEmbedded
移植QtEmbedded-4.5.2tslib1.4到S3C2440收藏
开发环境
操作系统:
Vmware6.0+Ubuntu8.04。
交叉编译器:
arm-linux-gcc-4.3.2
目标板:
mini2440+NEC3.5寸屏
1、下载源码包:
在:
ftp:
//下载
qt-embedded-linux-opensource-src-4.5.2.tar.bz2
qt-x11-opensource-src-4.5.2.tar.bz2
在上下载tslib1.4.tar.gz
2、配置ubuntu8.04编译环境
安装g++:
sudoapt-getg++
安装编译X11用到的库:
sudoapt-getlibx11-devlibxext-dev
安装libxtst-dev:
sudoaptitudeinstalllibxtst-dev否则编译qvfb出错。
3、编译及安装qt-x11-opensource-src-4.5.2
qt-x11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发
板,也可以开发Qt应程序。
tarxjvfqt-x11-opensource-src-4.5.2.tar.bz2
cdqt-x11-opensource-src-4.5.2
./configure
make
makeinstall
历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。
4、编译配置QtEmbedded-4.5.2-x86版本
A、解压
root@hrixin-desktop:
/work/qte#tarxjvfqt-embedded-linux-opensource-src-4.5.2.tar.bz2
root@hrixin-desktop:
/work/qte#mvqt-embedded-linux-opensource-src-4.5.2qt-embedded-linux-opensource-src-4.5.2-x86
root@hrixin-desktop:
/work/qte#cdqt-embedded-linux-opensource-src-4.5.2-x86
B、配置编译:
./configure-prefix/usr/local/Trolltech/QtEmbedded-4.5.2-x86-embeddedx86-qvfb
root@hrixin-desktop:
/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86#make
C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-x86目录下:
root@hrixin-desktop:
/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86#makeinstall
D、建立脚本文件:
setenv_arm.sh,输入以下内容:
exportQTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
exportPATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:
$PATH
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:
$LD_LIBRARY_PATH
E、编译x86版QT应用程序前,先执行此脚本文件:
root@hrixin-desktop:
/usr/local/Trolltech/QtEmbedded-4.5.2-x86#sourcesetenv-x86.sh
5、编译安装tslib1.4
A、安装编译过程需用到的程序
root@hrixin-desktop:
/home/hrixin#apt-getinstallautoconf(或autoconf2.13)
root@hrixin-desktop:
/home/hrixin#apt-getinstallautomake
root@hrixin-desktop:
/home/hrixin#apt-getinstalllibtool
B、配置编译
root@hrixin-desktop:
/work/qt#tarxzvftslib-1.4.tar.gz
root@hrixin-desktop:
/work/qt#cdtslib
生成./configure
root@hrixin-desktop:
/work/qt/tslib#sourceautogen.sh
root@hrixin-desktop:
/work/qt/tslib#exportac_cv_func_malloc_0_nonnull=yes
root@hrixin-desktop:
/work/qt/tslib#./configure--prefix=/usr/local/tslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes
root@hrixin-desktop:
/work/qt/tslib#make
C、安装
root@hrixin-desktop:
/work/qt/tslib#makeinstall-strip//生成瘦身应用程序和库
打包
root@hrixin-desktop:
/usr/local#tarczvftslib.tar.gztslib
D、复制到NFS文件系统/usr/local目录下解压
root@hrixin-desktop:
/work/root_qtopia/usr/local#tarxzvftslib.tar.gz
E、设置环境变量,校准触摸屏。
在天开板终端建立脚本文件,并执行:
exportTSLIB_ROOT=/usr/local/tslib
exportTSLIB_TSDEVICE=/dev/input/event0
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
exportTSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
exportTSLIB_CALIBFILE=/etc/pointercal
exportTSLIB_FBDEVICE=/dev/fb0
exportQWS_MOUSE_PROTO=tslib:
/dev/input/event0
注意:
触摸屏的前提是你的触摸屏驱动已经写好,并加载进了内核.
你可以测试有没有加载触摸屏驱动,cat/dev/input/event0(这只是我的板子上的触摸屏),
点击触摸屏,看终端有无显示,若有则表明正确。
在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:
[root@FriendlyARMbin]#./ts_calibrate
可以运行此目录下的其他程序进行测试。
注:
/etc/ts.conf打开module_rawinput设置
#Uncommentifyouwishtousethelinuxinputlayereventinterface
module_rawinput
至此,触摸屏程序能顺利运行,接下来移植QtEmbedded-4.5.2,设置好环境变量。
6、编译安装QtEmbedded-4.5.2-arm版本
A、解压
root@hrixin-desktop:
/work/qte#tarxjvfqt-embedded-linux-opensource-src-4.5.2.tar.bz2
root@hrixin-desktop:
/work/qte#mvqt-embedded-linux-opensource-src-4.5.2qt-embedded-linux-opensource-src-4.5.2-arm
root@hrixin-desktop:
/work/qte#cdqt-embedded-linux-opensource-src-4.5.2-arm
B、配置编译:
./configure-prefix/usr/local/Trolltech/QtEmbedded-4.5.2-arm-embeddedarm\
-release-shared-fast-no-largefile-qt-sql-sqlite-no-qt3support-no-xmlpatterns-no-mmx-no-3dnow-no-sse-no-sse2-no-svg-no-webkit-qt-zlib-qt-gif\
-qt-libtiff-qt-libpng-qt-libmng-qt-libjpeg-makelibs-nomaketools-nomakeexamples-nomakedocs-nomakedemo-no-nis-no-cups-no-iconv-no-dbus\
-no-openssl-xplatformqws/linux-arm-g++-little-endian-qt-freetype-depths16,18-qt-gfx-linuxfb-no-gfx-transformed-no-gfx-multiscreen\
-no-gfx-vnc-no-gfx-qvfb-qt-kbd-usb-no-glib-qt-mouse-tslib-I/usr/local/tslib/include-L/usr/local/tslib/lib
注意这个目录要跟你的tslib安装目录相同!
!
!
root@hrixin-desktop:
/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm#make
C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-arm目录下:
root@hrixin-desktop:
/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm#makeinstall
D、打包编译安装好的QtEmbedded库文件:
root@hrixin-desktop:
/usr/local/Trolltech#tarczvfQtEmbedded-4.5.2-arm.tar.gzQtEmbedded-4.5.2-arm
E、建立脚本文件:
setenv_arm.sh,输入以下内容:
exportQTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/
exportPATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin/:
$PATH
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/:
$LD_LIBRARY_PATH
F、编译ARM版QT应用程序前,先执行此脚本文件:
root@hrixin-desktop:
/usr/local/Trolltech/QtEmbedded-4.5.2-arm#sourcesetenv-arm.sh
编译calculator
root@hrixin-desktop:
/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator#calculator.pro
root@hrixin-desktop:
/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator#make
7、在主机上建立NFS启动根文件系统,把编译好的库文件复制到相关目录下。
A、文件系统目录为:
/work/root_qtopia/,修改rcS
[root@FriendlyARM/]#vi/etc/init.d/rcS
#/bin/qtopia&
建立Trolltech目录:
root@hrixin-desktop:
/work/root_qtopia/usr/local#mdkirTrolltech
B、把打包好的库文件:
QtEmbedded-4.5.2-arm.tar.gz复制到/work/root_qtopia/usr/local/Trolltech目录下
root@hrixin-desktop:
/work/root_qtopia/usr/local/Trolltech#tarxzvfQtEmbedded-4.5.2-arm.tar.gz
root@hrixin-desktop:
/work/root_qtopia/usr/local/Trolltech#cdQtEmbedded-4.5.2-arm/
C、复制5-F中编译好的calculator可执行文件到此目录下:
root@hrixin-desktop:
/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm#cp/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator/calculator./
D、建立脚本文件
root@hrixin-desktop:
/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm#geditsetenv.sh
输入以下内容:
(把设置tslib环境变量的脚本文件内容,也添加进来)
#!
/bin/sh
exportTSLIB_ROOT=/usr/local/tslib
exportTSLIB_TSDEVICE=/dev/input/event0
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
exportTSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
exportTSLIB_CALIBFILE=/etc/pointercal
exportTSLIB_FBDEVICE=/dev/fb0
exportQWS_MOUSE_PROTO=Tslib:
/dev/input/event0
exportQTDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm
exportQPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm
exportLD_LIBRARY_PATH=$QTDIR/lib:
$TSLIB_ROOT/lib:
/usr/local/lib:
$LD_LIBRARY_PATH
E、至此,主机上的文件系统已经配置好,开板通过NFS挂载到此文件系统启动。
启动后,开发板串口终端执行刚才的脚本文件(通过NFS启动,执行脚本文件未成功),设置好环境变量。
检查环境变量是否成功:
[root@FriendlyARMQtEmbedded-4.5.2-arm]#echo$QTDIR
/usr/local/Trolltech/QtEmbedded-4.5.2-arm
成功!
如果没有输出,则失败。
同样的方法检查其他两个环境变量。
F、运行calculator
[root@FriendlyARMQtEmbedded-4.5.2-arm]#./calculator-qws&
From:
1.下载qt-embedded-linux-opensource-src-4.5.2.tar.gz和tslib-1.4.tar.gz
2.交叉编译
#cdtslib
#vido.sh
#!
/bin/sh
./configure--build=i386-linux--host=arm-linuxac_cv_func_malloc_0_nonnull=yesCC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gccCXX=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-g++--prefix=$PWD/build
#chmod755
#./do.sh
#make
#makeinstall
#cdqt-embedded-linux-opensource-src-4.5.2
#mkdirlibts
#cp(***tslib)/build/lib/libts*libts/
#cp(***tslib)/build/include/*libts/
修改mkspecs/qws/linux-armv6-g++/qmake.conf,加入下面几行设置qmake的FLAGS:
#qwduadded
QMAKE_INCDIR=(****)/qt-embedded-linux-opensource-src-4.5.2/libts
QMAKE_LIBDIR=(****)/qt-embedded-linux-opensource-src-4.5.2/libts
#vido.sh
#!
/bin/sh
./configure\
-opensource\
-prefix/***/***(installdir)\
-release\
-shared\
-no-qt3support\
-no-xmlpatterns\
-no-svg\
-no-webkit\
-qt-zlib\
-qt-gif\
-qt-libtiff\
-qt-libpng\
-qt-libmng\
-qt-libjpeg\
-makelibs\
-maketools\
-nomakeexamples\
-nomakedocs\
-nomakedemo\
-no-nis\
-no-cups\
-no-iconv\
-no-dbus\
-no-openssl\
-xplatformqws/linux-armv6-g++\
-embeddedarm\
-little-endian\
-qt-freetype\
-depths16\
-qt-gfx-linuxfb\
-no-gfx-transformed\
-no-gfx-multiscreen\
-no-gfx-vnc\
-no-gfx-qvfb\
-qt-kbd-tty\
-qt-kbd-usb\
-qt-mouse-tslib\
-qt-mouse-pc\
-no-glib
#chmod755do.sh
#./do.sh
#make
#makeinstall
在开发板上设置环境变量
#vi/usr/etc/rc.local
#!
/sh/bin
exportTSDIR=/usr/tslib
exportPATH=$TSDIR/bin:
$PATH
exportLD_LIBRARY_PATH=$TSDIR/lib:
$LD_LIBRARY_PATH
exportTSLIB_CONSOLEDEVICE=none
exportTSLIB_FBDEVICE=/dev/fb0
exportTSLIB_CALIBFILE=$TSDIR/etc/pointercal
exportTSLIB_CONFFILE=$TSDIR/etc/ts.conf
exportTSLIB_PLUGINDIR=$TSDIR/plugins
exportTSLIB_TSDEVICE=/dev/ts0
exportTSLIB_TSEVENTTYPE=H3600
exportQTDIR=/usr/qt
exportPATH=$QTDIR/bin:
$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:
$QTDIR/plugins/imageformats:
$LD_LIBRARY_PATH
exportQT_PLUGIN_PATH=$QTDIR/plugins/
exportQT_QWS_FONTDIR=$QTDIR/fonts
#exportQWS_MOUSE_PROTO=LinuxTP:
/dev/ts0
exportQWS_MOUSE_PROTO=Tslib:
/dev/ts0
#mkdir/usr/qt
把之前编译安装的QT库和程序(qt的install目录)copy到开发板的/usr/qt目录下,具体如下:
binfontslibplugins
bin下放入mousecalibration
fonts下放入*qpf字体(字体比较大,占用空间,可以只复制QT自己转化过的qpf字体)
lib下放入libQtCore.so.4.5.2,libQtGui.so.4.5.2,libQtNetwork.so.4.5.2,libQtSql.so.4.5.2
然后链接下
libQtCore.so.4->libQtCore.so.4.5.2
libQtGui.so.4->libQtGui.so.4.5.2
libQtNetwork.so.4->libQtNetwork.so.4.5.2
libQtSql.so.4->libQtSql.so.4.5.2
#mkdir/usr/tslib
再把之前编译安装的Tslib库和程序(tslib的bulid目录)copy到开发板的/usr/tslib目录下,具体如下:
binetcincludelibplugins
设置完毕
qt的库比较大,可以arm-linux-strip下
#sh/usr/etc/rc.local
#t