[ZLG-ARM] qtopia-opensource-4.3.2在arm上的移植

[复制链接]
 楼主| lpczcy 发表于 2009-6-22 14:00 | 显示全部楼层 |阅读模式
Qtopia&nbsp;是Trolltech&nbsp;公司为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台,&nbsp;Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。&nbsp;Qtopia的特性如下&nbsp;所示:<br /><br />  窗口操作系统&nbsp;游戏和多媒体&nbsp;工作辅助应用程序&nbsp;同步框架&nbsp;PIM应用程序&nbsp;Internet应用程序&nbsp;开发环境&nbsp;输入法&nbsp;Java集成&nbsp;本地化支持&nbsp;个性化选项&nbsp;无线支持&nbsp;<br /><br />Trolltech&nbsp;提供三大Qtopia&nbsp;版本:<br /><br />  Qtopia&nbsp;手机版、Qtopia&nbsp;PDA&nbsp;版和Qtopia&nbsp;消费电子产品平台<br /><br />  Qtopia&nbsp;手机版:&nbsp;面向嵌入式Linux&nbsp;的Qtopia&nbsp;手机版(Qtopia&nbsp;Phone)&nbsp;是Qtopia&nbsp;的一个自定义版本用于内存有限的智能手机和功能手机它的用户界面可自定义内存占用量低手机制造商使用它可以创建令人赞叹的图形用户界面从而令手机卓越超群Qtopia&nbsp;手机版有两个版本键盘驱动和手写笔驱动。<br /><br />  Qtopia&nbsp;PDA&nbsp;版:&nbsp;Qtopia&nbsp;PDA&nbsp;版Qtopia&nbsp;PDA&nbsp;是一个强大的平台专用于基于Linux操作系统的PDA&nbsp;个人数字助理设备许多PDA&nbsp;都已采用了Qtopia,Qtopia&nbsp;PDA&nbsp;版已经成了事实上的Linux&nbsp;标准它代表了可行的第三种PDA&nbsp;设计方案Qtopia&nbsp;PDA&nbsp;版具有可定制的用户界面支持多种不同的屏幕尺寸以及横向和纵向布局。<br /><br />  Qtopia&nbsp;消费电子产品平台:While&nbsp;Qtopia&nbsp;手机版和Qtopia&nbsp;PDA&nbsp;版是针对移动电话和PDA&nbsp;制造商的统包解决方案,而Qtopia&nbsp;消费电子产品平台(Qtopia&nbsp;CEP)&nbsp;则是一套高层次开发平台适用于那些希望自行设计和开发应用套件的制造商。<br /><br />Qtopia&nbsp;CEP使得制造商能够在形形色色的手写笔和键盘驱动的设备上创建自定义的环境这些设备包括电视机Web&nbsp;Pad&nbsp;无线联网板机顶盒以及许多其它基于Linux&nbsp;的设备等等。&nbsp;Qtopia&nbsp;产品系列旨在为基于Linux&nbsp;的消费电子设备提供和创建图形用户界面它为制造商提供了前所未有的灵活性和众多选择。<br />qtopia-opensource-4.3.2在arm上的移植过程如下:<br /><br />1、下载<br />下载地址:<br />ftp://ftp.trolltech.com/qtopia/source/qtopia-opensource-src-4.3.2.tar.gz<br /><br />2、准备工作<br />建立build目录和安装目录:<br />/opt/qtopia/source&nbsp;源代码解压到该目录<br />/opt/qtopia/target&nbsp;编译目录<br />/usr/local/qtopia&nbsp;安装目录<br /><br />3、编译tslib-1.3.tar.bz2&nbsp;<br />详细步骤如下:&nbsp;<br />#&nbsp;tar&nbsp;jxvf&nbsp;tslib-1.3.tar.bz2&nbsp;&nbsp;<br />#&nbsp;cd&nbsp;tslib-1.3&nbsp;<br />#&nbsp;export&nbsp;CC=arm-linux-gcc&nbsp;<br />#&nbsp;export&nbsp;CXX=arm-linux-g++&nbsp;<br />#&nbsp;./autogen.sh&nbsp;<br />#&nbsp;./configure&nbsp;--prefix=/opt/tslib&nbsp;--host=arm-linux&nbsp;<br />#&nbsp;make&nbsp;<br />#&nbsp;make&nbsp;install<br /><br />注意:<br />当然,在ubuntu下要先安装两个工具,如果没安装,./autogen.sh是通不过的,安装如下:<br />#sudo&nbsp;apt-get&nbsp;install&nbsp;libtool&nbsp;automake<br />Make&nbsp;过程中有个错误,如下:<br />libtool:link:&nbsp;only&nbsp;absolute&nbsp;run-paths&nbsp;are&nbsp;allowed<br />要修改/tslib/plugins/Makefile里面找rpath将<br />LDFLAGS&nbsp;:=$(LDFLAGS)&nbsp;-rpath&nbsp;$(PLUGIN_DIR)<br />修改为:<br />LDFLAGS&nbsp;:=$(LDFLAGS)&nbsp;-rpath&nbsp;`cd&nbsp;$(PLUGIN_DIR)&nbsp;&&&nbsp;pwd`<br /><br />4、修改源代码<br />把qtopia-opensource-src-4.3.2.tar.gz解压到source里<br />#cp&nbsp;qtopia-opensource-src-4.3.2.tar.gz&nbsp;/opt/qtopia/<br />#tar&nbsp;–xzvf&nbsp;qtopia-opensource-src-4.3.2.tar.gz&nbsp;<br />#mv&nbsp;qtopia-opensource-4.3.2&nbsp;source<br />修改如下:<br />#cd&nbsp;source&nbsp;<br />#&nbsp;vi&nbsp;qtopiacore/qconfig-qpe.h&nbsp;<br />首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现:&nbsp;<br />//&nbsp;Qtopia&nbsp;Core&nbsp;<br /><br />/*&nbsp;<br />#ifndef&nbsp;QT_NO_QWS_CURSOR&nbsp;<br />#&nbsp;&nbsp;define&nbsp;QT_NO_QWS_CURSOR&nbsp;<br />#endif&nbsp;<br />*/&nbsp;<br /><br />/*&nbsp;<br />#ifndef&nbsp;QT_NO_QWS_MOUSE&nbsp;<br />#&nbsp;&nbsp;define&nbsp;QT_NO_QWS_MOUSE&nbsp;<br />#endif&nbsp;<br />#ifndef&nbsp;QT_NO_QWS_MOUSE_AUTO&nbsp;<br />#&nbsp;&nbsp;define&nbsp;QT_NO_QWS_MOUSE_AUTO&nbsp;<br />#endif&nbsp;<br />*/&nbsp;<br /><br />其它宏定义根据需要进行注释。&nbsp;<br />保存后将qconfig-qpe.h拷贝到global目录。&nbsp;<br />#&nbsp;cp&nbsp;qtopiacore/qconfig-qpe.h&nbsp;qtopiacore/qt/src/corelib/global/qconfig-qpe.h&nbsp;<br /><br />注释掉其他文件里的QT_NO_QWS_CURSOR的定义&nbsp;<br />#&nbsp;vi&nbsp;qtopiacore/qt/src/corelib/global/qfeatures.h&nbsp;<br /><br />注释掉如下内容:&nbsp;<br /><br />/*&nbsp;<br />#if&nbsp;!defined(QT_NO_QWS_CURSOR)&nbsp;&&&nbsp;(defined(QT_NO_CURSOR))&nbsp;<br />#define&nbsp;QT_NO_QWS_CURSOR&nbsp;<br />#endif&nbsp;<br />*/&nbsp;<br /><br />保存退出。&nbsp;<br />#&nbsp;vi&nbsp;qtopiacore/qt/src/corelib/global/qglobal.h&nbsp;<br /><br />注释掉以下内容:&nbsp;<br />//#&nbsp;&nbsp;&nbsp;&nbsp;define&nbsp;QT_NO_QWS_CURSOR<br /><br />5、配置、编译qtopia<br />#cd&nbsp;/opt/qtopia/target<br />#../source/configure&nbsp;-release&nbsp;-image&nbsp;/usr/local/qtopia&nbsp;-prefix&nbsp;/usr/local/qtopia&nbsp;-xplatform&nbsp;<br />linux-arm-g++&nbsp;-arch&nbsp;arm&nbsp;-no-qvfb&nbsp;-displaysize&nbsp;800x480&nbsp;-no-modem&nbsp;-extra-qt-config&nbsp;“-little<br />-endian”&nbsp;-extra-qtopiacore-config&nbsp;'-release&nbsp;-xplatform&nbsp;qws/linux-arm-g++&nbsp;-embedded&nbsp;arm&nbsp;-<br />qconfig&nbsp;qpe&nbsp;-depths&nbsp;8,16,32&nbsp;-qt-sql-sqlite&nbsp;&nbsp;-qt-kbd-usb&nbsp;-no-kbd-tty&nbsp;-no-mouse-linuxtp&nbsp;&nbsp;-qt<br />-mouse-tslib&nbsp;-I/opt/tslib/include&nbsp;-L/opt/tslib/lib'<br /><br />主要配置选项解说如下:&nbsp;<br />-xplatform&nbsp;linux-arm-g++&nbsp;-arch&nbsp;arm&nbsp;目标平台为arm-linux,体系结构为arm。&nbsp;<br />-no-qvfb&nbsp;&nbsp;目标平台已支持framebuffer,因而不使用虚拟帧缓冲。&nbsp;<br />-extra-qtopiacore-config&nbsp;为Qtopia&nbsp;core&nbsp;配置选项。&nbsp;<br />-xplatform&nbsp;qws/linux-arm-g++&nbsp;-embedded&nbsp;arm&nbsp;目标平台编译配置文件使用<br />qtopiacore/qt/mkspecs/qws/linux-arm-g++目录下的配置文件,嵌入式平台为arm。&nbsp;<br />-qconfig&nbsp;qpe&nbsp;使用配置文件qconfig-qpe.h,若使用qconfig-large.h配置文件,则使用-qconfig&nbsp;large<br />选项。&nbsp;<br />-qt-sql-sqlite&nbsp;数据库支持Sqlite。&nbsp;<br />-qt-kbd-usb&nbsp;键盘支持usb协议。&nbsp;<br />-no-mouse-linuxtp&nbsp;-qt-mouse-tslib&nbsp;-I/opt/tslib/include&nbsp;-L/opt/tslib/lib&nbsp;触摸屏协议不支持linuxtp,支持tslib,并在后面添加上刚才编译的tslib的头文件和库。<br /><br />#make&nbsp;<br />#make&nbsp;install<br /><br />Make&nbsp;过程会出现一些问题,无非就是一些库没安装,装上即可。<br /><br />编译完后,把opt/tslib/lib下的库复制到/usr/local/qtopia/lib下<br /><br />6、进入开发板,配置与运行<br />#mount&nbsp;–t&nbsp;nfs&nbsp;192.168.2.223:/&nbsp;/tmp&nbsp;–o&nbsp;proto=tcp&nbsp;–o&nbsp;nolock<br />#mkdir&nbsp;–p&nbsp;/usr/local/qtopia<br />#mount&nbsp;/tmp/usr/local/qtopia&nbsp;/usr/local/qtopia<br />#cd&nbsp;/usr/local/qtopia/bin<br />#export&nbsp;QWS_DISPLAY='LinuxFb:mmWidth35:mmHeight45:0'<br />#./qpe&nbsp;&<br /><br />如果没问题民,就成功了。<br /><br />后记:<br />1、编译完tslib后,要换一个终端来编译qtopia,就是取消环境变量CC和CXX,否则就会出现错误<br />2、触摸还没校准,可能是内核的触摸驱动没调好,也可能是环境变量还没设好<br />3、因为开发板的文件系统下已有时区,刚好是在/usr/share/zoneinfo下,所以不用复制过来了<br />&nbsp;<br />近日,诺基亚宣布收购从事桌面和移动设备应用架构开发的公司Trolltech。Trolltech以QT架构而闻名,这种架构是开源KDE的核心。&nbsp;<br /><br />  诺基亚收购Trolltech的最初动力源自其应用平台Qtopia,该平台基于Linux,为移动设备、消费电子和内置设备提供服务。Trolltech的产品在市场获得了稳定的声誉,但仍未成为家喻户晓的品牌。&nbsp;<br /><br />  现在,诺基亚收购Trolltech,将进一步增强这一品牌的支持力度。在桌面应用市场,移动平台受到越来越多的用户青睐。实际上,诺基亚不是一家桌面应用产品开发商,这也使许多人对其收购Trolltech感受不解。&nbsp;<br /><br />  诺基亚称,收购后Trolltech的现有产品和用户将保持不变。诺基亚现在正在进一步加强与KDE的关系,并已宣布成为KDE的赞助人。诺基亚收购Trolltech,将进一步打开笔记本、智能设备等的应用。目前,在亚马逊网站上销售最火的是诺基亚基于Linux的N800InternetTabletPC。<br /><br />  Qtopia&nbsp;后来被重新命名为Qt&nbsp;Extended。<br /><br />  在2009年3月3日,Nokia决定停止Qt&nbsp;Extended的后续开发,转而全心投入Qt的产品开发,并逐步会将一部分QtExtended的功能移植到Qt开发框架中。<br /><br />&nbsp;<br />
arminfo 发表于 2009-6-22 14:02 | 显示全部楼层

好,顶一下

  
miclinux 发表于 2009-6-24 13:17 | 显示全部楼层

Good,顶

  
半壶水 发表于 2009-6-26 14:08 | 显示全部楼层

诺基亚收购Trolltech为啥不做宣传

  
qtopia 发表于 2009-7-2 12:55 | 显示全部楼层

这东西太难弄了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

77

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

42

主题

77

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部