Qt2.2.0移植到ARM9(四)(JZ2440----S3c2440)

2019-07-12 21:57发布

Qt2.2.0移植到ARM9(四)(JZ2440----S3c2440)
Linux:Ubuntu9.10 编译器版本:arm-linux-gcc-4.3.2 Qt:qtopia-free-src-2.2.0.tar.gz 依赖库:libjpeg库(参考移植(一));uuid库。 操作参考《嵌入式Linux应用开发完全手册》 1、安装qtopia2.2.0 (1)解压 qtopia-free-src-2.2.0.tar.gz位于系统的/work/GUI/qtopia目录下。
解压命令:$tar zxvf  qtopia-free-src-2.2.0.tar.gz (2)编译、安装jpeg库(省略,之前已完成) (3)编译、安装uuid库(省略,之前已完成) (4)对qtopia修改: $cd  qtopia-free-src-2.2.0 $patch -p1<../qtopia-free-2.2.0_100ask.patch (5)修改配置文件 修改/qtopia-free-src-2.2.0/qtopia/qrc/qt/qconfig-qpe.h文件。

(6)针对交叉编译器的版本修改代码 修改/qtopia-free-src-2.2.0/qt2/tools/qembed/目录下的Makefile.in文件。
修改: (1)/qtopia-free-src-2.2.0/qt2/src/tools/目录下的qvaluelist.h。 (2)/qtopia-free-src-2.2.0/qt2/src/kernel/目录下的qwindowsystem_qws.h。 (3)/qtopia-free-src-2.2.0/qtopia/src/libraries/qtopia/backend/目录下的event.cpp。


(7)修改导致“error:extra qualification”错误的文件 修改:/qtopia-free-src-2.2.0/qtopia/src/libraries/qtopia/目录下的qdawg.cpp。 /qtopia-free-src-2.2.0/qtopia/src/libraries/qtopia2/thumbnailview_p.h。 /qtopia-free-src-2.2.0/qtopia/src/libraries/qtopiapim/目录下abtable_p.h。 /qtopia-free-src-2.2.0/qtopia/src/libraries/qtopiapim/目录下numberentry_p.h。 后面还有一些,参考《开发手册》 2、配置、编译、安装qtopia (1)配置qtopia-free-src-2.2.0
(2)执行编译 $sudo make $sudo make install 在以下目录中生成可执行文件和库文件。 /qtopia-free-src-2.2.0/qtopia/bin
/qtopia-free-src-2.2.0/qtopia/lib
/qtopia-free-src-2.2.0/qtopia/plugins
字库文件在/qtopia-free-src-2.2.0/qt2/lib/fonts目录下。 3、在开发板上安装、运行qtopia 借助fs_mini_mdev根文件系统的压缩包fs_mini_mdev.tar.bz2制作qt2.2.0文件系统. fs_mini_mdev.tar.bz2位于/work/system/目录下
(1)解压、重命名
$tar jxvf fs_mini_mdev.tar.bz2 $sudo cp -rf  jxvf fs_mini_mdev fs_qt $sudo chown book:book  fs_qt -R (2)复制qtopia所依赖的jpeg库、uuid库 $cp libjpeg.so*  /work/system/fs_qt/lib -d $cp libuuid.so*  /work/system/fs_qt/lib -d

(3)复制字库 $cp -rf /qtopia-free-src-2.2.0/qt2/lib/fonts  /qtopia/image/opt/Qtopia/lib $cp -rf  /qtopia/image/opt  /work/system/fs_qt
(4)创建时区文件 直接使用主机中的时区文件 $cd /work/system/fs_qt $mkdir -p usr/share/zoneinfo $cp -rf /usr/share/zoneinfo/America  usr/share/zoneinfo $cp /usr/share/zoneinfo/zone.tab  usr/share/zoneinfo
(5)伪造触摸屏校验文件 在开发板根文件系统中建立一个校验文件 $vim /etc/pointercal   其内容为:1 0 1 0 1 1 65536,它可以让系统不执行校验程序  (6)在根文件系统/bin目录下建立一个qpe.sh文件,它用来设置环境变量、启动Qtopia。 qpe.sh内容如下: #!/bin/sh export HOME=/root export QTDIR=/opt/Qtopia export QPEDIR=/opt/Qtopia export QWS_DISPLAY=LinuxFb:/dev/fb0 export QWS_KEYBOARD="TTY:/dev/tty1" #export QWS_MOUSE_PROTO="USB:/dev/mouse0" export QWS_MOUSE_PROTO="TPanel:/dev/ts0" export PATH=$QPEDIR/bin:$PATH export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH export TSLIB_TSDEVICE=/dev/ts0 export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_PLUGINDIR=/usr/share/ts/plugins export TSLIB_TSEVENTTYPE="H3600" $QPEDIR/bin/qpe & 解释:最后一行用于启动Qtopia。 (7)修改根文件系统的启动脚本 运行Qtopia时,需要用到临时目录/tmp,为减少Flash的擦写,在/tmp目录上挂接tmpfs文件系统。 首先建立/tmp目录 然后修改/work/system/fs_qt/etc/目录下的fstab文件,加入一行
最后修改启动脚本/work/system/fs_qt/etc/init.d/rcS,在最后加入以下一行。
还要修改它的属性 $chmod +x  /work/system/fs_qt/bin/qpe.sh 将/work/system/fs_qt/etc/inittab中一行注释掉
(8)制作yaffs2映像文件 使用mkyaffs2image工具将/work/system/fs_qt/制作成yaffs2映像文件。
最后就是将fs_qt.yaffs2文件系统烧写到开发板中去。