6613|3

39

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

Helper2416开发板移植minigui3.0.12之一:让PC运行minigui [复制链接]

本帖最后由 Gyroxp 于 2015-1-25 11:30 编辑

[按:笔者最近有时间学习嵌入式linux,于是熟悉了一下基本操作之后,选定了移植minigui作为一个练习。看了看官网说明,移植过程挺简单的,但整整三天之后,开发板首次显示出minigui版的helloworld,笔者已哭晕在厕所。对于年龄不小,linux龄不长的笔者来说,这个过程远不是说的那么容易。尽管网上也有不少参考文章,但“绝知此事要躬行”的道理始终是不错的。移植工作结束之余,写下此篇作为总结,同时表示对Helper2416开发板的作者——深圳君益兴科技陈boss、小叶子,以及众多朋友的无私帮助表示衷心的感谢。]


第一阶段:PC运行minigui
       这个工作是一定要做的,因为minigui同其他GUI程序开发类似,都是先在PC上编程、调试、模拟,成型之后再交叉编译灌入嵌入式设备。Helper2416开发板随机所带的虚拟机fedora12已经安装好了交叉编译链、zlib库,png库,jpeg库等,使移植工作大为简化。此文也不涉及到这几个库的移植,相关方法在手册4.6节有详述,网上文章也未提及移植这几个库出什么问题。
. 搞定qvfb
      qvfbQT的一个附属程序,可以单独运行,跟minigui本身没什么联系,只是minigui可以拿它当作在PC上运行时的模拟屏幕。qvfb大致有以下几个获取方式。
       1. minigui官网有一个qvfb2-2.0.tar.gz程序包,编译这个包需要Qt3的库。Qt3的库可以从QT官网下载编译。
       2.Helper2416开发板随机提供了qtopiaQt4的源码。按手册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.hdeviceskin.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程序时鼠标不正常,而qtopiaqvfb鼠标正常。

. 安装资源包 minigui-res-be-3.0.12
     解压 $tar zxf minigui-res-be-3.0.12.tar.gz
     切入 $cd minigui-res-be-3.0.12
     安装 $sudo make install
             默认安装到/usr/local/share/minigui/res目录,包括bmp, cursor, font, icon四个东东
     这是最轻松愉快的一项。

. 编译核心库 libminigui-gpl-3.0.12
      由于Helper2416开发板随机所带的虚拟机已经安装好了交叉编译链、zlib库,png库,jpeg库等,因此编译这几个库的步骤可以省略。即使需要编译,资料也很多。
     解压 $tar xzvf libminigui-gpl-3.0.12.tar.gz
     切入 $cd libminigui-gpl-3.0.12
     配置 $./configure --enable-videoqvfb--enable-qvfbial
               因为3.0.12版本默认不打开qvfb图像和输入引擎,如不加这两项,后面运行示例时,
               会出现NEWGAL: Does not find matchedengine: qvfb 错误。
               笔者在这上面耽误了好一阵时间。
      编译 $make
              出现./runme.sh: No such file ordirectory,不用管。
      安装 $sudo make install
              默认安装到/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上有。
       解压 $tar zxf libmgplus-1.2.4.tar.gz
       切入$cd libmgplus-1.2.4
       设置 $exportPKG_CONFIG_PATH=/usr/local/lib/pkgconfig
               让编译器通过环境变量PKG_CONFIG_PATH找到前面安装的libminigui库,否则下面的配置通不过。
       配置 $./configure
       编译 $make
       安装 $sudo make install
               默认安装到/usr/loca/目录:
              /usr/local/lib  库文件
              /usr/local/include/mgplus  头文件

. 编译示例程序 mg-samples-3.0.12
     解压 $tar zxf mg-samples-3.0.12.tar.gz
     切入 $cd mg-samples-3.0.12
     设置 $export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
             让编译器通过环境变量PKG_CONFIG_PATH找到前面安装的libminigui和libmgplus库,否则下面的配置通不过。
     配置 $./configure
     编译 $make
             成功则在src/目录下可以看到编译好的示例程序。

. 运行示例程序
   1. 修改minigui运行时配置文件:/usr/local/etc/MiniGUI.cfg,指定图形和输入引擎。
        [system]
        gal_engine=qvfb
        ial_engine=qvfb   
        只需改这两行即可。
   2. 启动qvfb,并通过菜单设置分辨率为800x600。启动时默认的分辨率太小,运行示例时会报错。
       $qvfb &  qvfb也可以为其他名字)
   3. 进入../mg-samples-3.0.12/src目录运行程序。
       $./helloworld
       万年长青的helloworld出现在你的眼前。

至此,minigui3.0.12到运行于PC的就告一段落了。
未完待续--->第二阶段:移植minigui到Helper2416开发板

qvfb原始启动界面.JPG (11.39 KB, 下载次数: 1)

qvfb原始启动界面.JPG

qvfb运行的minigui版helloworld.JPG (78.6 KB, 下载次数: 0)

qvfb运行的minigui版helloworld.JPG

最新回复

我现在也正在学这方面的东西,到时有问题了还要指教  详情 回复 发表于 2015-2-4 12:04
点赞 关注

回复
举报

554

帖子

0

TA的资源

版主

沙发
 
嗯!绝知此事要躬行!
非常好!呵呵!
 
个人签名My dreams will go on...
http://www.jyxtec.com
 

回复

39

帖子

2

TA的资源

一粒金砂(中级)

板凳
 
谢谢老大。
这几天没被我烦死,也是个奇迹。
 
 
 

回复

336

帖子

0

TA的资源

纯净的硅(初级)

4
 
我现在也正在学这方面的东西,到时有问题了还要指教
 
个人签名每一刻都是崭新的,加油!
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表