MiniGUI移植s3c2440(一)

今天开始决定用MiniGUI,Ubuntu系统莫名的挂掉了,进不去桌面了,原因不详,以后研究吧

 

参考了两篇很好的文章

1.http://wiki.minigui.com/bin/view/Columns/HuangSHArticle1?rev=3(主要根据这篇文章做的)

2.http://hi.baidu.com/dropcrab/blog/item/137308120676b4886538db11.html

 

工作环境:

硬件:arm s3c2440,触摸屏的驱动文件已经放入到内核中

linux: red hat enterprise5

交叉编译工具: arm-linux-gcc-3.4.1

 

移植步骤:

 

1.安装交叉编译工具

 

1.1 交叉编译工具链的存放目录:/usr/local/arm/3.4.1/

1.2修改环境变量:

 

打开$HOME 目录下的.bash_profile 文件,修改PATH 脚本行为:

PATH=$PATH:/usr/local/arm/3.4.1/bin 保存.bash_profile 文件后,注销用户,再以同一用户登录,PATH

环境变量生效.

 

 

2.安装zlib 库、png 库、 jpeg 库、popt 库,具体见上面两片文章

注:

2.1在安装zlib库的时候最后注意把gcc和ld改过来

 


(我就是忘了修改ld,导致gcc不能用了,开始还以为gcc坏了,最后才想起来,以后遇到问题要细心)

2.2安装png库

 

安装 png 库,这个是用来显示 png 图形的,MiniGUI 里很多图都是 png 的,如果没这个库,你的 MiniGUI 将无法正常工作,切记切记!

还是那句话,库不要用最新的,最新的容易有问题,用这个老一点的就没问题了

 

 


2.3安装jpeg库的时候不然的话就会出现 libtool 找不到之类的错误,第一篇文章上说,要编译dummy.c,可是不知道具体怎么操作,最后在第二篇文章上解决了,去掉最后的编译选项--enable-shared就可以了,不过不知道有什么后果,具体以后研究

安装完了,查看下/usr/local/arm/3.4.1/arm-linux/目录下的 lib 文件夹里是否有 libjpeg.so,libjpeg.so.62.0.0 等文件和include 文件夹里是否有 jpeglib.h 文件。

 

注:进过4.2号测试,发现这种变异方法编译会少库文件,因此这种方法不正确,正确的方法为:

由于jpeg库的安装少了libtool,因此要从http://ftp.gnu.org/gnu/libtool/下载libtool(我下的为libtool-2.2.6b.tar.gz)

编译安装libtool:

然后把libtool-2.2.6b/文件夹下的libtool文件拷到jpeg-6b文件夹下,重新交叉编译jpeg-6b:

成功~~~

附:

 

简短说明

libtool 提供通用的库编译支持。

libtoolize 提供了一种标准方式来将libtool支持加入到一个软件包。

libltdl隐藏 dlopening 库的复杂细节。

 

Libtool 安装依赖关系

Libtool 依赖于: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.

 

 

2.4安装 popt 库,第一篇文章的./configure命令有问题,我采用了第二篇文章的

我开始在ubuntu9.10上没有编译通过,最后在red hat enterprise5上编译通过了,原因有待研究

 

这个库在编译 mde 程序时需要使用,不然编译没法通过 

 

3.编译安装minigui-res-1.6.10.tar.gz

说明:minigui 所使用的资源,包括基本字体、图标、位图和鼠标光标

 

4.编译安装libminigui-1.6.10.tar.gz

说明:minigui函数库源代码。

5.拷贝库文件和资源文件

 

5.1拷贝库文件:

 

“把/usr/local/arm/3.4.1/arm-linux/lib 中相应的库拷到 /nfs/lib 目录下去,下面是我拷的库文件:

libjpeg.a libmgext-1.3.so.3 libminigui.a libpng.so.2 libttf.a libz.so
libjpeg.la libmgext-1.3.so.3.0.0 libminigui.la libpng.so.2.1.0.10rc1 libttf.so libz.so.1
libjpeg.so libmgext.a libminigui.so libpopt.a libvcongui-1.3.so.3 libz.so.1.2.3
libjpeg.so.62 libmgext.la libm.so libpopt.la libvcongui-1.3.so.3.0.0 minigui
libjpeg.so.62.0.0 libmgext.so libm.so.6 libpopt.so libvcongui.a shared
libm-2.2.3.so libminigui-1.3.so.3 libpng.a libpopt.so.0 libvcongui.la
libm.a libminigui-1.3.so.3.0.0 libpng.so libpopt.so.0.0.0 libvcongui.so

其中一些.a 的静态库是不需要拷过去的,另外要运行c程序还需要拷一些libc标准库进去,我图方便,直接将整个/usr/local/arm/3.4.1/arm-linux/lib考到/nfs下面,呵,懒人的做法。”

我是直接把所有的都拷过去了,以防都掉的,/usr/local/arm/3.4.1/arm-linux/lib 到 arm板上的/lib

 

5.2拷贝资源文件:

 

/usr/local/lib/minigui/res到 arm上的  /usr/local/lib/minigui/res/,实际上这个目录与配置文件 MiniGUI.cfg里的相应内容的目录一致,以便找到相应的资源

 

5.3

拷贝配置文件MiniGUI.cfg:

[root]# cp /usr/local/arm/3.4.1/arm-linux/etc/MiniGUI.cfg /nfs/usr/local/etc/

修改配置文件MiniGUI.cfg:

 

 

[system]
# GAL engine
gal_engine=fbcon //这里修改

# IAL engine
ial_engine=dummy // 这里修改,我用的是触摸屏,所以就用dummy肯定不会错

mdev=/dev/tp       //解摸屏
mtype=none

[fbcon]
defaultmode=320x240-16bpp // 根据你的LCD大小自己设置,设置错误minigui 就启动不了

 


6.编译综合例子 mde-1.6.10

编译后,把该文件夹下的文件夹都考到arm的文件系统中/demo中,里面都是例子

 

7.运行demo里面的例子,出现错误

 

[root@avantech same]$ ./same

NEWGAL: bad video mode parameter: 320*240-16bpp.

InitGUI: Reading configuration failure!

 

明天解决。。。。


2010-03-31晚于15#实验室22:31:41

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值