分类: LINUX
2011-09-16 16:03:05
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. 准备以下源码包(下载)
开发库: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内核相应的驱动。虽然开源,但提供的功能有限,不过,当作学习还是可以的。