Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1419903
  • 博文数量: 430
  • 博客积分: 9995
  • 博客等级: 中将
  • 技术积分: 4388
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-24 18:04
文章存档

2013年(1)

2008年(2)

2007年(14)

2006年(413)

分类:

2006-06-13 17:22:54

MiniGUI 安装经验
作者:青瓜王子
QQ:1788583
参考:<<我的minigui 安装经验>>,作者不明
1. 安装qvfb:
在X windows 下,用Qt 的frameBuffer 比较容易
首先在 下载qvfb-1.0.tar.gz ,然后
tar -zxvf qvfb-1.0.tar.gz
cd qvfb-1.0
./configure
make
make install
2. 安装minigui 资源文件
在 下载minigui-res-str-1.6.tar.gz ,然后
tar -zxvf minigui-res-str-1.6.tar.gz
cd minigui-res-str-1.6
make install
3. 安装lib 文件
在 下载libminigui-str-1.6.2.tar.gz ,然后
tar -zxvf libminigui-str-1.6.2.tar.gz
cd libminigui-str-1.6.2
./autogen.sh
./configure --disable-lite
make
make install
vi /etc/ld.so.conf 在最后添加一行 /usr/local/lib 然后:wq 保存推出
vi /usr/local/etc/Minigui.cfg 把输入fbcon,输出console 都改为qvfb 然后保存退出,然后运行
ldconfig
4. 编译实例文件
在 下载mg-samples-str-1.6.2.tar.gz ,然后
tar -zxvf mg-samples-str-1.6.2.tar.gz
cd mg-samples-str-1.6.2
./configure --disable-lite
make
补充一句,如果helloworld.c 编译不过,去掉#include 试一试
5. 运行qvfb
重新开一个终端terminal,输入
qvfb &
然后再qvfb 的左上角选择configure,设置为640X480 --16bpp,然后确定后不要退出
进入编译好的mg-samples-str-1.6.2 目录,随便运行编译好的程序应该没有问题。
6. 建立交叉编译环境
我用的是S3C2410,armv4l-unknown-linux-gcc,默认安装目录为/opt/host/armv4l/bin
在你的bashrc 中添加环境变量即可
vi /etc/bashrc
最后一行加入:
export PATH=$PATH:/opt/host/armv4l/bin 保存退出后执行
source /etc/bashrc
7. 交叉编译你的minigui-lib
我用的是1.3.3 版本
tar –zxvf minigui-libminigui-1.3.3.tar.gz
cd libminigui -1.3.3
make menuconfig
注意去掉jpg,png support ,不要incoreres,不要lite 模式,交叉编译选择armv4l-unknown-linux-gcc,路
径选择/opt/host/armv4l,并把make menuconfig执行后libminigui -1.3.3 文件夹下的所有Makefile 文件里的
arm-unknown 替换成armv4l-unknown,然后
make
make install
这时minigui 被安装到/opt/host/armv4l 下
8. 交叉编译你的mde(可省略该步骤)
tar –zxvf mde-1.3.0.tar.gz
cd mde-1.3.0
export TARGET=armv4l-unknown-linux
export PREFIX=/opt/host/armv4l
export CC=armv4l-unknown-linux-gcc
export LDFLAGS=-L/$PREFIX/lib
export CPPFLAGS=-I/$PREFIX/include
./configure --target=$TARGET --host=$TARGET --prefix=$PREFIX -exec-prefix=$PREFIX --enable-static
make
补充一句,如果helloworld.c 编译不过,去掉#include 试一试
此时应经生成可执行文件。
9. 编写Hello 程序
建立一个test.c 文件,输入以下内容:
#include
#include
#include
#include
#include
#ifndef _LITE_VERSION
#include
#endif
static int TestWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
switch (message) {
case MSG_PAINT:
hdc = BeginPaint (hWnd);
TextOut(hdc,100,100,"hello\n!");
EndPaint(hWnd,hdc);
return 0;
case MSG_CLOSE:
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
void InitCreateInfo(MAINWINCREATE * pCreateInfo)
{
pCreateInfo->dwStyle = WS_CAPTION|WS_VISIBLE;
pCreateInfo->dwExStyle = 0;
pCreateInfo->spCaption = "Hello world!";
pCreateInfo->hMenu = 0;
pCreateInfo->hCursor = GetSystemCursor(0);
pCreateInfo->hIcon = 0;
pCreateInfo->MainWindowProc = TestWinProc;
pCreateInfo->lx = 0;
pCreateInfo->ty = 0;
pCreateInfo->rx = 240;
pCreateInfo->by = 320;
pCreateInfo->iBkColor = PIXEL_lightwhite;
pCreateInfo->dwAddData = 0;
pCreateInfo->hHosting = HWND_DESKTOP;
}
int MiniGUIMain (int argc, const char* argv[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _LITE_VERSION
SetDesktopRect(0, 0, 240, 320);
#endif
InitCreateInfo(&CreateInfo);
hMainWnd = CreateMainWindow (&CreateInfo);
printf ("The main window created.\n");
if (hMainWnd == HWND_INVALID)
return -1;
ShowWindow(hMainWnd, SW_SHOWNORMAL);
printf ("The main window showed.\n");
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hMainWnd);
return 0;
}
然后建立一个Makefile 文件,输入以下内容:
CC = /opt/host/armv4l/bin/armv4l-unknown-linux-gcc
LD = /opt/host/armv4l/bin/armv4l-unknown-linux-ld
EXEC = test
OBJS = test.o
CFLAGS +=
LDFLAGS += -I/opt/host/armv4l/include -lminigui -lpthread
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS $(LDLIBS_$@))
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
接着再运行make,就可生成可执行文件test
10. 配置嵌入式Linux 上的MiniGUI 运行环境
A. 加载MiniGUI 库
把PC 机上/opt/host/armv4l/lib 下的MiniGUI 库复制到PC 的NFS 共享目录上
cp /opt/host/armv4l/lib/libminigui* /mnt/res
cp /opt/host/armv4l/lib/libmgext* /mnt/res
cp /opt/host/armv4l/lib/libvcongui* /mnt/res
然后再把该共享目录的文件复制到目标机Linux(嵌入式Linux)系统的/lib 目录下
cp * /lib/
B. 安装MiniGUI 资源
tar –zxvf minigui-res-1.3.3.tar.gz
然后将这些资源文件安装到目标板的/usr/local/lib/minigui/res 目录下
C. 配置MiniGUI.cfg
把MiniGUI.cfg 放到嵌入式Linux 的/etc 目录下
11. 运行嵌入式Linux 程序。
把编译好的test 程序放到目标机上,执行
./test&
如果出现错误,可能是图形引擎或鼠标设备和鼠标类型设置有误,需要设置MiniGUI.cfg。
我的板子上的MiniGUI.cfg 是这样设置的:

mdev=/dev/input/mouse0
mtype=IMPS2
[fbcon]
defaultmode=240x320-16pp
[qvfb]
defaultmode=240x320-16pp
desplay=0

注意鼠标要设置正确,否则会出错或黑屏,如不需要鼠标,可设置mtype=none。
阅读(2702) | 评论(0) | 转发(0) |
0

上一篇:miniGUI配置使用FAQ

下一篇:输入法窗口

给主人留下些什么吧!~~