Qtopia移植
时间:2016-12-28作者:华清远见
Qtopia 是Trolltech 公司为采用嵌入式Linux操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。下面便是他的移植过程。
硬件s3c2410 一、tslib移植 第一步:解压tslib-1.4.tar.gz tar -zxvf tslib-1.4.tar.gz 第二步:进入解压过的目录 cd tslib-1.4 第三步:执行tslib-1.4目录下的autogen.sh ./autogen.sh 这一步需要安装一些工具:sudo apt-get install automake 第四步:执行autogen.sh脚本所生成的Makefile文件
请打入以下命令:
--host是指你的交叉编译器的前;例如:你的交叉编译器是arm-linux-gcc,则--host=arm-linux.如果是arm-softfloat-linux-gnu-gcc --prefix 是你执行make install 的时候编译后生成的可执行文件和库文件以及配置文所安装的目录; configure文件下还有好多选项;你可以执行./configure --help 来进行选择其他项,不过在这里这些选项就够了。 第五步:执行make 第六步:执行make install 第七步:把指定安装目录下的tslib的文件都copy到你所挂载的根文件下 sudo cp -rf /home/linux/tslib/* /rootfs/tslib 第八步:修改/rootfs/tslib下的etc目录中ts.cong文件 vi ts.conf 将第二行的#module_raw input修改成module_raw input 注意一定要顶格写否则程序执行时会发生读取ts.conf错误 二、Qtopia移植 第一步:解压qtopia-opensource-src-4.2.0.tar.gz
tar zxvf qtopia-opensource-src-4.2.0.tar.gz 第二步:创建在source同级目录下创建目录target mkdir target 第三步:修改源码包
1、 2、修改时区信息 # vi src/libraries/qtopia/qtimezone.cpp
将114行的 /usr/share/zoneinfo/ 改为/Qtipia/zoneinfo/ ,保存退出。 3、裁减Qtopia core的库(下列操作后在屏幕上会出现一个光标,否则没有光标根据需求配置) (1)# vi qtopiacore/qconfig-qpe.h
首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现: (2)注释掉其他文件里的QT_NO_QWS_CURSOR的定义 # vi qtopiacore/qt/src/corelib/global/qfeatures.h
注释掉如下内容: (3)# vi qtopiacore/qt/src/corelib/global/qglobal.h
注释掉以下内容: 4、下面是对编译过程中出现的错误进行的一些修改: (1)vim qtopiacore/qt/tools/qvfb/qvfbshmem.cpp
注释掉asm/page.h (2)vim qtopiacore/qt/tools/qvfb/qvfbmmap.cpp
注释掉asm/page.h 并修改如下内容
unsigned char *data; 为:
unsigned char *data; (3)vim src/libraries/qtopiabase/qmemoryfile_unix.cpp +128 修改 f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY); 为: f = ::open(tmpFile.toLatin1(), O_CREAT | O_WRONLY ,0777); 4、修改交叉工具 vim qtopiacore/qt/mkspecs/qws/linux-arm-g++/qmake.conf 将文件中的arm-linux-***全部修改为arm-softfloat-linux-gnu-** 这样做的前提是我的交叉工具链是arm-softfloat-linux-gnu,如果你的是arm-linux就不用改了。 第四步:生成Makefile cd ../target ../source/configure -release -image /Qtopia -prefix /Qtopia -xplatform linux-arm-g++ -arch arm -no-qvfb -displaysize 320x240 -no-modem -extra-qtopiacore-config "-release -xplatform qws/linux-arm-g++ -embedded arm -qconfig qpe -depths 4,8,16,32 -qt-sql-sqlite -no-mouse-linuxtp -qt-mouse-tslib -I/home/linux/tslib/include -L/home/linux/tslib/lib " 2>../configureERR.tx 注意:这里/Qtopia是后Qtopia的安装路径,安装到主机的某个路径下,终这个路径和目标板上的路径必须一致。 主要配置选项解说如下: -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/home/linux/tslib/include -L/home/linux/tslib/lib 触摸屏协议不支持linuxtp,支持tslib,并在后面添加上刚才编译的tslib的头文件和库。 2>../qtopiaconfigureERR.txt 后将配置过程中的错误输出到qtopiaconfigureERR.txt文件中。 第五步:make 第六步:make install 第七步:cp source/etc/zoneinfo /Qtopia/ -a 第八步:将安装和的目录考到nfsroot目录下 cp /Qtopia /rootfs -a 第九步:配置目标板环境变量脚本 vim qtopia.sh 添加如下内容:
#!/bin/sj 三、启动Qtopia 第一步:目标板开机 第二步:运行脚本qtopia.sh ./qtopia.sh 第三步:运行qpe /Qtopia/bin/qpe 这个时候就能看到一个漂亮的界面了。 相关资讯
发表评论
|