`
844604778
  • 浏览: 547516 次
文章分类
社区版块
存档分类
最新评论

Minigui3.0.12移植到nuc951上

 
阅读更多

Minigui3.0.12移植到nuc951

一环境

开发环境:fedora9

运行环境:

Nuc951evb板子,nuc951bsp(linux2.6.35.4 kernel)

u-boot引导从Nandflash启动

编译器:arm-linux-gcc 4.3.4(nuc951bsp中自带)

二下载源文件

移植所需的文件可以从minigui官网下载:http://www.minigui.org/en/download/

主要文件有:

工具及依赖库文件:

qvfb2-2.0.tar.gz

gvfb-1.0.0.tar.gz

zlib-1.2.2.tar.gz

libpng-1.2.37.tar.gz

jpegsrc.v7.tar.gz

freetype-2.3.9-fm20100818.tar.gz

minigui文件

libminigui-gpl-3.0.12.tar.gz

minigui-res-be-3.0.12.tar.gz

mg-samples-3.0.12.tar.gz

minigui组件文件

libmgi-2.0.4.tar.gz

libmgplus-1.2.4.tar.gz

libmg3d-1.0.2.tar.gz

libmgutils-1.0.4.tar.gz

libmgp-1.2.2.tar.gz

libmgncs-1.0.8.tar.gz

libmgeff-1.0.0.tar.gz

建一个目录minigui,把上述文件都下载到该目录下.

三准备目录

minigui下建一个目录arm,用于保存arm下的编译相关文件.

建立安装目录/opt/minigui,并更改目录权限

#mkdir /opt/minigui

#chmod 777 /opt/minigui

#cd arm

四依赖库文件编译

1 libz 库编译

Nuc951的交叉编译器本身含有libz库,可以不编译,直接使用编译的libz库。

2 安装libjpeg

交叉编译器本身含有jpeg库,也可以不编译直接使用。

如果要编译,编译如下:

# tar zxvf ../jpegsrc.v7.tar.gz

#cd jpeg-7

# ./configure CC=arm-linux-gcc --target=arm-linux --host=arm-linux prefix=/opt/minigui

#make

#make install

3. 编译安装libpng

# tar zxvf ../libpng-1.2.37.tar.gz

#cd libpng-1.2.37

# ./configure CC=arm-linux-gcc --target=arm-linux --host=arm-linux prefix=/opt/minigui

#make

#make install

4 编译安装libttf

# tar zxvf ../freetype-2.3.9-fm20100818.tar.gz

# cd freetype-2.3.9-fm20100818

# ./configure CC=arm-linux-gcc --target=arm-linux --host=arm-linux prefix=/opt/minigui

#make

#make install

minigui编译安装

1 安装资源文件minigui-res-be-3.0.12.tar.gz

# tar zxvf ../minigui-res-be-3.0.12.tar.gz

# cd minigui-res-be-3.0.12

#./configure CC=arm-linux-gcc --target=arm-linux --host=arm-linux prefix=/opt/minigui

#make install

2 编译安装libminigui

# tar zxvf ../libminigui-gpl-3.0.12.tar.gz

#cd libminigui-gpl-3.0.12

./configure \

--prefix=/opt/minigui/ \

--host=arm-linux \

--target=arm-linux \

--with-osname=linux \

--with-targetname=fbcon \

--enable-autoial \

--enable-tslibial \

--disable-vbfsupport \

--disable-pcxvfb \

CC=arm-linux-gcc \

CFLAGS='-I/opt/minigui/include' LDFLAGS='-L/opt/minigui/lib'

配置时会出现如下错误

Going to generate license pictures ...

./configure: line 15530: ./runme.sh: No such file or directory

WARNING: failed to generate license pictures.

不用理会它,继续。

#make

#make install

六编译安装minigui组件

1 编译安装libmgi

# tar zxvf ../libmgi-2.0.4.tar.gz

# cd libmgi-2.0.4

./configure --prefix=/opt/minigui/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm'

#make

出现如下错误

错误1

ime_pinyin.c: In function 'pinyin_predict_pord':

ime_pinyin.c:334: warning: incompatible implicit declaration of built-in function 'bzero'

ime_pinyin.c: In function 'char_match_exist':

ime_pinyin.c:430: warning: incompatible implicit declaration of built-in function 'bzero'

ime_pinyin.c: In function 'pinyin_match_keystokes':

ime_pinyin.c:534: warning: incompatible implicit declaration of built-in function 'bzero'

错误2

../src/.libs/libmgi.so: undefined reference to `bcmp'

原因:交叉编译器已经不支持bzerobcmp了需要memsetmemcmp替换。

找到ime_pinyin.c在文件中增加

#define bzero(s,y) memset((s), 0, (y))

#define bcmp memcmp

再次编译:

#make

编译通过

然后安装:

#make install

2 编译安装libmgplus-1.2.4.tar.gz

# tar zxvf ../libmgplus-1.2.4.tar.gz

# cd libmgplus-1.2.4

# ./configure --prefix=/opt/minigui/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm'

#make

#make install

3 编译安装libmg3d-1.0.2.tar.gz

# tar zxvf ../libmg3d-1.0.2.tar.gz

# cd libmg3d-1.0.2

# ./configure --prefix=/opt/minigui/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm'

#make

#make install

4 编译安装libmgutils-1.0.4.tar.gz

# tar zxvf ../libmgutils-1.0.4.tar.gz

# cd libmgutils-1.0.4

# ./configure --prefix=/opt/minigui/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm'

#make

出现错误

vc.c: In function 'TextDeleteChar':

vc.c:171: warning: implicit declaration of function 'bzero'

vc.c:171: warning: incompatible implicit declaration of built-in function 'bzero'

vc.c: In function 'TextInsertChar':

vc.c:201: warning: incompatible implicit declaration of built-in function 'bzero'

vc.c: In function 'TextClearEol':

vc.c:376: warning: incompatible implicit declaration of built-in function 'bzero'

vc.c: In function 'TextClearEos':

vc.c:408: warning: incompatible implicit declaration of built-in function 'bzero'

vc.c: In function 'TextClearChars':

vc.c:468: warning: incompatible implicit declaration of built-in function 'bzero'

解决方法同上

找到vc.c文件,添加

#define bzero(s,y) memset((s), 0, (y))

错误

child.c: In function 'ChildStart':

child.c:116: warning: implicit declaration of function 'rindex'

child.c:116: warning: incompatible implicit declaration of built-in function 'rindex'

../../src/.libs/libmgutils.so: undefined reference to `rindex'

找到文件picview.cchild.c文件分别添加

# define rindex(s,c) strrchr((s), (c))

再次编译

#make

编译通过

#make install

5 编译安装libmgp-1.2.2.tar.gz

# tar zxvf ../libmgp-1.2.2.tar.gz

# cd libmgp-1.2.2

# ./configure --prefix=/opt/minigui/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm'

#make

#make install

6 编译安装libmgncs-1.0.8.tar.gz

# tar zxvf ../libmgncs-1.0.8.tar.gz

# cd libmgncs-1.0.8

# ./configure --prefix=/opt/minigui/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm'

#make

#make install

7 编译安装libmgeff-1.0.0.tar.gz

由于是用cmake做的,暂时没有研究。

七编译sample程序

# tar zxvf ../mg-samples-3.0.12.tar.gz

# cd mg-samples-3.0.12

#./configure --prefix=/opt/miniguiarm/ --host=arm-linux --target=arm-linux CC='arm-linux-gcc -D_XOPEN_SOURCE' LDFLAGS='-L/opt/minigui/lib' CPPFLAGS='-I/opt/minigui/include' MINIGUI_CFLAGS='-L/opt/minigui/lib' MINIGUI_LIBS='-ldl -lminigui_ths' LIBS='-ljpeg -lpng -lpthread -lm -lts'

#make

八安装miniguinuc951

1安装minigui库文件及资源文件到nuc951文件系统

压缩编译好的文件

假定文件系统放在rootfs下:

#mkdir opt

#mkdir opt/minigui

#cd opt/minigui

#cp –arf /opt/minigui/lib ./

#cp -rf /opt/minigui/share ./

删除静态库文件

# cd lib

#rm *.a

2 将库文件路径加入到系统库搜索路径

etc/profile文件中添加

export MINIGUIDIR=/opt/minigui

export LD_LIBRARY_PATH=$MINIGUIDIR/lib:$LD_LIBRARY_PATH

3. 安装MiniGUI.cfg

MiniGUI.cfg

This configuration file must be installed in /etc, /usr/local/etc or your home directory.

我们这里把它安装在/etc下,复制MiniGUI.cfgrootfs/etc

修改MiniGUI.cfg

修改MiniGUI.cfg先调试GAL engine,调试完成后再调试IAL engine,修改如下:其他默认:

# GAL engine

gal_engine=fbcon //修改再这里

# IAL engine
ial_engine=dummy //修改再这里

mdev=none //修改再这里

mtype=none //修改再这里

[fbcon]

defaultmode=320x240-16bpp //修改再这里,nuc951evb的lcd是320x240

[cursorinfo]

# Edit following line to specify cursor files path

cursorpath=/opt/minigui/share/minigui/res/cursor/ //修改这里,指向cursor目录

[resinfo]

respath=/opt/minigui/share/minigui/res/ //修改这里,指向资源目录

ial engine选用tslib需要修改

ial_engine=tslib //修改这里,ial engine

mdev=/dev/input/event0 //修改这里

mtype=IMPS2

4 复制demo程序到nuc951文件系统的usr目录下

需要注意的问题是复制时demo程序的res目录也要与程序文件一起复制并到同一个目录下,否则会有问题。

5 制作文件系统,并下载到nuc951evb,运行demo程序。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics