·¢²©ÎÄ
µÇ¸ß²ÅÄÜÍûÔ¶

http://blog.chinaunix.net/space.php?uid=12668843

   
¸öÈË×ÊÁÏ
  • ²©¿Í·ÃÎÊ£º22461
  • ²©ÎÄÊýÁ¿£º5
  • ²©¿Í»ý·Ö£º1410
  • ²©¿ÍµÈ¼¶£ºÉÏξ
  • ×¢²áʱ¼ä£º2007-05-19 16:31:07
¶©ÔÄÎҵIJ©¿Í
  • ¶©ÔÄ
  • ¶©Ôĵ½Ïʹû
  • ¶©Ôĵ½×¥Ïº
  • ¶©Ôĵ½Google
×ÖÌå´óС£º´ó ÖРС²©ÎÄ
ÎÒµÄMiniGUIÒÆÖ²Ö®Â· (2007-12-19 15:42)


                   ÎÒµÄMiniGUIÒÆÖ²Ö®Â·

 

×÷ÕߣºÏè·É £¨¹ðµç£©E£­Mail£ºymg2002abc@163.com

 

Ò»£ºÇ°ÑÔ

×î½ü¼¸ÌìÔÚÒÆÖ²minigui£¬Ò»Ö±Ã»ÓÐʹÓùýminigui½çÃæ£¬Ïë¿´¿´Ê²Ã´Ð§¹û£¬Ë³±ãѧϰһÏ£¬±Ï¾¹Êǹú²úµÄ¡£»¨ÁËÎÒÈýÌìµÄʱ¼ä£¬ÖÕÓÚÔÚÎÒµÄLCDÉÏÏÔʾminigui½çÃæÁË£¬¿ÉÒÔÔËÐÐMDEÑÝʾ³ÌÐò¡£ÆÚ¼äÓöµ½ºÜ¶àÎÊÌ⣬»¹ºÃÎÒ¶¼°ÑÎÒµÄÎÊÌâÒÔ¼°½â¾ö·½·¨¶¼¼Ç¼ÏÂÀ´£¬ÏÂÃæ¿ªÊ¼ÎÒµÄÒÆÖ²¡£

 

¶þ£ºÊ¹Óû·¾³µÄ´î½¨

1.Ö÷»ú£ºRedHat Enterprise Linux AS4

2.½»²æ±àÒ빤¾ß·¾¶£º/usr/local/arm/2.95.3/  (ÓÃÓÚ±àÒëvivi£¬minigui1.3.3)

          /usr/local/arm/3.3.2/   (ÓÃÓÚ±àÒëbusybox1.5.1)

          /usr/local/arm/3.4.1/  £¨ÓÃÓÚ±àÒëlinux2.6.11.1Äں˵ģ©

°Ñ/usr/local/arm/2.95.3/bin·¾¶Ìí¼Óµ½/etc/profileÎļþÖÐ

3.¿ª·¢°å£ºÓÑÉÆÖ®±ÛSBC2410

4.¿ª·¢°åʹÓõÄLinux2.6.11ÄÚºË

ÄÚºËÅäÖÃʱºòÑ¡ÔñÏÂÃæµÄÑ¡Ïî

Graphics support  --->   

<*> Support for frame buffer devices  //miniguiͼÐÎÒýÇæÓйؠ

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

Console display driver support  ---> 

<*> Framebuffer Console support     //miniguiͼÐÎÒýÇæÓйØ

 

Èý£º×ÊÔ´ÒÀÀµ¿âµÄ°²×°

ÔÚÍøÉϲο¼ÁË´óÄ®¹ÂÀǵÄÒÆÖ²·½·¨£¬±àÒëµÄʱºòÕâЩ×ÊÔ´²»ÖªµÀÓõ½Ã»£¬ÓеÄÊÇÓõ½µÄ¡£ÎÒ¶¼°²×°ÁË¡£ËùÓеÄ×ÊÔ´ÒÀÀµ¿âºÍminiguiÔ´Îļþ¶¼ÏÂÔØµ½/home/minigui/Ï¡£

1.zlib ¿âµÄ°²×°

ÏÂÔØµØÖ·£ºhttp://www.zlib.net/zlib-1.2.3.tar.gz

# 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 ¿âµÄ°²×°

 ÏÂÔØ£ºhttp://superb-east.dl.sourceforge.net/sourceforge/libpng/libpng-1.0.10rc1.tar.gz

# 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

3.jpeg¿âµÄ°²×°

jpeg¿âµÄ°²×°ÎÒÊÇcopy /usr/local/arm/3.3.2/arm-linux/lib/Ŀ¼Ïµģ¬3.3.2µÄ½»²æ±àÒëÆ÷±¾Éíº¬ÓÐjpeg¿âµÄ¡£

4.libttf¿âµÄ°²×°

ÏÂÔØµØÖ·£ºhttp://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-1.3.1.tar.gz

# tar zxf  freetype-1.3.1.tar.gz  
# cd freetype-1.3.1  

°ÑËùÓеÄMakefileÎļþµÄgcc¸ÄΪarm-linux-gcc

#make

#make install

 

ËÄ.MiniGUIiµÄ°²×°

ÔÚ/usr/ÏÂн¨Ò»¸öĿ¼´æ·Åminigui±àÒë°²×°µÄ½á¹û

££mkdir /usr/arm-linux

££cd  /usr/arm-linux

# mkdir lib etc include

1.°²×°minigui-res-1.3.3.tar.gz

#tar ¨Cxzvf 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 ¨Cxzvf 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
[ ] 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
[*] 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 ¨Cxzvf mde-1.3.0.tar.gz

#cd mde-1.3.0

#export CC=arm-linux-gcc

#vi configure.in

 

ÐÞ¸Äconfigure.in Îļþ

l         Ôö¼ÓÒ»ÐÐ

CFLAGS=¡±$CFLAGS ¨CI${prefix}/include -L${prefix}/lib¡±   //Ö¸¶¨minigui µÄÍ·Îļþ¼°¿âÎļþµÄ²Î¿¼Â·¾¶¡£

l         ÐÞ¸ÄÍ·Îļþ·¾¶£º

AC_CHECK_HEADERS(${prefix}/include/minigui/common.h,

have_libminigui=yes, foo=bar)

 

#./autogen.sh

#./configure --prefix=/usr/arm-linux \

--host=i386-linux \

--build=arm -linux \

--target=arm -linux \

#make

 

Èç¹û±àÒëͨ¹ýºó¾Í»áÔÚµ±Ç°Ä¿Â¼ÏÂÉú³ÉminiguiÑÝʾ³ÌÐò,Èç¹û±àÒ벻ͨ¹ý´ó¶àÊÇÄãµÄlibminigui-1.3.3ÅäÖò»ÕýÈ·¡£

 

Îå.MiniGUI¸ùÎļþϵͳµÄÖÆ×÷

 

ÔÚ/optĿ¼ÏÂн¨rootfs£¬Èç¹ûÄãÒѾ­ÓÐÁËÒ»¸ö¿ÉÀûÓõĸùÎļþϵͳ£¬°ÑËü¸´ÖƵ½rootfsĿ¼Ï£¬Ð½¨¼¸¸öĿ¼¼´¿É¡£ÈçÏ£º

#cd /opt/rootfs/usr

#mkdir local

#cd local

#mkdir etc lib minigui

1.°ÑÒÔÉÏ×ÊÔ´copyµ½/usr/local/Ïà¹ØÄ¿Â¼Ï¡£·½·¨ÈçÏ£º

#cp ¨Ca /usr/arm-linux/lib/*.*  /opt/rootfs/usr/local/lib/

#cp ¨Ca /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 ¨Cr /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   //ÐÞ¸ÄÔÙÕâÀÎÒʹÓõÄlcdÊÇ640x480

    

5.º¬ÓÐminigui¸ùÎļþÓ³ÏñµÄÖÆ×÷¡£

ÎÒʹÓõÄlinux2.6.11.1ÄÚºËÒѾ­ÒÆÖ²ºÃÁËyaffsÎļþϵͳ£¬¿ÉÒÔʹÓÃmkyaffsimg¹¤¾ßÖÆ×÷yaffs¸ùÎļþϵͳӳÏñ¡£ÉÕµ½¿ª·¢°å¼´¿É£¬ÎÒÊÇͨ¹ýusbÏÂÔØµÄ¡£ÖÆ×÷·½·¨ÈçÏ£º

#cd /opt

#mkyaffsimg rootfs rootfs.img

ÕâÑù¾Í»áÔÚ/optÉú³Érootfs.imgÓ³ÏñÎļþ£¬ÏÂÔØµ½¿ª·¢°åÔËÐС£

 

Áù£®MiniGUI³õʼ»¯Ò»Ð©ÎÊÌâÒÔ¼°½â¾ö°ì·¨¡£

°´ÕÕÒÔÉϵķ½·¨ÔËÐÐ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]#

½â¾ö·½·¨£º

mkdir /var/tmp

ÕâÑù¾Í¿ÉÒÔ¿´µ½minigui³õ²½½çÃæÁË£¬Èç¹ûÇ¿ÖÆÍ˳öµÄ»°£¬ÔÚÏ´ÎÔËÐÐmginitµÄ»°»á³öÏÖÏÂÃæµÄÎÊÌ⣺

ÎÊÌâ3£º

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

½â¾ö·½·¨£º

ɾ³ý/var/tmpĿ¼ÏµÄ2¸öminiguiµÄÎļþ¡£

 

Æß£®ÊäÈëÒýÇæµÄÌí¼Ó

ÒÔÉϵIJÙ×÷»¹Ã»ÓÐÌí¼ÓÊäÈëÒýÇæ¡£ÎҵĿª·¢°å¿ÉÀûÓõÄÊäÈëÒýÇæÊÇusbÊó±ê£¬ÏÂÃæ¾ÍÊÇÌí¼ÓusbÊäÈëÒýÇæµÄ¹ý³Ì¡£

 

1.     ²é¿´usbÊó±êÉ豸½Úµã

 

²é¿´·½·¨¾ÍÊÇÔÚûÓвåÈëusbÊó±êºÍ²åÈëusbÊó±êʱ¿´¿´/dev/input/Ŀ¼ÏÂÓÐʲô±ä»¯£¬ÎÒµÄÔÚ/dev/inputĿ¼Ï¶à³öÁËmouse1,˵Ã÷ÎÒµÄusbÊó±êµÄÉ豸½ÚµãÊÇ/dev/input/mouse1£¬°ÑÕâ¸ö½ÚµãÁ´½Óµ½/devϸüÃûΪmouse£¬¼´£º

#ln ¨Cs /dev/input/mouse1 /dev/mouse

 

2.ÅäÖÃMiniGUI.cfgÎļþ£¨¿ÉÒÔͨ¹ý´®¿ÚÐ޸ģ©

ÅäÖÃMiniGUI.cfgÎļþ£¬Ö÷ÒªÊÇÌí¼ÓÊäÈëÒýÇæ£¬Ìí¼Ó·½·¨ÈçÏ£º

# GAL engine

gal_engine=fbcon

 

# IAL engine

ial_engine=console  //Ìí¼ÓÔÚÕâÀï

 

mdev=/dev/mouse   //Ìí¼ÓÔÚÕâÀï

mtype=PS2        //Ìí¼ÓÔÚÕâÀï

 

[fbcon]

defaultmode=640x480-16bpp

ÕâÑù¾Í°ÑÎÒµÄusbÊó±êÌí¼ÓÉÏÈ¥ÁË£¬ÐÞ¸Ämginit.rc£¬×Ô¶¯Ö´ÐÐsame³ÌÐò£¬È»ºóÔËÐÐmginit¾Í»áÓжԻ°¿òÌø³öÀ´£¬µã»÷È·¶¨È·¶¨ºó¾Í½øÈëµ½minigui½çÃæÁË£¬µã»÷×óϽǵÄstart°´Å¥»áÓÐÎÊÌ⣬ÆäËûµÄÓÎÏ·µÈ¶¼¿ÉÒÔʹÓá£

 

 

²©¿ÍÍÆ¼öÎÄÕÂ
[·¢ÆÀÂÛ] ÆÀÂÛ ÖØÒªÌáʾ£º¾¯ÌèÐé¼ÙÖн±ÐÅÏ¢!
  • chinaunixÍøÓÑ 2008-08-10 13:13
    ÎÒÏëÎÊÄãһϣ¬ÄãÕâ¸öÎÄÕÂдµÄ¶«Î÷ÄãÊÔ¹ýÂ𣿠ÎÒÊÔÁË£¬ÍêÈ«Ðв»Í¨£¬µ±È»ÎÒÖªµÀÄã¿Ï¶¨ÄÜͨ¹ý£¬ÒòΪÄã×öµÄ²½ÖèºÜ¶àÔÚÕâÀïûÓÐд³öÀ´£¡¶ÔÈË´¿´âÊÇÎóµ¼°¡£¬ÌرðÊdzõѧÕߣ¨°üÀ¨ÎÒ£©¡£È˼ÒÕÕÄã²½Ö裬ÍêÈ«Ðв»Í¨£¬´íÎó°Ù³ö£¡
Ç×£¬Äú»¹Ã»ÓеǼ,Çë[µÇ¼]»ò[×¢²á]ºóÔÙ½øÐÐÆÀÂÛ