我的MiniGUI移植之路

发布者:HarmonySpirit最新更新时间:2024-11-11 来源: cnblogs关键字:MiniGUI  移植  SBC2410 手机看文章 扫描二维码
随时随地手机看文章

一:前言
最近几天在移植minigui,一直没有使用过minigui界面,想看看什么效果,顺便学习一下,毕竟是国产的。花了我三天的时间,终于在我的LCD上显示minigui界面了,可以运行MDE演示程序。期间遇到很多问题,还好我都把我的问题以及解决方法都记录下来,下面开始我的移植。
 
二:使用环境的搭建
1.主机:RedHat Enterprise Linux AS4
2.交叉编译工具路径:/usr/local/arm/2.95.3/ (用于编译vivi,minigui1.3.3)
          /usr/local/arm/3.3.2/   (用于编译busybox1.5.1)
          /usr/local/arm/3.4.1/ (用于编译linux2.6.11.1内核的)
把/usr/local/arm/2.95.3/bin路径添加到/etc/profile文件中
3.开发板:友善之臂SBC2410
4.开发板使用的Linux2.6.11内核
内核配置时候选择下面的选项
Graphics support --->   
<*> Support for frame buffer devices  //minigui图形引擎有关
<*> Virtual Frame Buffer support (ONLY FOR TESTING!)
Console display driver support --->
<*> Framebuffer Console support     //minigui图形引擎有关
 
三:资源依赖库的安装
在网上参考了大漠孤狼的移植方法,编译的时候这些资源不知道用到没,有的是用到的。我都安装了。所有的资源依赖库和minigui源文件都下载到/home/minigui/下。
1.zlib 库的安装
下载地址:http://www.zlib.net/zlib-1.2.3.tar.gz
# tar zxf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
#./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --shared
#vi Makefile
 
把gcc都改成arm-linux-gcc
 
#make
#make install
2.png?imageView2/2/w/550 库的安装
 下载:http://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.0.10rc1.tar.gz
# tar zxf libpng-1.0.10rc1.tar.gz
# cd libpng-1.0.10rc1
# cp scripts/makefile.linux  Makefile 
# vi Makefile    
CC=arm-linux-gcc  
# where 'make install' puts libpng.a, libpng.so*, png.h and pngconf.h
prefix=/usr/local/arm/2.95.3/arm-linux     //修改这里
# Where the zlib library and include files are located
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=/usr/local/arm/2.95.3/arm-linux/lib   //修改这里
ZLIBINC=/usr/local/arm/2.95.3/arm-linux/include   //修改这里
#make
#make install
3.jpeg库的安装
jpeg库的安装我是copy /usr/local/arm/3.3.2/arm-linux/lib/目录下的,3.3.2的交叉编译器本身含有jpeg库的。
4.libttf库的安装
下载地址:http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-1.3.1.tar.gz
# tar zxf  freetype-1.3.1.tar.gz 
# cd freetype-1.3.1 
把所有的Makefile文件的gcc改为arm-linux-gcc
#make
#make install
 
四.MiniGUIi的安装
在/usr/下新建一个目录存放minigui编译安装的结果
#mkdir /usr/arm-linux
#cd /usr/arm-linux
# mkdir lib etc include
1.安装minigui-res-1.3.3.tar.gz
#tar –xzvf minigui-res-1.3.3.tar.gz
#cd minigui-res-1.3.3
 
#修改config.linux 文件,将{prefix}改为/usr/arm-linux
#make install //安装资源文件
资源文件安装到/usr/arm-linux/lib下

2.安装libminigui-1.3.3.tar.gz
在安装libminigui-1.3.3时候需要修改一个文件fbvideo.c,在libminigui-1.3.3/src/newgal/fbcon/目录下:修改如下:
 
/* Initialize the library */
    GAL_fbdev = getenv('FRAMEBUFFER');
    if ( GAL_fbdev == NULL ) {
        GAL_fbdev = '/dev/fb/0';             //修改在这里
    }
    console_fd = open(GAL_fbdev, O_RDWR, 0);
    if ( console_fd < 0 ) {
        GAL_SetError('Unable to open %s', GAL_fbdev);
        return(-1);
}
 
#tar –xzvf libminigui-1.3.3.tar.gz
#cd libminigui-1.3.3
#make menuconfig
 
配置libminigui
 System Wide Options:
[*] Build MiniGUI-Lite        //用 Lite 方式编译,不是Thread 方式,这里适用于 PDA
[ ]   Stand-Alone
[ ] Use incore (built-in) resource      
[*] Unit of timer is 10ms
[*] Cursor support
[ ] User can move window with mouse  
[*] Mouse button can do double click
[*] Build with debugging messages
[ ] Trace messages of MiniGUI        
[*] Include symbol name of messages
 
 GAL  engine Options :
(NEWGAL) GAL and its engines
[*]   NEWGAL engine on Linux FrameBuffer console
[ ]   NEWGAL engine on Qt Virtual FrameBuffer    
[ ]   NEWGAL engine on eCos LCD interface
[*]   Dummy NEWGAL engine
[*] Have console on Linux FrameBuffer

 IAL engine options :
[ ] EP7211-based board
[ ] ADS Graphics Client
[ ] iPAQ H3600 (also H3800)
[ ] MPC823
[ ] PX255B
[ ] NEC VR4181
[ ] Helio Touch Panel
[ ] MT T800
[*] SMDK2410 Touch Screen
[ ] uClinux Touch Screen Palm/MC68EZ328
[*] Dummy IAL engine
[*] Native (console) input engine
---   Native IAL engine subdriver options
[ ]   PS2 mouse
[ ]   IntelligentMouse (IMPS/2) mouse
[ ]   MS mouse
[ ]   MS3 mouse
[*]   GPM daemon
 
 Font Option :
[*] Raw bitmap font
[ ] Var bitmap font          //不要选这个,编译mde时候会出现错误
[*] Incore font sansserif
[*] Incore font courier
[*] Incore font symbol
[*] Incore font vgas
[*] Qt Prerendered Font
[*] TrueType font
[ ] Adobe Type1 font

Image Options :
[*] Includes SaveBitmap-related functions
[ ] PCX file support
[ ] LBM/PBM file support
[ ] TGA file support
[*] GIF file support
[*] JPG file support
[*] PNG file support
 
Input Medthold Option:
[*] IME (GB2312) support
[ ] IME (GB2312) Intelligent Pinyin module 
 
Development Environment Option :
(Linux) Platform
(arm-linux-gcc) Compiler  
(glibc) Libc            
--- Installation options
Path prefix: '/usr/arm-linux'  
--- Additonal Compiler Flags
     CFLAGS: ''
     LDFLAGS: ''
配置完成后
#make
#make install
就会把minigui库安装到/usr/arm-linux/lib下 MiniGUI.cfg安装到/usr/arm-linux/etc/ 相关的文件安装到/usr/arm-linux/include/下。
3.安装mde-1.3.0.tar.gz
#tar –xzvf mde-1.3.0.tar.gz
#cd mde-1.3.0
#export CC=arm-linux-gcc
#vi configure.in
 
修改configure.in 文件
l         增加一行
CFLAGS=”$CFLAGS –I${prefix}/include -L${prefix}/lib”   //指定minigui 的头文件及库文件的参考路径。
l         修改头文件路径:
AC_CHECK_HEADERS(${prefix}/include/minigui/common.h,
have_libminigui=yes, foo=bar)
 
#./autogen.sh
#./configure --prefix=/usr/arm-linux /
--host=i386-linux /
--build=arm -linux /
--target=arm -linux /
#make
 
如果编译通过后就会在当前目录下生成minigui演示程序,如果编译不通过大多是你的libminigui-1.3.3配置不正确。
 
五.MiniGUI根文件系统的制作
 
在/opt目录下新建rootfs,如果你已经有了一个可利用的根文件系统,把它复制到rootfs目录下,新建几个目录即可。如下:
#cd /opt/rootfs/usr
#mkdir local
#cd local
#mkdir etc lib minigui
1.把以上资源copy到/usr/local/相关目录下。方法如下:
#cp –a /usr/arm-linux/lib/*.* /opt/rootfs/usr/local/lib/
#cp –a /usr/arm-linux/etc/*.* /opt/rootfs/usr/local/etc/
把/usr/local/arm/2.95.3/arm-linux/lib/目录下的libjpeg,libpng,libttf,libz相关的库copy到/opt/rootfs/usr/local/lib/下,copy时带上-a参数。

2.使库文件工作。
修改/opt/rootfs/etc/目录下的ld.so.conf,把/usr/local/lib添加到改文件。为了使新加的库生效,执行
#ldconfig –r /opt/rootfs/
3.复制mde演示程序
把生成的mde演示程序copy到/opt/rootfs/usr/local/minigui/目录下,只copy相关的应用程序和res目录,注意复制mginit时候把mginit.rc也复制过去
4.修改MiniGUI.cfg
修改MiniGUI.cfg先调试GAL engine,调试完成后再调试IAL engine,修改如下:其他默认:
# GAL engine
gal_engine=fbcon
 
# IAL engine
ial_engine=dummy   //修改再这里
 
mdev=none          //修改再这里
mtype=none         //修改再这里
 
[fbcon]
defaultmode=640x480-16bpp   //修改再这里,我使用的lcd是640x480
    
5.含有minigui根文件映像的制作。
我使用的linux2.6.11.1内核已经移植好了yaffs文件系统,可以使用mkyaffsimg工具制作yaffs根文件系统映像。烧到开发板即可,我是通过usb下载的。制作方法如下:
#cd /opt
#mkyaffsimg rootfs rootfs.img
这样就会在/opt生成rootfs.img映像文件,下载到开发板运行。
 
六.MiniGUI初始化一些问题以及解决办法。
按照以上的方法运行mginit的时候会出现一些问题,按照上面MiniGUI.cfg配置运行的话会出现:
问题1
[root@FriendlyARM mginit]# ./mginit
640x480 LCD
GAL ENGINE: Can't open /dev/tty0: No such file or directory
NEWGAL: Set video mode failure.
Error in step 3: Can not initialize graphics engine!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
解决方法:
#mknod /dev/tty0 c 4 0
 
这样在运行mginit的时候还会有错误,如下:
问题2
LoadSharedResource: No such file or directory
Error in step 7: Can not load shared resource!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
[root@FriendlyARM mginit]#
解决方法:
mkdir /var/tmp
这样就可以看到minigui初步界面了,如果强制退出的话,在下次运行mginit的话会出现下面的问题:
问题3:
Error in step 3: There is already an instance of 'mginit'!
解决方法:
删除/var/tmp目录下的2个minigui的文件。
 
七.输入引擎的添加
以上的操作还没有添加输入引擎。我的开发板可利用的输入引擎是usb鼠标,下面就是添加usb输入引擎的过程。
 
1.     查看usb鼠标设备节点
 
查看方法就是在没有插入usb鼠标和插入usb鼠标时看看/dev/input/目录下有什么变化,我的在/dev/input目录下多出了mouse1,说明我的usb鼠标的设备节点是/dev/input/mouse1,把这个节点链接到/dev下更名为mouse,即:
#ln –s /dev/input/mouse1 /dev/mouse
 
2.配置MiniGUI.cfg文件(可以通过串口修改)
配置MiniGUI.cfg文件,主要是添加输入引擎,添加方法如下:
# GAL engine
gal_engine=fbcon
 
# IAL engine
ial_engine=console //添加在这里
 
mdev=/dev/mouse   //添加在这里
mtype=PS2        //添加在这里
 
[fbcon]
defaultmode=640x480-16bpp
这样就把我的usb鼠标添加上去了,修改mginit.rc,自动执行same程序,然后运行mginit就会有对话框跳出来,点击确定确定后就进入到minigui界面了,点击左下角的start按钮会有问题,其他的游戏等都可以使用。


关键字:MiniGUI  移植  SBC2410 引用地址:我的MiniGUI移植之路

上一篇:S3C4510上嵌入式Web服务器-boa在uclinux下的的移植
下一篇:Linux帧缓冲设备驱动程序框架及图形界面GUI的移植

推荐阅读最新更新时间:2026-02-21 03:14

s5pv210移植Minigui3.0.12
移植平台: ubuntu:14.04 开发板:s5pv210(A8) Minigui版本:3.0.12 ----------------------------------------------------- 以下软件是开发板正常运行的必须安装包,在MiniGui官网可以下载 http://www.minigui.org/zhcn/【已放在嵌入式软件组资料共享文件夹】 ----------------------------------------------------- ├── freetype-2.3.9-fm20100818.tar.gz ├── jpegsrc.v7.tar.gz ├── libmgplus-1.2.4
[单片机]
MiniGUI移植到S3C2440的过程介绍
随着嵌入式系统的迅速发展,图形用户界面(Graph IC User Interface,GUI)需求越来越明显。MiniGUI是面向实时嵌入式系统的轻量级图形用户界面支持系统,以轻型、占用资源少、高性能、可配置等特点广泛应用于通信、医疗、工控、电子、机顶盒、多媒体等领域。本文正是针对这种需求,介绍如何在S3C240上移植MiniGUI的全过程。 1 图形用户界面MiniGUI MiniGUI是由原清华大学教师魏永明主持开发的轻量级图形系统,遵循GPL公约。所支持的操作系统已不仅仅限于Linux,它还可以在μCli nux,μC/OS-Ⅱ,eCos和VxWorks等系统上运行。已验证的硬件平台包括Intelx86,ARM
[单片机]
<font color='red'>MiniGUI</font><font color='red'>移植</font>到S3C2440的过程介绍
MiniGUI在基于OMAP5912开发板上的移植
   0 引 言   随着嵌入式的飞速发展,以ARM为硬件平台和以Linux为软件平台的方式受到广泛的关注。图形用户界面GUI是迄今为止计算机系统中最为成熟的人机交互技术。MiniGUI作为一款优秀的图形用户界面支持系统,目前已在许多实际产品和项目中得到了应用,这里正是针对这样的需求,详细介绍如何在OMAP5912开发板上移植MiniGUI的全过程。    1 OMAP5912开发板简介   OMAP5912处理器是由TI应用最为广泛的TMS320C55X DSP内核(192 MHz)与低功耗、增强型ARM926EJ-S微处理器(192 MHz)组成的双核应用处理器,采用O.13μm CMOS工艺制造。C55xDSP可
[嵌入式]
基于ARM-Linux的MiniGUI的仿真与移植
  近几年,随着嵌入式系统的日益发展和32位嵌入式处理器以及图形显示设备的广泛应用,目标产品对GUI(图形用户界面)的需求越来越多。由于嵌入式系统一般实时性要求很高,所以嵌入式系统下的GUI需要具有轻量级型、占用资源少、高性能等特点。此外,嵌入式系统往往是一种定制设备,它对GUI的需求各不相同,因此,GUI必须也可以定制。而MiniGUI是一个非常适合实时嵌入式产品的高效、可靠、可定制、小巧灵活的图形用户界面支持系统,被广泛的应用于高端科技产品中。利用MiniGUI开发出良好的人机交互界面已成为嵌入式开发中的迫切需求。本文实现了在ARM-Linux环境下进行基于QVFB的MiniGUI的模拟开发、调试,通过在PC机上的仿真模拟,将
[嵌入式]
嵌入式Linux环境下MiniGUI的研究与移植
   前言    近年来随着嵌入式设备与市场需求的广泛结合,手机、PDA、DVD播放机等产品的应用对可视化操作界面的简洁和方便提出了更高的要求,这都需要一个稳定可靠的高性能GUI系统来提供支持。图形用户界面(Graphic User Interface,简称GUI)的广泛流行是当今计算机技术的重要成就之一,它极大地方便了非专业用户的使用,人们可以通过窗口、菜单方便地进行操作。由于嵌入式系统实时性要求高,同时嵌入式系统硬件配置又有限,所以对轻型GUI的需求更加突出。另外,嵌入式系统往往是一种订制设备,它们对GUI的需求也各不相同,因此GUI也必须是可订制的。综上所述,嵌入式系统对GUI的基本要求应包括轻型、占用资源少、高性能、高
[嵌入式]
基于MiniGUI的数字加密电话系统GUI设计
   引言   在需要丰富人机交互信息的嵌入式系统应用中,高精度的动态图像显示非常重要。因此,嵌入式系统对GUI的实时性和稳定性的要求也越来越明显。但是,动态图像的抖动和刷新延迟的问题在嵌入式系统中经常出现,影响系统的显示效果   国产图形用户界面系统MiniGUI提供完备的多窗口机制和类Win32消息传递机制,便于实现多个进程间的消息传递。而且具有占用内存少、可移植性好等特点,因此在嵌入式领域中被广泛应用。但在实际应用中,笔者发现了两个问题:一是用MiniGUI的animation控件实现时出现动画抖动,二是显示较多图片的窗口刷新时屏幕闪烁,严重影响屏幕的显示效果。为解决以上两个问题,本系统采用MiniGUI的双缓冲技术和
[单片机]
基于<font color='red'>MiniGUI</font>的数字加密电话系统GUI设计
基于MiniGUI的机车显示终端图形用户界面研究
  机车显示终端是机车乘务员与机车设备之间进行人机信息交互的主要设备。在实际运用中,显示终端将机车的行车安全信息、故障信息和设备状态等反映给乘务员,以便有效地指导乘务员操作,确保机车安全,减小机车故障的影响。   机车显示终端用户界面是机车乘务员与机车显示终端相互交流信息的主要方式。机车乘务员对机车显示终端的关键技术并不熟悉,所以要求显示终端用户界面必须直观、认读性好,且与乘务员交互性好。目前我国的机车显示终端大多采用DOS操作系统。为了使用图形界面,开发工作必须从底层开始,难度和工作量都很大。   MiniGUI是一个自由软件项目,其目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。免费的MiniGUI
[电源管理]
基于<font color='red'>MiniGUI</font>的机车显示终端图形用户界面研究
基于MiniGUI的多进程图形用户界面的研究
0引言 嵌入式图形用户界面(Graphic User Interface)是嵌入式产品设计和开发的重点,随着嵌入式产品的广泛应用,所实现的功能也日益强大和复杂,因此对嵌入式产品的GUI在功能、易用性、稳定性等方面提出了更高的要求。目前的嵌入式GUI多是基于线程实现,在稳定性和功能上具有一定的局限性,所以开发多进程的GUI具有重要意义。 1多进程图形用户界面分析 1.1 多进程图形用户界面的优势 MiniGUI是由飞漫开发的基于事件驱动的图形用户界面支持系统,采用微C/S机制和分层设计模型,利用Unix域套接字实现客户应用程序和服务器程序之间的交互。早期的MiniGUI采用基于POSIX线程进行消息传递和窗口管理的机制,这
[单片机]
基于<font color='red'>MiniGUI</font>的多进程图形用户界面的研究
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved