Trolltech 提供三大Qtopia 版本:
Qtopia 手机版、Qtopia PDA 版和Qtopia 消费电子产品平台
Qtopia 手机版: 面向嵌入式Linux 的Qtopia 手机版(Qtopia Phone) 是Qtopia 的一个自定义版本用于内存有限的智能手机和功能手机它的用户界面可自定义内存占用量低手机制造商使用它可以创建令人赞叹的图形用户界面从而令手机卓越超群Qtopia 手机版有两个版本键盘驱动和手写笔驱动。
Qtopia PDA 版: Qtopia PDA 版Qtopia PDA 是一个强大的平台专用于基于Linux操作系统的PDA 个人数字助理设备许多PDA 都已采用了Qtopia,Qtopia PDA 版已经成了事实上的Linux 标准它代表了可行的第三种PDA 设计方案Qtopia PDA 版具有可定制的用户界面支持多种不同的屏幕尺寸以及横向和纵向布局。
Qtopia 消费电子产品平台:While Qtopia 手机版和Qtopia PDA 版是针对移动电话和PDA 制造商的统包解决方案,而Qtopia 消费电子产品平台(Qtopia CEP) 则是一套高层次开发平台适用于那些希望自行设计和开发应用套件的制造商。
Qtopia CEP使得制造商能够在形形色色的手写笔和键盘驱动的设备上创建自定义的环境这些设备包括电视机Web Pad 无线联网板机顶盒以及许多其它基于Linux 的设备等等。 Qtopia 产品系列旨在为基于Linux 的消费电子设备提供和创建图形用户界面它为制造商提供了前所未有的灵活性和众多选择。 qtopia-opensource-4.3.2在arm上的移植过程如下:
1、下载 下载地址: ftp://ftp.trolltech.com/qtopia/source/qtopia-opensource-src-4.3.2.tar.gz
2、准备工作 建立build目录和安装目录: /opt/qtopia/source 源代码解压到该目录 /opt/qtopia/target 编译目录 /usr/local/qtopia 安装目录
3、编译tslib-1.3.tar.bz2 详细步骤如下: # tar jxvf tslib-1.3.tar.bz2 # cd tslib-1.3 # export CC=arm-linux-gcc # export CXX=arm-linux-g++ # ./autogen.sh # ./configure --prefix=/opt/tslib --host=arm-linux # make # make install
注意: 当然,在ubuntu下要先安装两个工具,如果没安装,./autogen.sh是通不过的,安装如下: #sudo apt-get install libtool automake Make 过程中有个错误,如下: libtool:link: only absolute run-paths are allowed 要修改/tslib/plugins/Makefile里面找rpath将 LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR) 修改为: LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`
4、修改源代码 把qtopia-opensource-src-4.3.2.tar.gz解压到source里 #cp qtopia-opensource-src-4.3.2.tar.gz /opt/qtopia/ #tar –xzvf qtopia-opensource-src-4.3.2.tar.gz #mv qtopia-opensource-4.3.2 source 修改如下: #cd source # vi 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_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
注释掉如下内容:
/* #if !defined(QT_NO_QWS_CURSOR) && (defined(QT_NO_CURSOR)) #define QT_NO_QWS_CURSOR #endif */
保存退出。 # vi qtopiacore/qt/src/corelib/global/qglobal.h
注释掉以下内容: //# define QT_NO_QWS_CURSOR
5、配置、编译qtopia #cd /opt/qtopia/target #../source/configure -release -image /usr/local/qtopia -prefix /usr/local/qtopia -xplatform linux-arm-g++ -arch arm -no-qvfb -displaysize 800x480 -no-modem -extra-qt-config “-little -endian” -extra-qtopiacore-config '-release -xplatform qws/linux-arm-g++ -embedded arm - qconfig qpe -depths 8,16,32 -qt-sql-sqlite -qt-kbd-usb -no-kbd-tty -no-mouse-linuxtp -qt -mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib'
主要配置选项解说如下: -xplatform linux-arm-g++ -arch arm 目标平台为arm-linux,体系结构为arm。 -no-qvfb 目标平台已支持framebuffer,因而不使用虚拟帧缓冲。 -extra-qtopiacore-config 为Qtopia core 配置选项。 -xplatform qws/linux-arm-g++ -embedded arm 目标平台编译配置文件使用 qtopiacore/qt/mkspecs/qws/linux-arm-g++目录下的配置文件,嵌入式平台为arm。 -qconfig qpe 使用配置文件qconfig-qpe.h,若使用qconfig-large.h配置文件,则使用-qconfig large 选项。 -qt-sql-sqlite 数据库支持Sqlite。 -qt-kbd-usb 键盘支持usb协议。 -no-mouse-linuxtp -qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib 触摸屏协议不支持linuxtp,支持tslib,并在后面添加上刚才编译的tslib的头文件和库。
#make #make install
Make 过程会出现一些问题,无非就是一些库没安装,装上即可。
编译完后,把opt/tslib/lib下的库复制到/usr/local/qtopia/lib下
6、进入开发板,配置与运行 #mount –t nfs 192.168.2.223:/ /tmp –o proto=tcp –o nolock #mkdir –p /usr/local/qtopia #mount /tmp/usr/local/qtopia /usr/local/qtopia #cd /usr/local/qtopia/bin #export QWS_DISPLAY='LinuxFb:mmWidth35:mmHeight45:0' #./qpe &
如果没问题,就成功了。
后记: 1、编译完tslib后,要换一个终端来编译qtopia,就是取消环境变量CC和CXX,否则就会出现错误 2、触摸还没校准,可能是内核的触摸驱动没调好,也可能是环境变量还没设好 3、因为开发板的文件系统下已有时区,刚好是在/usr/share/zoneinfo下,所以不用复制过来了
|