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>