作者:刘溯奇 日期:2009-2-5 地点:南宁师专数计系
1. 环境
硬件环境:
Host:X86PC
Target:友善之臂mini2440开发板
软件环境:
Host:VMware虚拟机下的redhat linux 9.0(完全安装)
Target:arm-linux kernel:linux-2.6.13
Crosstool: arm-linux-gcc-3.3.2
2.准备以下源码包(下载)
http://sourceforge.net/project/showfiles.php?group_id=2317&package_id=281013&release_id=617949
http://www.minigui.org/res.shtml
开发库:libminigui-1.6.0.tar.gz
资源文件:minigui-res-1.6.10.tar.gz
示例程序:mg-samples-str-1.6.2.tar.gz
3.编译安装
(1) 准备工作
在redhat linux 9.0下新建工作目录
[root@localhost /]# mkdir /minigui 工作目录
[root@localhost /]# mkdir /minigui/compressed /minigui/source
[root@localhost /]# cd /minigui/compressed 进入工作目录
说明:把第2步下载的源码包放到该目录中,即/minigui/compressed
(2)编译安装minigui-res-1.6.10.tar.gz
说明:minigui 所使用的资源,包括基本字体、图标、位图和鼠标光标。
[root@localhost compressed]# tar xzvf minigui-res-1.6.10.tar.gz –C ../source
[root@localhost compressed]# cd ../source/minigui-res-1.6.10
[root@localhost minigui-res-1.6.10]# make install
把生成的……/minigui/res目录下的所有文件拷贝到开发板上,其开发板上的目录如下形式/usr/local/lib/minigui/res/……,实际上这个目录与配置文件MiniGUI.cfg里的相应内容的目录一致,以便找到相应的资源。
(3)编译安装libminigui-1.6.0.tar.gz
说明:minigui函数库源代码。
[root@localhost minigui-res-1.6.10]# cd /minigui/compressed
[root@localhost compressed]# tar xzvf libminigui-1.6.0.tar.gz –C ../source
[root@localhost compressed]# cd ../source/libminigui-1.6.0
[root@localhost libminigui-1.6.0]# ./configure --prefix=/home/ --host=arm-linux --target=arm-linux --build=i386-linux CC=arm-linux-gcc --with-osname=linux --with-style=classic --with-targetname=fbcon --enable-autoial --enable-commial --enable-rbf16 --disable-vbfsupport
[root@localhost libminigui-1.6.0]# make
[root@localhost libminigui-1.6.0]# make install
把/home/lib目录下的所有库文件(注:--prefix=/home/)拷贝到开发板上的/lib目录下,把/home/etc下的MiniGUI.cfg拷贝到开发板上的/etc目录下。
注:--disable-vbfsupport ,一定要注意这个选项,否则在开发板上运行示例程序时,提示找不到var bitmap font,实际上在开发板上的/usr/local/lib/minigui/res/font目录下没有var bitmap font字体库,至于如何支持它,没有深究。其他选项可通过./configure –h帮助查看,根据自己的开发板及项目需要控制相应的功能。
(4)编译 mg-samples-str-1.6.2.tar.gz
同上原理:
解压
[………]# ./configure –host=arm-linux
[………]# make
把生成的可执行文件helloworld拷贝到开发板上的/usr/local/sbin目录下
(6) 配置
第一处:在开发板的/etc目录下建立ld.so.conf文件,并添加如下内容:
/usr/local/lib
/usr/lib
/lib #实际上添加这个库文件目录就行了,目的是运行helloworld的时候,能找到相应的库文件,其他两个库目录可选,我加上了它,是为了系统扩展。
第二处:修改开发板上的/etc/MiniGUI.cfg文件
用编辑器打开,更改如下内容:
[system]
# GAL engine and default options
gal_engine=fbcon
#IAL engine
ial_engine=dummy
mdev=/dev/mouse
mtype=none
[fbcon]
Defaultmode=240x320-16bpp #我的LCD显示器是240x320像素的竖屏
与上述内容不一致的,请结合自己的开发板进行比较后,修改。
第三处:
在/etc/init.d/rcS脚本文件里添加如下内容:
/bin/ln –s /dev/vc/0 /dev/tty0
如不加,则出现如下问题:NEWGAL>FBCON: Can't open /dev/tty0: No such file or directory
NEWGAL: Set video mode failure.
InitGUI: Can not initialize graphics engine!
注:就是使FBCON与你的FramBuffer设备关联
4.测试
在超级终端运行helloworld,命令如下:
[………]# /usr/local/sbin/helloworld
或
在/etc/init.d/rcS脚本文件里添加如下内容:
/usr/local/sbin/helloworld &
呵呵,minigui跑起来了,自己感觉还是比较爽的。移植就算成功了,但没有使用价值,需继续添加minigui的一些功能,并需要编写相应应用程序和linux内核相应的驱动。
5.补充—支持鼠标和触摸屏,则设置如下
以上的操作还没有添加输入引擎。我的开发板可利用的输入引擎是usb鼠标,下面就是添加usb输入引擎的过程。
(1) 查看usb鼠标设备节点
查看方法就是在没有插入usb鼠标和插入usb鼠标时看看/dev/input/目录下有什么变化,我的在/dev/input目录下多出了mouse1,说明我的usb鼠标的设备节点是/dev/input/mouse1,把这个节点链接到/dev下更名为mouse,即:
#ln –s /dev/input/mouse1 /dev/mouse 支持触摸屏
#ln –s /dev/input/mouse0 /dev/mouse 插上鼠标,支持鼠标,不插鼠标,支持触摸屏
(2)配置MiniGUI.cfg文件(可以通过串口修改)
配置MiniGUI.cfg文件,主要是添加输入引擎,添加方法如下:
# GAL engine
gal_engine=fbcon
# IAL engine
ial_engine=console //添加在这里
mdev=/dev/mouse //添加在这里
mtype=PS2 //添加在这里
[fbcon]
Defaultmode=240x320-16bpp #我的LCD显示器是240x320像素的竖屏
6. 郁闷的问题
配置文件,从windows拷贝到开发板,就有问题,但从linux桌面拷贝到u盘,再挂接到开发板上就没有问题,而且可执行文件不能在虚拟linux桌面下与xp系统下通过ssh工具传输,否则,可执行文件就会有错误,变得不可用。
@版权所有
(本篇完)下载本文