Andrew Huang 转载请注明作者及网址
用于测试的I80屏,因为找到不到最新的3.0.下载,因此用 minigui 1.6.10 来测试.
移植是在mini6410上进行的。
一.准备工作
一.下载
感谢这位 网友,他把所有相关源码打这一个包里,下载使用了。
二.项目目录
为了方便管理,按照我的一贯的规范,我在通用项目目录 workspace建了minigui,minigui的所有文件都在这个目录下.
workspace
|
+-- output
| |
| +-- arm-linux # 库,应用程序输出目录
|
+--- minigui
|
+-- libminigui-1.6.10 #minigui 图形库
|
+-- minigui-res-1.6.10 #minigui 资源(位图,图标,光标,字体)
|
+-- mg-samples-1.6.10 #minigui 简单演示例子
|
+-- mde-1.6.10 #minigui 增强样例
三.解压
tar xvf libminigui-1.6.10.tar.gz
tar xvf minigui-res-1.6.10.tar.gz
tar xvf mg-samples-1.6.10.tar.gz
tar xvf mde-1.6.10.tar.gz
四.安装资源
这里安装资源是指安装workspace/output/arm-linux 中统一个发布目录,以便NFS运行或打包。
a)cd minigui-res-1.6.10
b)修改config.linux中prefix的定义。原值是
prefix = $(TOPDIR)/usr/local
将其修改为 prefix=$(PWD)/../../output/arm-linux
c)安装
make install
成功后,资源会安装在 $(PWD)/../../output/arm-linux/lib/minigui/res
二.移植minigui 库
一.编译libminigui
cd libminigui-1.6.10
生成Makefile
./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-shared --enable-static --disable-textmode --enable-videofbcon
编译 make
安装 make install
如果成功,应该在output/arm-linux/lib 生成libminigui.so.XXX系列文件。
二.编译演示程序
cd mg-samples-1.6.10
生成Makefile
./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-shared --enable-static CPPFLAGS="-I$PWD/../../output/arm-linux/include" LDFLAGS="-L$PWD/../../output/arm-linux/lib "
编译make
安装make install
编译成功后,可执行文件仍在src下。
四.修改配文件
编辑Minigui.Cfg 文件,它是minigui库运行配置文件,缺省配置文件放在输出目录的/etc目录下。
比如我的例子里是 $PWD/../../ouput/arm-linux/etc/Minigui.Cfg.
没有这个文件,运行程序会提示:
./run.sh
MISC: Can not locate your MiniGUI.cfg file or bad files!
InitGUI: Initialization of misc things failure!
修改后有三个位置可以放,一个用户目录,那必须改名成 .MiniGUI.cfg ,即 ~/.MiniGUI.cfg
另外可以放在 /etc 或 /usr/local/etc 目录下。名字仍然是 MiniGUI.cfg.
关于配置文件的含义:
配置文件的所有资源采用绝对路径,并指向 /usr/local/lib/minigui/res,这里修改成资源真正安装(minigui-res-1.6.10),一次性全部置换就行
在修改之前,要明白两个概念,在开发板上运行,直接采用Linux framebuffer 接口即可,在X86 Linux上,因为没有framebuffer,只用能用QT 开发的应用程序qvfb来虚拟一个framebuffer驱动。
a)[system] 表示系统启动配置
[system]
# GAL engine and default options 图形引擎配置
gal_engine=qvfb #默认的图形底层接口 defaultmode=800x600-16bpp #分辩率与bpp
我在mini6410开发板的上配置是
[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=480x272-16bpp
# IAL engine 输入适配层配置
ial_engine=qvfb #输入模式,qvfb下设为qvfb,fbcon 设为console
mdev=/dev/input/mice #鼠标的设备结点
mtype=IMPS2 #鼠标类型
我的配置是
[system]
# GAL engine and default options
gal_engine=console
defaultmode=480x272-16bpp
b) [fbcon] [qvfb] 段
这两段就是被配成相关配置后,生效,只有一个defaultmode ,含议与system相同
五.运行测试样例
写一个run.sh,里面把LD_LIBRARY_PATH指向库路径。大部分例子都能运行
export PRJ_HOME=/mnt/nfs/workspace/output/arm-linux
export LD_LIBRARY_PATH=$PRJ_HOME/lib
#./gridview
#./loadbmp
#./button
#./listbox
#./coolbar
#./menubutton
#./treeview
#./combobox
./iconview
运行图例: