📄 readme.zh
字号:
名称 MiniGUI - 面向实时嵌入式 Linux 系统的小型跨平台图形用户界面支持系统目录 1. 介绍 2. 什么是 MiniGUI-Lite 3. MiniGUI 版本 1.6 的新功能特点 4. 在 Linux 上安装 MiniGUI 5. Linux 上的安装及配置示例 6. 开发历史 7. 有关作者 8. 如果遇到问题 9. 版权信息 10. 在商业或专有系统中的使用 MiniGUI1. 介绍 MiniGUI 是一个遵循 GPL 条款的自由软件项目. 该项目由北京飞漫软件技术 有限公司主持. MiniGUI 的目标是提供一个稳定的、轻量级的跨操作系统图形用户界面支持系统, 尤其适合基于 Linux/uClinux, eCos, uC/OS-II, VxWorks 等的实时嵌入式系统. MiniGUI 为应用程序定义了一组轻量级的窗口和图形设备接口. 利用这些接口, 每个 应用程序可以建立多个窗口, 而且可以在这些窗口中绘制图形, 且互不影响. 用户也可以利用 MiniGUI 建立菜单, 按钮, 列表框等常见的 GUI 元素. MiniGUI 由三个函数库组成: libminigui, libmgext 以及 libvcongui. libminigui 是提供窗口管理和图形接口的核心函数库, 也提供了大量的标准控件; libmgext 是 libminigui 的一个扩展库, 提供了一些有用的控件, 同时提供了一些 方便而且有用的用户界面函数, 比如 "文件打开" 对话框; libvcongui 则提供了 一个应用程序可用的虚拟控制台窗口, 从而可以方便地在 MiniGUI 环境中运行 字符界面的应用程序. 用户可以将 MiniGUI 配置成 "MiniGUI-Threads" 或者 " MiniGUI-Lite". 运行在 MiniGUI-Threads 上的程序可以在不同的线程中建立多个窗口, 但所有 的窗口在一个进程中运行. 相反, 运行在 MiniGUI-Lite 上的每个程序是单独 的进程, 每个进程也可以建立多个窗口. MiniGUI-Threads 适合于具有单一 功能的实时系统, 而 MiniGUI-Lite 则适合于类似于 PDA, STB 和瘦客户机 的复杂嵌入式系统. 用户还可将 MiniGUI V1.5.x 编译成单进程的版本,该版本下的应用程序可 单独执行,而不需首先运行 mginit 程序。 MiniGUI 的最新稳定版是版本 1.5.3; 最新开发版是版本 1.9.x. 您可以在 我们的主页上找到最新的 MiniGUI 相关信息: http://www.minigui.org 2002 年 9 月, 由 MiniGUI 的主要开发者创立的北京飞漫软件技术有限公司成立, MiniGUI 的开发主持和维护工作从松散组织转向商业机构. 相关信息可从如下站点 获得: http://www.minigui.com2. 什么是 MiniGUI-Lite 最初的 MiniGUI 基于 POSIX 兼容的线程库, 而这种体系结构非常适合大多数 传统的嵌入式操作系统, 比如 eCos, uC/OS-II 以及 VxWorks 等. 但是, 如果我们使用嵌入式 Linux, 则类似 X Window 那样的体系结构将带来更好的 稳定性及伸缩性, 因为每个进程的地址空间都是独立的, 而且可以使用诸如 共享库这样的机制. 现在, 用户可以使用 MiniGUI-Lite 以 Linux 进程的形式一次运行多个 MiniGUI 程序. MiniGUI-Lite 是原先 MiniGUI 版本的一个轻量级版本, 因为不再需要 LinuxThreads 库. 用户可以从一个称为 "mginit" 的程序中运行其它基于 MiniGUI-Lite 的程序. 和 X Window 类似, "mginit" 程序称为服务器, 而其它程序 称为客户. 客户通过 UNIX 域套接字连接到服务器, 而服务器接受来自客户的请求. 服务器为客 户提供共享资源, 并向顶层客户发送鼠标和键盘事件. 如果某个客户由于某个原因 终止, 服务器并不会受到影响, 而可以继续正常运行. 在我们发布的源代码当中, 有一个软件包称为 "MDE". 在这个软件包中, 有一个 "mginit" 程序可创建一个虚拟控制台窗口. 你可以从该控制台的命令行 启动其它程序, 甚至可以利用 "gdb" 调试程序. 用户可以在一个基于 MiniGUI-Lite 的程序中创建多个窗口, 但不能启动新线程创建 窗口. 因此, 原先 MiniGUI 中的某些函数不能再使用了, 但大多数的 MiniGUI-Lite API 和原先的 MiniGUI 版本是兼容的. 从原先的 MiniGUI 移植到 MiniGUI-Lite 相当简单. MiniGUI 的源代码默认配置为 MiniGUI-Lite. 在运行 "./configure" 配置 MiniGUI 时, 你可以使用如下命令禁止 MiniGUI-Lite, 而编译成原先的 MiniGUI 版本: $ ./configure --disable-lite 为了明确区分, 我们将基于 PThread 的 MiniGUI 称为 "MiniGUI-Threads".3. MiniGUI 版本 1.6 的新功能特点 MiniGUI 1.6 版本中增加了如下新的功能特色: * 更多操作系统支持。包括普通嵌入式 Linux、uClinux、eCos、uC/OS-II、以及 传统的实时嵌入式操作系统,如 VxWorks。 * 提供了高级二维绘图函数,可以设置线宽、线型、填充模式等。 * 更多硬件开发板支持。包括 Intel DMG 机顶盒、Sigma Designs RealMagic 机顶盒、S3C2410 开发板、华恒 ARM2410 开发板、 WinBond SVPxx 可视电话等等。 * 提供了界面的皮肤支持,可帮助您编写华丽的用户界面。 * 更多控件支持。包括透明控件支持,ScrollView 和 ScrollWnd 控件、增强 编辑框控件、ListView 控件及网格控件等。 * 我们可以将 MiniGUI 所使用的资源,诸如位图、图标和字体等编译到函数库中, 这样 MiniGUI 的运行就不需要在文件系统中单独存放资源文件了,包括 MiniGUI.cfg 配置文件在内,而且将提高 MiniGUI 的初始化速度。这个特性非常 适合 uClinux/eCos/uCOS-II 等小型嵌入式操作系统。 * 我们可以将 MiniGUI 配置成以单进程形式运行的版本,也就是说,如果您的 系统足够简单,则可以不需要线程支持或者 mginit 程序。 * 我们针对 uClinux 等小型嵌入式操作系统优化了 MiniGUI 的内存使用。 * 我们现在可以使用 make menuconfig 来配置 MiniGUI,从而提供给您非常 便利的配置和定制界面。4. 在 Linux 上安装 MiniGUI 4.1 安装前的准备 1) 选择图形引擎 如果您的 Linux 内核支持 FrameBuffer, 则可以使用内建于 MiniGUI 的 图形引擎 -- 即 "私有引擎". 这样, 就没有必要安装下面提到的其它图形 函数库作为 MiniGUI 的图形引擎了. 而且, Native 引擎是唯一支持 MiniGUI-Lite 的引擎, 如果您要将 MiniGUI 配置为 MiniGUI-Lite, 也没有必要安装 其它的图形库作为引擎. Native 引擎既可以支持 MiniGUI-Threads, 也可以支持 MiniGUI-Lite. 需要 注意的是, Native 引擎目前还不能提供对 "fbvga16" (标准 VGA 16 色模式) 的良好支持. 而且需要注意 Native 引擎目前只能运行在 Linux FrameBuffer 之上. 如果您的 Linux 内核不支持 FrameBuffer, 则可以使用 SVGALib 作为图形 引擎. SVGALib 是一种直接访问图形芯片的老的图形函数库. 因此, 如果 使用 SVGALib, 则需要获得 root 权限才能让 MiniGUI 程序支持进行 图形芯片的 I/O 操作. 需要注意的是, 因为 SVGALib 是一种老的图形库, 所以不能对大部分流行 的显示卡提供良好支持. 然而, 如果您的显示芯片是 VESA 兼容的, 则 SVGALib 可以通过 VESA BIOS 2.0 提供的接口良好运行. 许多显示芯片都是 VESA 兼容的, 但某些不是, 比如 Intel 的 i810 芯片组. 你也可以使用 LibGGI 作为 MiniGUI 的图形引擎. LibGGI 是一种新的面向 Linux 的图形引擎, 它也可以稳定地运行在 Linux FrameBuffer 之上. 最 主要的是, 运行在 LibGGI 之上的应用程序可以方便地运行在 X Window 之上, 而且不需要重新编译. 注意, SVGALib 和 LibGGI 不能用来支持 MiniGUI-Lite. 对于 MiniGUI 应用开发者来讲, 另外一个可选的图形引擎是 QVFB. QVFB 是 运行在 X Window 上的一个虚拟 FrameBuffer 程序. 利用它, 我们可以在 X Window 上运行和调试 MiniGUI 程序. 2) 安装引擎 如果您决定使用 Native 引擎, 则没有必要预先安装某个特定的图形库. Native 引擎已经内建于 MiniGUI 当中. 如果要使用 SVGALib 作为图形引擎, 则需要安装 "svgalib-1.4.3" 软件包. 请从如下 FTP 站点下载: ftp://ftp.minigui.net/pub/minigui/dep-libs 或者从 HTTP 站点下载: http://www.minigui.com/download/cindex.shtml 并将上述两个软件包安装到您的系统当中. 安装过程将覆盖系统中老的 SVGALib, 但并不会影响您的系统. 如果您使用 LibGGI 作为图形引擎, 请从 http://www.ggi-projects.org 下载 最新的 GGI 源代码, 并安装之. 或者, 也可以从我们的站点上下载: http://www.minigui.org/download/cindex.shtml 3) 下载 MiniGUI 在下载并安装好图形引擎之后, 请从我们的站点上下载如下 tar.gz 软件包并解开: * libminigui-1.3.x.tar.gz: MiniGUI 函数库源代码, 其中包括 libminigui, libmywins, libmgext, 和 libvcongui. * minigui-res-1.3.x.tar.gz: MiniGUI 所使用的资源, 包括基本字体, 图标, 位图和鼠标光标. * mde-1.3.x.tar.gz: MiniGUI 的综合示例程序. 4.2 安装 MiniGUI 的资源文件 我们首先要安装 MiniGUI 的资源文件. 请按照如下步骤: 1) 使用 "tar" 命令解开 "minigui-res-1.3.x.tar.gz". 可使用如下命令: $ tar zxf minigui-res-1.3.x.tar.gz 2) 改变到新建目录中, 然后以超级用户身份运行 "make" 命令: $ su -c make install 4.3 配置和编译 MiniGUI MiniGUI 使用了 "automake" 和 "autoconf" 接口, 因而 MiniGUI 的配置和编译 非常容易: 1) 使用 "tar" 解开 "libminigui-1.3.x.tar.gz" 到新的目录: $ tar zxf libminigui-1.3.x.tar.gz
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -