Wednesday, September 30, 2015

Tương tự như LiTE, ilixi cũng là một toolkit engine cho DirectFB, tuy nhiên về mức độ đầy đủ và hoàn thiện thì cao hơn LiTE.



Trong bài viết này là sự kết hợp giữa:
DirectFB-1.7.0
ilixi-1.0.0
libpng1.6.0, freetype2.4, alsa-lib-1.0.22, alsa-utils-1.0.22, linux-fusion-9.0.2, libsigc++-2.4.0, libxml-2.7.7, fontconfig-2.11.1

Link download.


 <pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;"><code style="color:#000000;word-wrap:normal;"> #=======================================================================   
  # source environment    
  #=======================================================================   
  source setenv.sh   
  "   
  #!/bin/bash   
  export SRCROOT=`pwd`   
  export PREFIX=/friendlyarm   
  export CC_PATH=/home/ninhld/mini2440/SDK/FriendlyARM/toolschain/4.4.3   
  export CROSS_COMPILE=${CC_PATH}/bin/arm-none-linux-gnueabi-   
  export CC=${CROSS_COMPILE}gcc   
  export STRIP=${CROSS_COMPILE}strip   
  export AR=${CROSS_COMPILE}ar   
  export AS=${CROSS_COMPILE}as   
  export CXX=${CROSS_COMPILE}g++   
  export CPP=${CROSS_COMPILE}cpp   
  export LD=${CROSS_COMPILE}ld   
  export RANLIB=${CROSS_COMPILE}ranlib   
  export ARCH=arm   
  export KROOT=   
  export ADVBOOT_SOURCE=   
  export UBOOT_SOURCE=   
  export ROOTFS=/home/ninhld/mini2440/SDK/rootfs_qtopia_qt4   
  export LOG=${SRCROOT}/Build.log   
  export PATH=$PATH:${CC_PATH}/bin   
  export PLATFORM=   
  export HOST=arm-none-linux-gnueabi   
  export BUILD=x86_64   
  "   
     
  #=======================================================================   
  # Linux kernel   
  #=======================================================================   
     
  tar –xvzf linux-2.6.32.2.tar.gz   
  cd linux-2.6.32.2   
  cp config_mini2440_p35 .config   
  export ARCH=arm   
  make menuconfig   
  make zImage   
  =&gt; linux-2.6.32.2/arch/arm/boot   
     
  export INSTALL_MOD_PATH=${PREFIX}   
  make modules   
  make modules_install   
  =&gt; ${PREFIX}/lib/modules   
     
     
  I had the same issue, removing __initdata in   
  &gt; arch/arm/mach-s3c2440/mach-mini2440.c   
  &gt; in mini2440_lcd_cfg array and mini2440_fb_info data structure, solves   
  &gt; the issue.   
  &gt; But after that, I ran other issues, may be I miscompile directfb, i need   
  &gt; to investigate more.    
     
  #=======================================================================   
  # build Directfb 1.7 &amp; ilixi 1.0    
  #=======================================================================   
  # build libpng1.6.0 ok   
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}   
     
     
     
  # build freetype2.4 ok   
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}   
     
     
  #alsa-lib-1.0.22   
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}    
     
     
     
  #alsa-utils-1.0.22 (NOT NEED for Directfb)   
  export CFLAGS=-I${PREFIX}/usr/local/include   
  export LDFLAGS=-L${PREFIX}/usr/local/lib   
  export PATH=$PATH:${PREFIX}/usr/local/bin   
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PREFIX}/usr/local/lib   
  export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX}/usr/local/lib/pkgconfig   
     
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}   
     
     
  # linux-fusion-9.0.2   
  requirement:    
  - build linux kernel modules ok   
  - for example: ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM   
     
     
  open linux-fusion Makefile and edit:   
     
  KERNEL_VERSION = 2.6.32.2-FriendlyARM   
  INSTALL_MOD_PATH = ${PREFIX}   
  KERNELDIR  = $(INSTALL_MOD_PATH)/lib/modules/$(KERNEL_VERSION)/build   
  FUSIONCORE  = single   
  ONECORE   = single   
     
  - make   
  - make install   
     
  =&gt; install fusion.ko and linux-one.ko to ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM/drivers/char/fusion   
   fusion.h &amp;&amp; one.h to ${PREFIX}/usr/include/linux   
     
  -runtime: insmod fusion.ko, insmod linux-one.ko   
     
     
  #Directfb 1.7      
  export CPPFLAGS="-I${PREFIX}/usr/include -I${PREFIX}/usr/local/include -g"   
  export CFLAGS="-I${PREFIX}/usr/include -I${PREFIX}/usr/local/include -g"   
  export LDFLAGS="-L${PREFIX}/lib -L${PREFIX}/usr/lib -L${PREFIX}/usr/local/lib"   
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PREFIX}/usr/local/lib   
  export PKG_CONFIG_PATH=${PREFIX}/usr/local/lib/pkgconfig   
  ./configure --prefix=${PREFIX}/usr/local \   
         --build=${BUILD} --host=${HOST} \   
         --disable-x11 \   
         --enable-drmkms=no \   
         --enable-fbdev=yes \   
         --disable-devmem \   
         --with-gfxdrivers=none \   
         --with-inputdrivers=input_hub,keyboard,serialmouse,linuxinput,tslib \   
         --enable-multi-kernel \   
         --enable-fusiondale \   
         --enable-fusionsound \   
         --enable-one \   
         --enable-sawman   
     
  --with-inputdrivers=LIST   
        LIST is a comma separated selection of inputdrivers   
        to build. Possible inputdrivers are: all (builds all   
        drivers), none (builds none), dbox2remote,   
        dreamboxremote, dynapro, elo-input, gunze, h3600_ts,   
        input_hub, joystick, keyboard, linuxinput, lirc,   
        mutouch, penmount, ps2mouse, serialmouse,   
        sonypijogdial, tslib, ucb1x00, wm97xx, zytronic.   
        [default=all]   
  ./configure --help          
     
     
     
     
     
     
     
     
     
  #libsigc++-2.4.0   
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}   
     
     
  #libxml-2.7.7 &gt;=2.7.7   
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}   
     
  #fontconfig-2.11.1 &gt;= 2.6.0   
  export PATH=$PATH:${PREFIX}/usr/local/bin   
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PREFIX}/usr/local/lib   
  export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX}/usr/local/lib/pkgconfig   
     
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST} --enable-libxml2=yes   
     
     
            
  #ilixi 1.0   
  export CPPFLAGS="-I${PREFIX}/usr/include -I${PREFIX}/usr/local/include -g"   
  export CFLAGS="-I${PREFIX}/usr/include -I${PREFIX}/usr/local/include -g"   
  export LDFLAGS="-L${PREFIX}/lib -L${PREFIX}/usr/lib -L${PREFIX}/usr/local/lib"   
  export PKG_CONFIG_PATH=${PREFIX}/usr/local/lib/pkgconfig   
     
  ./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST} --with-examples --enable-nls=yes --enable-fusiondale=yes --enable-fusionsound=yes --enable-sawman=yes   
     
     
     
  # run Directfb &amp; ilixi example on board target   
  export PREFIX=/friendlyarm   
  insmod ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM/drivers/char/fusion/fusion.ko   
  insmod ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM/drivers/char/fusion/linux-one.ko   
  export PATH=$PATH:${PREFIX}/usr/local/bin   
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PREFIX}/usr/local/lib   
  export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:${PREFIX}/usr/local/lib/pkgconfig   
     
  Some example in ${PREFIX}/usr/local/bin   
  Ex: ilixi_hello, ilixi_dialogs   
 </code></pre>  







Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -