minigui-1.6.10在s3c2410平台的移植
开发板:s3c2410
内核:
linux-2.6.33
fs:nfs
LCD:TFT320 X 240
PC:RedHat 9.0
(一)准备工作
下载软件包
libminigui-1.6.10.tar.gz
mg-samples-1.6.10.tar.gz
minigui-res-1.6.10.tar.gz
在/home/arm/创建一个minigui的目录,然后把这些载在的软件包放在该目录下,在分别解压缩。再在/home/arm/minigui下创建一个miniguitmp的目录,用于安装编译以后的库文件。
(二 )编译 libminigui
首先修改configure文件,在文件的开头加入交叉编译的路径
//交叉编译链是arm-linux-gcc-3.4.1
CC=arm-linux-gcc
CPP=arm-linux-cpp
LD=arm-linux-ld
AR=arm-linux-ar
RANLIB=arm-linux-ranlib
STRIP=arm-linux-strip
然后执行
[root@localhost libminigui-1.6.10]# ./configure --prefix=/home/arm/minigui/miniguitmp/ /
--build=x86_64-linux /
--host=arm-unknown-linux /
--target=arm-unknown-linux
[root@localhost libminigui-1.6.10]# make
[root@localhost libminigui-1.6.10]# make install
这个过程基本上不会有什么错误的
执行make install的时候会把编译以后的资源安装到/home/arm/minigui/miniguitmp中,在这之下会有etc include lib
然后进入/home/arm/minigui/miniguitmp/lib,执行
[root@localhost lib]# ldconfig
libminigui的交叉编译工作就算完成了。
(三)安装minigui-res比较简单
进入/home/arm/minigui/minigui-res-1.6.10目录
修改config.liux文件的第11行
TOPDIR=/home/arm/minigui/miniguitmp
保存
然后[root@localhost minigui-res-1.6.10]# make install
资源文件被安装到/home/arm/minigui/miniguitmp/usr/local/lib/minigui/res下面有这几个东西
bmp cursor font icon imetab
(四)修改/home/arm/minigui/miniguitmp/etc/MiniGUI.cfg文件
[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=320x240-16bpp
# IAL engine
#ial_engine=qvfb
#mdev=/dev/input/mice
ial_engine=console
mdev=/dev/mouse
mtype=IMPS2
[fbcon]
defaultmode=320x240-16bpp
[qvfb]
defaultmode=320x240-16bpp
display=0
一般就上面几个地方要修改
然后把MiniGUI.cfg下载到开发板的/etc/目录下
(五)下载minigui的运行库
把PC上/home/arm/minigui/miniguitmp/lib中所有的运行库下载到开发板上的/usr/lib目录下;
在把PC上/home/arm/minigui/miniguitmp/usr/local/lib下的minigui目录整个下载到开发板的/usr/lib下面,到现在开发板上应该有这些东西了
在开发板的/usr/lib下面有
lib.tar.bz2 libminigui-1.6.so.10 libvcongui-1.6.so.10.0.0
libmgext-1.6.so.10 libminigui-1.6.so.10.0.0 libvcongui.a
libmgext-1.6.so.10.0.0 libminigui.a libvcongui.la
libmgext.a libminigui.la libvcongui.so
libmgext.la libminigui.so minigui
libmgext.so libvcongui-1.6.so.10
其中minigui是目录
在开发板的/etc下面应该有MiniGUI.cfg文件存在。
现在准备工作已经已经完成,下面应该移植一些演示程序。
(六)编译mg-samples-1.6.10
在编译之前先把低版本的autconf换成高版本(因为我使得的红帽子版本低,编译不过去,要是本版高的话,直接略过进行操作1)
cd /usr/src
wget http://files.directadmin.com/services/custombuild/autoconf-2.63.tar.gz(找不到在想办法)
tar xzf autoconf-2.61.tar.gz
cd autoconf-2.63
./configure --prefix=/usr
make
make install
编译过程中又出现了GNU的版本低,本人有下载了m4-1.4.13.tar.bz2。
tar jxvf m4-1.4.13.tar.bz2 -C ./
cd m4-1.4.13
./configure
make
make install
编译成功之后可进行以下操作(这是低版本要做的)
1、进入/home/arm/minigui/mg-samples-1.6.10
修改configure.in第30行,这一步有没有用说不清楚,改成下面的样子
AC_CHECK_HEADERS($prefix/include/minigui/common.h, have_libminigui=no, foo="bar")
2、修改configure文件
在文件的最前面加上交叉编译的工具
CC=arm-linux-gcc
CPP=arm-linux-cpp
LD=arm-linux-ld
AR=arm-linux-ar
RANLIB=arm-linux-ranlib
STRIP=arm-linux-strip
3、运行configure进行配置
[root@localhost mg-samples-1.6.10]# ./configure --prefix=/home/arm/minigui/miniguitmp/ /
--build=x86_64-linux /
--host=arm-unknown-linux /
--target=arm-unknown-linux
最后还是有
configure: WARNING:
MiniGUI is not properly installed on the system. You need
MiniGUI Ver 2.0.0 or later for building this package.
Please configure and install MiniGUI Ver 2.0.0 first.
这个提示,不管他。
4、修改src/Makefile文件
找到
CC = arm-linux-gcc
改成
CC = arm-linux-gcc -I/home/arm/minigui/miniguitmp/include -L/home/arm/minigui/miniguitmp/lib
CFLAGS = -g -O2 -`Wall -Wstrict-prototypes -pipe
改成
CFLAGS =-O2
LIBOBJS =
改成
LIBOBJS = -lminigui -lmgext -lm -lpthread
LIBS = -lminigui
改成
LIBS = -lminigui -lmgext -lm -lpthread
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) /
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
改成
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) /
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -lminigui -lmgext -lm -lpthread
5、进入/home/arm/minigui/mg-samples-1.6.10/src
运行make
…………
然后在res目录下会有很多可执行文件。
(本人现在还没有实验,只是编译成功啦)