Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17754
  • 博文数量: 12
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-24 13:10
文章存档

2010年(10)

2009年(2)

我的朋友

分类: 嵌入式

2010-11-27 22:24:57

主机:VMware上的RedHat Linux 9.0

交叉编译工具路径:/usr/local/arm/2.95.3/  (用于编译viviminigui1.3.3) /usr/local/arm/2.95.3/bin路径添加到/etc/profile文件中

开发板:博创 up-netarm2410-s

开发板使用的Linux2.6.14内核

内核配置时候选择下面的选项

Graphics support  --->   

<*> Support for frame buffer devices  //minigui图形引擎有关 

<*> Virtual Frame Buffer support (ONLY FOR TESTING!) 

Console display driver support  ---> 

<*> Framebuffer Console support     //minigui图形引擎有关

 参考资料:

 1<1.3.3 移植详解>>

  

 

2、资源依赖库的安装

参考大漠孤狼的移植方法,所有的资源依赖库和minigui源文件都下载到/home/minigui/下。

1.zlib 库的安装

下载地址:

# tar zxf zlib-1.2.3.tar.gz

# cd zlib-1.2.3

#./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --shared

#vi Makefile

 

gcc都改成arm-linux-gcc

 

#make

#make install

2.png 库的安装下载:

# tar zxf libpng-1.0.10rc1.tar.gz
# cd libpng-1.0.10rc1

# cp scripts/makefile.linux  Makefile  

# vi Makefile    

CC=arm-linux-gcc  

# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
prefix=/usr/local/arm/2.95.3/arm-linux     //修改这里

# Where the zlib library and include files are located
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=/usr/local/arm/2.95.3/arm-linux/lib   //修改这里
ZLIBINC=/usr/local/arm/2.95.3/arm-linux/include   //修改这里

#make
#make install

 

注:与大漠孤狼的移植方法相比,我没有安装libjpeglibttf库,因此在配置libminigui时,有些选项不能选上。

3MiniGUIi的安装

/usr/下新建一个目录存放minigui编译安装的结果

mkdir /usr/arm-linux

cd  /usr/arm-linux

# mkdir lib etc include

1.安装minigui-res-1.3.3.tar.gz

#tar –xzvf minigui-res-1.3.3.tar.gz

#cd minigui-res-1.3.3

 

#修改config.linux 文件,将{prefix}改为/usr/arm-linux

#make install //安装资源文件

资源文件安装到/usr/arm-linux/lib

2.安装libminigui-1.3.3.tar.gz

在安装libminigui-1.3.3时候需要修改一个文件fbvideo.c,在libminigui-1.3.3/src/newgal/fbcon/目录下:修改如下:

 

/* Initialize the library */

    GAL_fbdev = getenv("FRAMEBUFFER");

    if ( GAL_fbdev == NULL ) {

        GAL_fbdev = "/dev/fb/0";             //修改在这里

    }

    console_fd = open(GAL_fbdev, O_RDWR, 0);

    if ( console_fd < 0 ) {

        GAL_SetError("Unable to open %s", GAL_fbdev);

        return(-1);

}

 

#tar –xzvf libminigui-1.3.3.tar.gz

#cd libminigui-1.3.3

#make menuconfig

 

配置libminigui

 System Wide Options

[*] Build MiniGUI-Lite        // Lite 方式编译,不是Thread 方式,这里适用于 PDA
[ ]   Stand-Alone
[ ] Use incore (built-in) resource      
[*] Unit of timer is 10ms
[*] Cursor support
[ ] User can move window with mouse  
[*] Mouse button can do double click
[*] Build with debugging messages
[ ] Trace messages of MiniGUI        
[*] Include symbol name of messages

 

 GAL  engine Options 

(NEWGAL) GAL and its engines
[*]   NEWGAL engine on Linux FrameBuffer console
[ ]   NEWGAL engine on Qt Virtual FrameBuffer    
[ ]   NEWGAL engine on eCos LCD interface
[*]   Dummy NEWGAL engine
[*] Have console on Linux FrameBuffer


 IAL engine options

[ ] EP7211-based board
[ ] ADS Graphics Client
[ ] iPAQ H3600 (also H3800)
[ ] MPC823
[ ] PX255B
[ ] NEC VR4181
[ ] Helio Touch Panel
[ ] MT T800
[*] SMDK2410 Touch Screen
[ ] uClinux Touch Screen Palm/MC68EZ328
[*] Dummy IAL engine
[*] Native (console) input engine
---   Native IAL engine subdriver options
[ ]   PS2 mouse
[ ]   IntelligentMouse (IMPS/2) mouse
[ ]   MS mouse
[ ]   MS3 mouse
[*]   GPM daemon

 

 Font Option 

[*] Raw bitmap font
[ ] Var bitmap font          //不要选这个,编译mde时候会出现错误
[*] Incore font sansserif
[*] Incore font courier
[*] Incore font symbol
[*] Incore font vgas
[ ] Qt Prerendered Font
[ ] TrueType font    //没安装LIBTTF,不选
[ ] Adobe Type1 font


Image Options

[*] Includes SaveBitmap-related functions
[ ] PCX file support
[ ] LBM/PBM file support
[ ] TGA file support
[*] GIF file support
[ ] JPG file support   //没安装LIBJPEG,不选
[*] PNG file support

 

Input Medthold Option

[*] IME (GB2312) support
[ ] IME (GB2312) Intelligent Pinyin module  

 

Development Environment Option

(Linux) Platform
(arm-linux-gcc) Compiler  
(glibc) Libc            
--- Installation options
Path prefix: "/usr/arm-linux"   
--- Additonal Compiler Flags
     CFLAGS: ""
     LDFLAGS: ""

配置完成后

#make

#make install

就会把minigui库安装到/usr/arm-linux/lib MiniGUI.cfg安装到/usr/arm-linux/etc/ 相关的文件安装到/usr/arm-linux/include/下。

(3).安装mde-1.3.0.tar.gz

#tar –xzvf mde-1.3.0.tar.gz

#cd mde-1.3.0

 # ./configure --prefix=/opt/rootfs/usr/local --host=arm-linux
#make

 

如果编译通过后就会在当前目录下生成minigui演示程序,如果编译不通过大多是你的libminigui-1.3.3配置不正确。

 

4MiniGUI根文件系统的制作

 

/opt目录下新建rootfs,如果你已经有了一个可利用的根文件系统,把它复制到rootfs目录下,新建几个目录即可。如下:

#cd /opt/rootfs/usr

#mkdir local

#cd local

#mkdir etc lib minigui

1.把以上资源copy/usr/local/相关目录下。方法如下:

#cp –a /usr/arm-linux/lib/*.*  /opt/rootfs/usr/local/lib/

#cp –a /usr/arm-linux/etc/*.*  /opt/rootfs/usr/local/etc/

/usr/local/arm/2.95.3/arm-linux/lib/目录下的libjpeg,libpng,libttf,libz相关的库copy/opt/rootfs/usr/local/lib/下,copy时带上-a参数。

2.使库文件工作。

修改/opt/rootfs/etc/目录下的ld.so.conf,把/usr/local/lib添加到改文件。为了使新加的库生效,执行

#ldconfig –r /opt/rootfs/

3.复制mde演示程序

把生成的mde演示程序copy/opt/rootfs/usr/local/minigui/目录下,只copy相关的应用程序和res目录,注意复制mginit时候把mginit.rc也复制过去

4.修改MiniGUI.cfg

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

# GAL engine

gal_engine=fbcon

 

# IAL engine

ial_engine=dummy   //修改这里

 

mdev=none          //修改这里

mtype=none         //修改这里

 

[fbcon]

defaultmode=640x480-16bpp   //修改这里,我使用的lcd640x480

    

5MiniGUI初始化一些问题以及解决办法。

按照以上的方法运行mginit的时候会出现一些问题,按照上面MiniGUI.cfg配置运行的话会出现:

问题1

[root@FriendlyARM mginit]# ./mginit

640x480 LCD

GAL ENGINE: Can't open /dev/tty0: No such file or directory

NEWGAL: Set video mode failure.

Error in step 3: Can not initialize graphics engine!

InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.

解决方法:

#mknod /dev/tty0 c 4 0

 

这样在运行mginit的时候还会有错误,如下:

问题2

LoadSharedResource: No such file or directory

Error in step 7: Can not load shared resource!

InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.

[root@FriendlyARM mginit]#

解决方法:

1、             在根文件系统中rcS中添加 mkdir /var/tmp

2、             编译内核时选择了System IPC

3、             在根文件系统中加入 /etc/passwd

 

问题3

Error in step 3: There is already an instance of 'mginit'!

解决方法:

删除/var/tmp目录下的2minigui的文件。

阅读(635) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~