Linux下Minigui开发环境的搭建(PC+S3C2440

花了两天时间终于把Minigui的开发环境搭建好了,遇到了很多问题,看了很多人的博客,对我的启发很大。关键是以前偷懒装redhat的时候为了省空间,很多库文件都没安装搞的自己很狼狈,不过也由于这个原因,让我真正细细的实践了一遍Minigui的移植,理解加深了很多。


 


Minigui算是我们中国人在世界软件界的骄傲了,作为中国人理应学它,虽然现在基本都用QT了。(关键是我的开发板只有16M的NORFLASH,华恒的板子真会赚钱,故意留个NANDFLASH不给你焊接上去,唉这么小的ROM只能望QT兴叹了)不过MiniGUI做的不错,玩了玩他们自带的扫雷啥的小游戏,还挺爽的。


 


华恒的S3C2440的光盘里面已经讲交叉编译环境下的Minigui给你做的七七八八了。下面是华恒的交叉编译环境的搭建步骤


A.编译minigui (在libminigui-1.3.3目录下操作)


B.编译minigui支持资源 (在minigui-res-1.3.3目录下操作)


C.编译minigui的示例程序 (在mg-samples-1.3.1mde-1.3.0目录下操作)


D.以上步骤编译出来的文件放到文件系统映像(ramdisk.image.gz)文件去


为了方便,我们上述目录和nfsroot目录都放入一个HHTECH字母打头脚本文件,执行相应脚本文件,就可以完成一系列的操作,可以使用vi打开相关文件看看,所做的操作将在下面介绍移植过程作出介绍。


A.在libminigui-1.3.3目录下编写了HHTECH.inst.lib脚本文件,执行此文件就可以把mingui 的库、包含文件等文件编译好,以便后面操作。


B.在mingui-res-1.3.3目录下编写了HHTECH.inst脚本文件,执行此文件,就可以把运行minigui示例程序时需要的相关资源拷贝到/HHARM2440/applications/minigui-free/nfsroot目录的相关目录下去。


C.在mg-samples-1.3.1和mde-1.3.0目录下编写了HHTECH.compile.mg脚本文件,执行此文件,在mg-samples-1.3.1/src和mde-1.3.0/bomb目录及其它目录下就可以生成minigui的示例,mg-samples目录下是一些简单的示例,mde-1.3.1目录下是复杂一些的示例或应用程序。这些应用程序需要客户可以自行选择哪些拷贝到文件系统(ramdisk.imag.gz)中去。我们已经拷贝了mg-samples-1.3.1/src/目录下的treeview到我们带的文件系统映像文件


 


不是用的华恒的板子的兄弟们也不用急,因为华恒只给了交叉编译环境的,为了开发方便,我们换需要搭建在PC环境下的Minigui。具体的移植搭建方法完全一样,只是用的编译工具不同,一个是gcc一个是arm-linux-gcc


为了与交叉编译环境兼容,我选择了minigui1.3.3版本


 


那么开始移植吧:


 


1.       安装Minigui


1)首先下载Minigui的软件:


http://www.minigui.com/download/libminigui-1.3.3.tar.gz   


Minigui的库文件


http://www.minigui.com/download/minigui-res-1.3.3.tar.gz 


minigui 所使用的资源,包括基本字体、图标、位图和鼠标光标     


这两个包的下载需要你在www.minigui.com    上注册过才可以下载,免费注册的,自己去下吧


http://www.minigui.com/downloads/minigui13/mde-1.3.0.tar.gz          图形界面程序


http://www.minigui.com/downloads/minigui13/mg-samples-1.3.0.tar.gz   


一些小例子


2)下载支持的库文件


这里注意的是查看你的linux里面有没有jpeg, png ,ttf ,lz这些库文件


可以利用解压缩libminigui-1.3.3下的configture进行验证:


    # tar  zxf  libminigui-1.3.3.tar.gz


    # cd libminigui-1.3.3


# ./configure                 


    注意看configure的信息,如果有:


   checking for FrameBuffer console support... yes


checking for pthread library... yes


checking for TT_FreeType_Version in -lttf... yes


checking for jpeg_std_error in -ljpeg... yes


checking for png_check_sig in -lpng... yes


   如果里面有“no”的话,不用编译了,先把相关的库装起来在编译libminigui。由于我的什么库都没有因此都要安装,下面详细介绍:


 


A:首先安装 zlib 库,这个是后面的库的编译基础。


http://www.zlib.net/zlib-1.2.3.tar.gz 


400多K,去下载吧,


  


   保存到一个目录下后(如  /minigui)


# tar zxf zlib-1.2.3.tar.gz


   #  cd  / zlib-1.2.3


#  ./configure  --shared                  编译成动态库


#  make


# make install                           安装


 


B:安装png库


# tar zxf libpng-1.0.10rc1.tar.gz


# cd libpng-1.0.10rc1


Libpng 不提供有效的 configure 脚本,所以只好自己动手改 Makefile 文件了。可以把 Scripts  下的一个 makefile拷出来自己动手改


# cp scripts/makefile.linux  Makefile  


   #  make


#  make install


 


C:安装libjpeg-6b


tar xzvf jpegsrc.v6b.tar.gz


cd jpeg-6b


.   /configure --enable-static --enable-shared --prefix=/usr       //关键这样才能生成要求的库文件


make


mkdir /usr/man/man1                //必须件这个文件夹否则安装出错


make install


 


D:安装ttf


这个比较麻烦一点。


# tar zxf  freetype-1.3.1.tar.gz       //老一套


# cd freetype-1.3.1   //进到目录里去


# mkdir –p  /opt/ libttf/extend   // 自己另外建立一个目录


# cp freetype-1.3.1/lib/*  freetype-1.3.1/lib/arch/ansi/*  libttf/  //把有用的东西拷出来


#cp freetype-1.3.1/lib/extend/*  libttf/extend/    把 extend 目录下的文件也拷出来


                                         就是拷贝到自建的目录/opt/ libttf/


注意 cp 命令不要用 –r 选项,因为会把一些没用的东西出拷出来的


 


拷贝完成了,现在来自己手动编译了


 


# cd libttf


# gcc -c -fPIC -O2 freetype.c         //不要奇怪,对,我们只要编译这一个 .c 文


//因为它包括了其它所有的 .c 文件了,你可以自己查看它的内容  


# gcc -c -fPIC -O2 -I./  extend/*.c   把 extend 下所有的 .c 文件全部编译


# gcc --shared -o libttf.so  *.o    生成最后的动态链接库,OK了


 


把编译好的东东拷贝到系统路径


 


mkdir –p /usr/local/ include/freetype1/freetype


 


cp *.h  extend/*.h   /usr/local/ include/freetype1/freetype


cp libttf.so  /usr/local /lib


 


安装库完成,哈!


 


 


3)编译libminigui-1.3.3


# tar  zxf  libminigui-1.3.3.tar.gz


    # cd libminigui-1.3.3


# ./configure                              //这是应该全是yes    


# make


# make install


4)编译安装minigui-res-1.3.3               //不会有问题的


# tar  zxf  minigui-res-1.3.3


    # cd minigui-res-1.3.3


# ./configure                               


# make


# make install


 


 


5)最后,安装 popt 库,这个库在编译 mde 程序时需要使用,不然编译没法通过 http://gd.tuwien.ac.at/utils/rpm.org/dist/rpm-4.1.x/popt-1.7.tar.gz   


#  tar zxf popt-1.7.tar.gz


# cd popt-1.7


# ./configure --enable-shared --enable-static


# make


# make install


 


6)激活FramebeBuffer


 


 这里很重要:


 # cd  /boot/grub


# vim menu.list


grub.conf其实是grub引导程序menu.lst 符号连接文件指向的引导菜单, 再其中加


title MiniGUI FrameBuffer
root (hd0,0)
kernel /boot/vmlinuz-2.4.20-8 ro root="LABEL/" vga="0x0314" fb:on


意思是引导标题MiniGUI FrameFuffer模式 root 所在第一IDE硬盘的第一分区做为引导分区kernel 内核的路径在/boot下名为vmlinuz-2.4.20-8的文件,ro是以只读方式挂接 root="LABEL/vga"=0x0314 意为使用800*600的分辩率,如要使用640*480分辩率自行改为vga=0x0311 使用1024*768分辩率请改为vga=0x0317 , 后面的fb:on 是关键,它就是打开内核FrameBuffer显示模式的关键参数,重新启动后你就可以看到屏幕左上角可爱的小启鹅了。


6)修改MiniGUI.cfg


MiniGUI 有两种执行方式,一个是利用qvfb开启模拟环境,他需要X图形支持,由于我的linux没有安装这些库,他们的以来关系有太复杂所以我没有选,选择了另一种更简单的方式就是在 Console 下在 Framebuffer 上执行,这种方式也带来很多麻烦,后面介绍。


 


修改 /usr/local/etc/MiniGUI.cfg 文件,如下


 


[system]


# GAL engine


gal_engine=fbcon


  //这里修改


 


# IAL engine


ial_engine=console


  //这里修改


 


mdev=/dev/mouse


mtype=none   //这里改成none,因为经常鼠标不正常


 


[fbcon]


defaultmode=800x600-16bpp       //与前面的vga=0x0314匹配


 


[qvfb]


defaultmode=640x480-16bpp    


display=0


 


重启动你的 RedHat 9 ,在出现 Grub 的时候按 E 键,在 kernel =…..      这一行的最后加入  vga=0x314  ,然后 Enter,然后在 kernel=…  这一行上按 b  就可以了,这时候可以在启动时看到一个小企鹅的图标,OK


 


7)修改默认库路径


修改你的 /etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib


#  ldconfig


 


8)编译例程


还记得前面让你下载的 mg-samples-1.3.0.tar.gz 这个包吧,这个就是一些例子,现在试试吧:


# tar zxf mg-samples-1.3.0.tar.gz


# ./configure


# make


# cd src


看看 src 目录下是不是已经编译出可执行文件来了


 


8)运行程序


前面说采用fbcon]的方法不好,就在这里体现了,我在这里被卡了很久。一切Minigui的程序都不能在图形界面下运行,否则会冲突早成花屏,好像没有很多人提出这个解决方法,搞的的卡了很久,也许他们都用qvfb模式了吧。


解决方法就是进入纯字符模式:


可以按 ctrl+Alt+F5(用虚拟机的兄弟注意:先把虚拟机的 参数-à热键 改成ctrl+Alt+Shift否则会冲突,不响应)


在纯字符下我们可以运行刚才编译好的程序:


# cd …./mg-sample*


# cd /src


# ./helloworld


可以看到我们的程序跑起来。



 


另外回到图形界面可以使用指令:


# init 3   (进入字符界面是  #  init5)


来回的切换非常慢,中间还要输入用户名和密码,大家可以参考别人的博客,移植qvfb模式。更方便。


http://www.minigui.org/cgi-bin/lb5000/view.cgi?forum=6&topic=5548

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录第1章 在PC上安装双系统 1 1.1前期准备 1 1.2安装Fedora10过程详解 1 1.3安装Fedora10后的配置 9 1.3.1外观及Gnome桌面的使用 9 1.3.2网卡配置及连接IPV6网站 14 1.3.3升级及安装软件 17 1.3.4系统服务配置 18 1.3.5安装Linux下的虚拟机 19 1.4修复双系统启动 22 第2章 针对ARM目标板的交叉开发 24 2.1交叉编译环境 24 2.2交叉调试方法 25 2.3共享库相关 28 2.3.1基本的共享库使用知识点 28 2.3.2交叉编译的共享库 29 第3章 Linux下的串口使用 32 3.1 Linux下的串口设备 32 3.1.1串口简介 32 3.1.2串口与Linux终端设备、控制台 34 3.2 Linux下的“超级终端”工具 38 3.2.1 C-kermit的安装与使用 38 3.2.2简单的串口单双工通信实验 40 3.3串口编程总结 42 3.3.1相关数据结构 42 3.3.2相关函数 46 3.3.2串口编程实例 54 第4章 NFS交叉开发环境 59 4.1配置NFS服务 59 4.1.1设置共享目录 59 4.1.2启动和停止nfs 服务 59 4.2 NFS根文件系统启动 59 4.3 NFS交叉编译 60 第5章 创建根文件系统 62 5.1移植Busybox 62 5.2移植Glibc库 63 5.3完善根文件系统 63 5.4制作/烧写yaffs映像文件 66 第6章 MiniGUI移植与开发 67 6.1 MiniGUIPC机上的开发环境的建立 67 6.1.1安装QVFB 67 6.1.2在PC上安装MiniGUI 68 6.2 MiniGUIS3C2440上的开发环境的建立 71 6.2.1交叉编译相关的开源库 71 6.2.2针对本系统的MiniGUI输入引擎设计 73 6.2.3交叉编译并安装MiniGUI 74 6.2.4在mini2440开发板上运行MiniGUI示例程序 76 6.3 MiniGUI编程小结 78 6.3.1创建MiniGUI程序 78 6.3.2编译MiniGUI程序 81 6.3.3对话框程序 83 6.3.4自定义控件编写 88 6.3.5加入自己的线程 92 第7章 燃气监测系统的开发、调试过程 94 7.1项目简介 94 7.2开发设计 94 7.3调试过程 96 参考文献 100 附录 102 附录1电子科技大学清水河校区802.x上网认证脚本——作者lili(可以用来做学习Shell编程的实例哦) 102 附录2针对mini2440开发板的输入引擎文件mini2440.h和mini2440.c(原创) 108 附录3 VIM配置文件~/.vimrc内容 116

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值