- Back to Home »
- DirectFB »
- Build ilixi Toolkit Engine
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
=> linux-2.6.32.2/arch/arm/boot
export INSTALL_MOD_PATH=${PREFIX}
make modules
make modules_install
=> ${PREFIX}/lib/modules
I had the same issue, removing __initdata in
> arch/arm/mach-s3c2440/mach-mini2440.c
> in mini2440_lcd_cfg array and mini2440_fb_info data structure, solves
> the issue.
> But after that, I ran other issues, may be I miscompile directfb, i need
> to investigate more.
#=======================================================================
# build Directfb 1.7 & 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
=> install fusion.ko and linux-one.ko to ${PREFIX}/lib/modules/2.6.32.2-FriendlyARM/drivers/char/fusion
fusion.h && 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 >=2.7.7
./configure --prefix=${PREFIX}/usr/local --build=${BUILD} --host=${HOST}
#fontconfig-2.11.1 >= 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 & 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>