1、 1 Qtopia 4.2.4 手机平台移植手册 Qtopia版本: Qtopia-opensource-4.2.4,这个版本带有手机桌面环境 交叉编译器: arm-linux-gcc 4.1.2 支持EABI 操作系统平台: Linux - Red Hat 9.0 开发板平台: Arm - TX2440A 说明: 这个交叉编译器是openmoko提供的,目前只能用这个编译,因为我以前用过4.3.2版本的,能正常编译,但运行时出现了段错误,换用3.4.1版本的,部分程序不能正常运行。很多网友也遇到了这个情况, 后来查出原因是编译器的问题,换了4.1.2就可以了。 说明: 由于移植完Qtopia
2、后, 根文件系统的大小是70M左右,如果我们使用的是64M的NAND和64M的SDRAM,可能就装不下了,所以只能用挂载NFS的方法,实现qtopia的启动。(挂载 NFS,参考NFS 服务器配置),当然你也可以自己裁剪 qtopia,可以裁到60M以下。 触摸屏校正程序: tslib-1.4 tslib 已经移植好, 参考tslib-1.4 移植手册 ,tslib 的目录在根文件系统的/usr/local目录下 下面开始移植: 安装目录是个比较重要的地方,编译Qtopia不同于其他的程序,Qtopia不应当在源码目录下编译。 首先最好设置两个目录,一个是源代码目录,一个是编译目录。 #mkd
3、ir qtopia,把qtopia源码包解压到该目录下,并改名为source #tar xzvf qtopia-opensource-src-4.2.4.tar.gz #mv qtopia-opensource-src-4.2.4 source 2 再建一个编译目录: #mkdir target 然后进入target目录下,执行/source/configure ,就可以在target目录下编译 source 的源码了。建这个目录是为了和 qtopia 进行交互,后面将会详细介绍。 再建一个安装目录,就是执行make install时的安装目录 #mkdir p /usr/local/qtop
4、ia 这个建在虚拟机下,同样要在根文件系统中创建这个目录,做为qpe的启动目录。 以下操作都是在source中进行的. 修改qtopiacore的一些宏定义: 进入source/qtopiacore/qconfig-qpe.h 首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现: / Qtopia Core /* #ifndef QT_NO_QWS_CURSOR # define QT_NO_QWS_CURSOR #endif */ /* #ifndef QT_NO_QWS_MOUSE # define QT_NO_QWS_MOUSE #endif #ifndef QT_NO_
5、QWS_MOUSE_AUTO # define QT_NO_QWS_MOUSE_AUTO #endif */ 其它宏定义根据需要进行注释。 保存后将qconfig-qpe.h拷贝到global目录。 # cp qtopiacore/qconfig-qpe.h qtopiacore/qt/src/corelib/global/qconfig-qpe.h 注释掉其他文件里的QT_NO_QWS_CURSOR的定义 # vi qtopiacore/qt/src/corelib/global/qfeatures.h 3 注释掉如下内容: /* #if !defined(QT_NO_QWS_CURSOR)
6、 then $QTOPIA/bin/qpe -qws else ts_calibrate $QTOPIA/bin/qpe -qws fi 然后在/etc/init.d/rcS文件中加入一句: qtopia& 配置完后就可以运行了,如果是用 NFS 启动,那么 NFS 一定要成功挂载,才能正常运行。 首先运行校正程序,依次点屏幕上出现的五个点,然后进入qtopia的主页面,启动会很慢,如果出现的图标非常小,连字都 看不清,那就需要调整一下显示的大小,在配置文件中加上一句: export QWS_DISPLAY=“LinuxFb:mmWidth35:mmHeight45:0“, 再重新运行程序,就可以正常显示了