linux dvbh driver

Hey this is Michael's current job, write device driver under linux. DVBH player is the first project for me and I've already finished it. Here in this blog,I'm recording my result.

Website Counter

星期四, 十二月 07, 2006

How to Cross Compile DirectFB

How to Cross Compile DirectFB
haigang.xu@samsung.com

Now I've successfully made DirectFB running. It's very interesting to do this: grab some software from the open source and compile them made them running on my board.

Well, I played some trick on making the directFB running.
DirectFB introduction,please see the wiki page http://www.directfb.org/wiki/

What I did
1. Get the source code from dirctFB
I download DirectFB-1.0.0-rc2.tar.gz

2.configure and compile
Let me suppose you've already set the enviroment for cross-compiling,indicating that you've already got the cross-compiler. I'm using 3.4.4.

I made a BUILD file ,you can refer to this and modify according to your path setting.

export CC=/cross-compile/bin/arm-linux-gcc
export AR=/cross-compile/bin/arm-linux-ar
export LD=/cross-compile/bin/arm-linux-ld
export RANLIB=/cross-compile/bin/arm-linux-ranlib
export PREFIX=/tftpboot/root/usr
./configure --host=arm-linux --build=i386-linux --target=arm --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 --disable-gif --enable-freetype --disable-video4linux --disable-video4linux2 --with-gfxdrivers=none --with-inputdrivers=none


3. Modify something on the configure file
3.1 add one line
"have_linux=yes"
if the have_linux is not enabled, the FBDev will not be selected

3.2 Change the MODULEDIR
from MODULEDIR=$libdir/$MODULEDIRNAME
to MODULEDIR=/usr/lib$MODULEDIRNAME

4. run ./BUILD, this script will finish the configure work
if you met problems, check the config.log,you will find something. "Every problem has a reason", said one of my colleagues.

5. make
Sometimes if you met "undefined symbol" problem, check the LDFLAGS or CFLAGS and add the path of these .h files or lib files

6 make install
make sure the prefix is correctly set(CAUTION:it should be under your rootfs path otherwise your Host system file will be covered then your linux will not be boot successfully next time), then do the make install


I'm newbie to GUI compiling. I'm a kernel device driver and now I am interested in the GUI porting.