移植DirectFB 到 S3C2440+LINUX1.4.18上

目前把directFB移植到了s3c2440上,directfb已经可以在2440上run起来,能够显示JPEG和PNG图片。以下把步骤写下来:
#Step1 install pkg-config
1. remove old version pkg-config
2. install version0.2 pkg-config
   ./configure --prefix=/usr/local
   make
   make install
  
#Step2
export PREFIX=/tmp/graphics/arm
export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig
export COMPILER=arm-linux-gcc
#This use arm gcc-2.95.3
export HOST=arm-linux
export BUILD=i386-linux

#Step3 INSTALL LIBC
CC=$COMPILER ./configure --build=$BUILD --host=$HOST --prefix=$PREFIX glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no
#glib_cv_uscore ac_cv_func_posix_getpwuid_r must be set when cross-compile, otherwise configure will error

#Modify config.h, add
 #ifndef SSIZE_MAX
 #define SSIZE_MAX 0x7fffffff
 #endif

#If occue glib_genmarshal error, Must modify file gobject/Makefile tests/gobject/Makefile
#Modify
glib_genmarshal = $(GLIB_GENMARSHAL)
#as:
        LD_LIBRARY_PATH=/"//";
        export LD_LIBRARY_PATH;
glib_genmarshal = $(GLIB_GENMARSHAL)
       LD_LIBRARY_PATH=/"/home/tinix/tools/GTK/DFB-DESKTOP/DirectFB-Related/install-dir/gtkdfb/usr/local/lib/";
        export LD_LIBRARY_PATH;


make
make install

#Step4 Freetype
CC=$COMPILER ./configure --host=$HOST --build=$BUILD --prefix=$PREFIX
make
make install

#Step5 xml
CC=$COMPILER ./configure --host=$HOST --build=$BUILD --prefix=$PREFIX --without-debug

#add PATH_MAX in file testModule.c
#define PATH_MAX 20

make
make install


#Step6 Fontconfig
CC=$COMPILER ./configure --build=$BUILD --host=$HOST /
  --prefix=$PREFIX /
  --with-freetype-config=$PREFIX/bin/freetype-config --enable-libxml2 --with-arch=arm
make
make install

#Step7 zlib
CC=$COMPILER ./configure --prefix=$PREFIX --shared
make
make install

#Step8 libpng
CC=$COMPILER ./configure --host=$HOST --build=$BUILD --prefix=$PREFIX ac_cv_lib_z_zlibVersion=yes CFLAGS=-I$PREFIX/include

#Modify Makefile
#Modify
LIBS = -lz -lm
#as
LIBS =  -lm
make
make install

#Step9 JPEG
CC=$COMPILER ./configure --host=$HOST --build=$BUILD --prefix=$PREFIX
make
make install
make install-lib

#Step9 Directfb

CC=$COMPILER
PKG_CONFIG=/usr/local/bin/pkg-config
FREETYPE_CFLAGS=-I$PREFIX/include/freetype2
FREETYPE_CONFIG=$PREFIX/bin/freetype-config
FREETYPE_LIBS=-L$PREFIX/lib -Wl,--rpath -Wl,$PREFIX/lib -lfreetype -lz

export PKG_CONFIG
export FREETYPE_CFLAGS
export FREETYPE_CONFIG
export FREETYPE_LIBS


./configure --host=$HOST --target=$HOST --build=$BUILD --prefix=$PREFIX --libdir=$PREFIX/lib --include=$PREFIX/include --disable-x11 --enable-debug --disable-voodoo --disable-mmx disable-see --disable-sdl --enable-jpeg --enable-zlib --enable-png --enable-gif --enable-freetype --enable-video4linux --enable-video4linux2 --with-gfxdrivers=none --with-inputdrivers=none CFLAGS=-I$PREFIX  CFLAGS="-I$PREFIX/include/" LIBS=-L$PREFIX/lib --enable-fbdev=yes


#修改tools/directfb-csource.c, 声明FILE *f要提前一下,不然compile不过
FILE *f = fopen(filename[0], "r");


#测试DirectFB,
0. 需要修改debug.h, 把D_DEBUG_ENABLED的MACRO设置为0

1. 需要修改dfbg.c, 在main函数结束前把sleep(20),
   使得图片显示时间长点,确保能够看到图片。然后重新compile
  
2. 把directfb目录中的bin  lib  share拷贝到USB DISK, 新建立libs, 把$PREFIX/lib下的library
   拷贝到libs下,把libs拷贝到USB DISK
  
3. 启动2440, 在/tmp下建立directfb

4. mount -t vfat /dev/scsi/host0/bus0/target0/lun0/part1 /tmp/directfb

5. download test picture sample.jpg, run ./directfb/bin/arm-linux-dfbg sample.jpg
   此时能够看到图片成功显示
  
6. 需要显示png图片,只需要把directfb/libs加进LD_LIBRARY_PATH搜索路径就OK了,
   然后重复步骤5就OK了  
  
  
   export PATH=/tmp/graphics/arm/bin/:$PATH
   export LD_LIBRARY_PATH=/tmp/graphics/arm/lib/:$LD_LIBRARY_PATH
  

如果需要   2D支持,可以在directfb上加入Cairo支持
#Step10 Cairo
CC=$COMPILER /
  directfb_CFLAGS="-I$PREFIX/include/directfb" /
  directfb_LIBS="$PREFIX/lib/libdirectfb.so /
  $PREFIX/lib/libdirect.so /
  $PREFIX/lib/libfusion.so" /
  png_REQUIRES="$PREFIX/lib/pkgconfig" /
  png_CFLAGS="-I$PREFIX/include" /
  png_LIBS=$PREFIX/lib/libpng12.so /
  FONTCONFIG_CFLAGS="-I$PREFIX/include/fontconfig" /
  FONTCONFIG_LIBS=$PREFIX/lib/libfontconfig.so /
  FREETYPE_CFLAGS="-I$PREFIX/include/freetype2" /
  FREETYPE_LIBS=$PREFIX/lib/libfreetype.so /
  ./configure --prefix=$PREFIX --build=$BUILD --host=$HOST /
  --enable-directfb=yes --without-x --disable-xlib --disable-xlib-xrender /
  --disable-win32 --disable-pdf --disable-ps --disable-svg --enable-png ac_cv_lib_z_compress=yes /
  ac_header_compiler=yes ac_header_preproc=yes CFLAGS=-I$PREFIX --enable-pdf CFLAGS="-I$PREFIX/include/" LIBS=-L$PREFIX/lib
 
  make
  make install


#关于Cairo在2440上的测试程序,目前正在编写中,调试OK后再贴出来



MSN:tinix123@hotmail.com
EMAIL:tinix123@gmail.com
有疑问的可以给我发邮件,大家一起探讨
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值