BeagleBoard/GSoC/2010 Projects/XBMC

< BeagleBoard‎ | GSoC‎ | 2010 Projects
Revision as of 17:05, 4 August 2010 by Topfs2 (Talk | contribs)

Jump to: navigation, search

Project: XBMC

Student: Tobias Arrskog

Mentors: Mike Zucchi, Mans Rullgard, Søren Steen Christensen

Repository-git: git:// and branch gsoc-2010-beagleboard



Latest blog entries:

Weekly report 8

Weekly report 7

Weekly report 6

What to do when you have the dirty regions


Lightning talk:



Koen have been nice enough to add a dependency list to narcissus but for those that doesn't want to make a new image here is the package list

opkg install task-native-sdk boost-dev libgles-omap3-dev libsamplerate0-dev liblzo2-dev bzip2-dev libwavpack-dev mpeg2dec-dev libfribidi-dev libpcre-dev libcdio-dev libmodplug-dev flac-dev libsdl-mixer-1.2-dev libsdl-image-1.2-dev alsa-dev enca-dev libxt-dev libxtst-dev libxmu-dev libxinerama-dev curl-dev libmicrohttpd-dev gperf cmake zip git python-devel openssl-dev cvs pkgconfig-dev libxrender-dev libxrandr-dev git glibc-gconv-ibm850 glibc-charmap-ibm850 angstrom-version

Interesting patches for beagleboard

To enable the experimental omap overlay video renderer use configure option --enable-omap-overlay

To enable dirty region based rendering add this as advancedsettings.xml (~/.xbmc/userdata/advancedsettings.xml)






Build Instructions (native)

Since XBMC is a big application it takes up the entire ram of the beagleboard on link, this means that we need swap (here is how this can be done

export CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O2"

export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu"


./configure --enable-gles --prefix=/usr --sysconfdir=/etc --cache=config.cache --disable-optical-drive


make install

Sit back and enjoy, the build process will take a few hours.

Build Instructions (cross compile)

First begin by setting up OpenEmbedded by following this tutorial

While its ok to build xbmc directly now it will take a lot of diskspace so first build dependencies .

MACHINE=beagleboard bitbake libxmu fribidi mpeg2dec ffmpeg samba fontconfig curl libmodplug libmicrohttpd wavpack libmms cmake-native

MACHINE=beagleboard bitbake libsdl-image libsdl-mixer mysql5 sqlite3 libmms faad2 libcdio libpcre boost lzo2 enca avahi libsamplerate0 libxrandr bzip2 virtual/libsdl

Get ahold of the SDK for SGX and put it into downloads and run

MACHINE=beagleboard bitbake virtual/egl

Koen have already provided a bitbake recipe for trunk but if you wish to follow progress on my branch these are the steps you need to take.

If you wish to follow using git just open the and switch branch to gsoc-2010-beagleboard. The gsoc branch have all the required patches for crosscompilation so no need for patches. Set SRC_URI to:

SRC_URI = "git://;protocol=git;branch=gsoc-2010-beagleboard"

Then all thats needed is to follow my branch is to change SRCREV to be the hash sum of the revision you wish to base from, this is kindof annoying to change all the time so I use a local git which I update instead. Here I have cloned git repository from xbmc to /home/topfs/xbmc/ and using the following recipe

Now its possible to build xbmc using:

MACHINE=beagleboard bitbake xbmc