您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Helper2416开发板移植minigui3012系列
Helper2416开发板移植minigui3.0.12之一:让PC运行minigui笔者最近有时间学习嵌入式linux,于是熟悉了一下基本操作之后,选定了移植minigui作为一个练习。看了看官网说明,移植过程挺简单的,但整整三天之后,开发板首次显示出minigui版的helloworld。第一阶段:PC运行minigui这个工作是一定要做的,因为minigui同其他GUI程序开发类似,都是先在PC上编程、调试、模拟,成型之后再交叉编译灌入嵌入式设备。Helper2416开发板随机所带的虚拟机fedora12已经安装好了交叉编译链、zlib库,png库,jpeg库等,使移植工作大为简化。此文也不涉及到这几个库的移植,相关方法在手册4.6节有详述,网上文章也未提及移植这几个库出什么问题。一.搞定qvfbqvfb是QT的一个附属程序,可以单独运行,跟minigui本身没什么联系,只是minigui可以拿它当作在PC上运行时的模拟屏幕。qvfb大致有以下几个获取方式。1.minigui官网有一个qvfb2-2.0.tar.gz程序包,编译这个包需要Qt3的库。Qt3的库可以从QT官网下载编译。2.Helper2416开发板随机提供了qtopia和Qt4的源码。按手册4.6节编译完qtopia之后,.../qtopia-2.2.0/qt2/bin/qvfb便是qvfb的可执行文件。将此文件拷入PATH路径,然后用$lddqvfb命令查看一下所依赖的库,在.../qtopia-2.2.0/qt2/lib目录中找到相应的库,拷入/lib目录。此时命令行直接输入$qvfb即可看到窗口界面。3.对于Qt4,按手册4.7节编译完之后并不会自动生成qvfb可执行文件,需要单独进行编译。网上的参考步骤是:(1).复制…/qt-everywhere-opensource-src-4.7.2/tools/shared/deviceskin.h,deviceskin.cpp两个文件到…/qt-everywhere-opensource-src-4.7.2/tools/qvfb目录下(2).在qvfb文件夹下手动生成qvfb工程,即$qmake-project,生成qvfb.pro(3).$qmake,生成Makefile(4).手动修改Makefile中LIBS选项:末尾添加-lXtst(5).$make即可得到可执行文件qvfb按照这个步骤可以编译得到qvfb,但笔者实测发现Qt4编译出来的qvfb运行minigui程序时鼠标不正常,而qtopia的qvfb鼠标正常。二.安装资源包minigui-res-be-3.0.12解压$tarzxfminigui-res-be-3.0.12.tar.gz切入$cdminigui-res-be-3.0.12安装$sudomakeinstall默认安装到/usr/local/share/minigui/res目录,包括bmp,cursor,font,icon四个东东这是最轻松愉快的一项。三.编译核心库libminigui-gpl-3.0.12由于Helper2416开发板随机所带的虚拟机已经安装好了交叉编译链、zlib库,png库,jpeg库等,因此编译这几个库的步骤可以省略。即使需要编译,资料也很多。解压$tarxzvflibminigui-gpl-3.0.12.tar.gz切入$cdlibminigui-gpl-3.0.12配置$./configure--enable-videoqvfb--enable-qvfbial因为3.0.12版本默认不打开qvfb图像和输入引擎,如不加这两项,后面运行示例时,会出现NEWGAL:Doesnotfindmatchedengine:qvfb错误。笔者在这上面耽误了好一阵时间。编译$make出现./runme.sh:Nosuchfileordirectory,不用管。安装$sudomakeinstall默认安装到/usr/local/目录:/usr/local/etc运行时配置文件/usr/local/lib库文件/usr/local/include/minigui头文件刷新库在库文件搜索路径配置文件/etc/ld.so.conf里添加/usr/local/lib这一项;$sudo/sbin/ldconfig命令刷新系统共享库搜索缓存。四.编译libmgplus-1.2.4按字面意思libmgplus应该是minigui一个附加的库,缺少此库后续的示例程序包无法一次性全部编译,只能到时候需要哪个就单独编译哪个。而且奇怪的是官网并没有提供这个库的下载,csdn上有。解压$tarzxflibmgplus-1.2.4.tar.gz切入$cdlibmgplus-1.2.4设置$exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig让编译器通过环境变量PKG_CONFIG_PATH找到前面安装的libminigui库,否则下面的配置通不过。配置$./configure编译$make安装$sudomakeinstall默认安装到/usr/loca/目录:/usr/local/lib库文件/usr/local/include/mgplus头文件五.编译示例程序mg-samples-3.0.12解压$tarzxfmg-samples-3.0.12.tar.gz切入$cdmg-samples-3.0.12设置$exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig让编译器通过环境变量PKG_CONFIG_PATH找到前面安装的libminigui和libmgplus库,否则下面的配置通不过。配置$./configure编译$make成功则在src/目录下可以看到编译好的示例程序。六.运行示例程序1.修改minigui运行时配置文件:/usr/local/etc/MiniGUI.cfg,指定图形和输入引擎。[system]gal_engine=qvfbial_engine=qvfb只需改这两行即可。2.启动qvfb,并通过菜单设置分辨率为800x600。启动时默认的分辨率太小,运行示例时会报错。$qvfb&(qvfb也可以为其他名字)3.进入../mg-samples-3.0.12/src目录运行程序。$./helloworld万年长青的helloworld出现在你的眼前。至此,minigui3.0.12到运行于PC的就告一段落了。未完待续---第二阶段:移植minigui到Helper2416开发板Helper2416开发板移植minigui3.0.12之二:移植到开发板第二阶段:移植minigui到Helper2416开发板让开发板运行minigui要稍微麻烦一些,主要是配置时不能仅仅./configure就搞定,参考文章也不一定说得全对,可能需要自己阅读configure文件的配置选项,再加以实测。此文假定开发板的根目录挂载到/myrootfs目录,minigui相应就安装到/myrootfs/usr/local目录。/myrootfs由Helper2416开发板随机所带root-qtopia.tar.xz文件解压,改改名即可。一.安装资源包minigui-res-be-3.0.12解压$tarzxfminigui-res-be-3.0.12.tar.gz切入$cdminigui-res-be-3.0.12配置$./configure--prefix=/myrootfs/usr/local安装$sudomakeinstall除了配置一下前缀,跟安装到PC上没有区别,仍然最轻松愉快的一项。二.编译核心库libminigui-gpl-3.0.12解压$tarxzvflibminigui-gpl-3.0.12.tar.gz切入$cdlibminigui-gpl-3.0.12配置书写配置脚本cfg_libminigui_hlpr2416(见下)$source./cfg_libminigui_hlpr2416书写一个配置脚本的好处显而易见:免得每次都敲一大堆字母,日后也可作为参考。编译$make安装$sudomakeinstall######cfg_libminigui_hlpr2416开始#######!/bin/bashrmconfig.cacheconfig.status-fTOOL_CHAINS_PATH=/opt/toolchains/arm-jyxtec-linux-gnueabi/binINSTALL_PATH=/myrootfs/usr/localexportCC=${TOOL_CHAINS_PATH}/arm-linux-gccexportRANLIB=${TOOL_CHAINS_PATH}/arm-linux-ranlib#compileneed./configure--prefix=${INSTALL_PATH}\--build=i386-linux\--host=arm-linux\--disable-pcxvfb\--disable-videoqvfb\--disable-screensaver\--enable-tslibial\--disable-pngsupport#选项说明#--build=i386-linux编译者#--host=arm-linux运行者#--disable-pcxvfb必须禁止,否则无法通过编译#--disable-videoqvfb禁止qvfb,此类选项可以选择禁止#--disable-screensaver禁止屏幕保护#--enable-tslibial使用触摸屏必须使能#--disable-pngsupport如果禁止png支持,则minigui.pc里Libs无-lpng项;jpeg类似######cfg_libminigui_hlpr2416结束######三.编译libmgplus-1.2.4跟在PC上一样,缺少此库后续的示例程序包无法一次性全部编译。解压$tarxzvflibmgplus-1_2_4.tar.gz切入$cdlibmgplus-1_2_4配置书写配置脚本cfg_libmgplus_hlpr2416$source./cfg_libmgplus_hlpr2416编译$make安装$sudomakeinstall######cfg_libmgplus_hlpr2416开始#######!/bin/bashrmconfig.cacheconfig.status-fTOOL_CHAINS_PATH=/opt/toolchains/arm-jyxtec-linux-gnueabi/binINSTALL_PATH=/myrootfs/usr/localexportPKG_CONFIG_PATH=${INSTALL_PATH}/lib/pkgconfig#configneedexportCC=${TOOL_CHAINS_PATH}/arm-linux-gccexportCXX=${TOOL_CHAINS_PATH}/arm-linux-g++#compileneedexportRANLIB=${TOOL_CHAINS_PATH}/arm-linux-ranlib#compileneedexportCXXFLAGS=-I${INSTALL_PATH}/include#compileneed./configure--prefix=${INSTALL_PATH}\--build=i386-linux\--host=arm-linux######cfg_libmgplus_hlpr2416结束######四.编译tslib-1.4虽然Helper2416开发板已经自带tslib库,但安装位置跟默认不一致,因此重新编译安装一下,避免后续编译示例程序包的时候到处去寻找,编译也并不麻烦。解压$tarxzvftslib-1.4.tar.gz切入$cdts
本文标题:Helper2416开发板移植minigui3012系列
链接地址:https://www.777doc.com/doc-2876129 .html