Raspberry Pi Media Centre Tutorial

Build your very own media centre out of a Raspberry Pi to save on space and money using XBMC


One of the great things about the Raspberry Pi is that it not only has plenty of power to play back high definition video, but it also has the HDMI output to allow you to do so. This would naturally lead the media enthusiasts among you to think of the possibilities for using the RasPi as a media centre, but the list of advantages don’t stop there. It has network support to stream video, has a ridiculously small form factor so you can tuck it out the way, and of course the low price doesn’t hurt.

The potential for the Raspberry Pi’s use as a media centre hasn’t gone unnoticed by the community, and thanks to its open-source nature, there are two great options to get XBMC working on your RasPi. RaspBMC is a Debian Remix that’s simple to install, and OpenELEC is a bit more challenging, however it works just that little bit better. Both of these solutions run as well as any other Home Theatre PC, with high definition video playback, and generally smooth menu navigation. In this guide we’ll show you how to make the most out of a RasPi HTPC.


OpenELEC Raspberry Pi HTPC XBMC
RaspBMC is the easiest and quickest way to get started

Step 1 Download RaspBMC

RaspBMC comes with its own installer, which you can download by using wget in the terminal:

$ wget

This downloads the file that will install RaspBMC to an SD card

Step 2 Prepare RaspBMC

To install RaspBMC, you’ll need to first change the persmissions on the install file like so:

$ chmod +x

Then make sure you have the right SD card in your system, and that any important files on it are backed up

Step 3 Install RaspBMC

Now you can install with:

$ sudo python

And follow the instructions to install on your SD card. It will usually be listed as something like sdb, and have a 4 GB/4000 MB capacity

Step 4 Set-up RaspBMC

You’ll now need to plug the SD card into your RasPi, then plug it into a display and turn it on. Make sure it’s also connected to the internet, as it will then download and update all the necessary files to get it working

Step 5 Video Out

The Raspberry Pi has an extra video out port, the yellow composite port. You plug that in and it will automatically recognise it. You can also change the resolution and refresh rate in Settings, System Settings, Video Output

Step 6 Headphone Out

If you’re using the video out port and not HDMI, then you’ll need to use the headphone jack to output the audio. You can get a cable to hook this up to a TV, but you’ll also need to go to Settings,System Settings, Audio Output, and change it to Analogue

Step 7 USB Storage

There are two main ways to watch your media – either stream it over the network, or by attaching USB storage with it on. Be aware though, there are limited USB ports on the RasPi, and if you connect a USB hub it will need to be powered!

Step 8 Video Source

Connected and Networked storage can be added as sources to XBMC. Go to Videos on the main menu, then Add Videos. For connected devices and some network shares, you can go to Browse, and select it. You’ll be then asked where to get metadata from to finish.

Step 9 Add Network Source

Sometimes XBMC might not see your network share, but you can still add it. Your shares are more than likely down via samba, especially if you have Windows computers in the house. The file path you need to add before you hit browse will look something like this:



Raspberry Pi XBMC RaspBMC HTPC
OpenELEC is a more advanced way of creating a HTPC

Step 10 Get OpenELEC

Alternatively you can use OpenELEC on your RasPi to get XBMC on there. We need to grab the source for OpenELEC like so:

$ git clone git://

We can use the source files to build any version of OpenELEC, obviously we want it for RasPi

Step 11 Prepare your system

When building, it should grab all the required packages. It cannot do this on all distros all the time though, and may print a list of packages you require. In Ubuntu, you’ll need:

$ sudo apt-get install g++ nasm flex bison gawk gperf autoconf automake m4 cvs libtool byacc texinfo gettext zlib1g-dev libncurses5-dev git-core build-essential xsltproc libexpat1-dev autopoint

Step 12 Configure Perl

You may need to configure Perl on your system. All you need to do is open the terminal and run the following commands:

$ sudo perl -e shell -MCPAN

Run through the automatic setup by typing yes, then pressing return at each step, then:

install XML::Parser

Now we can move on to the actual build

Step 13 Build OpenELEC

Move into the OpenELEC TV directory by using CD:

$ cd

This is what you’ve just downloaded. Now you can start building it by running this:

$ PROJECT=RPi ARCH=arm make

It’s case sensitive, so be exact.

Step 14 Partition the SD Card

To partition, install GParted with:

sudo apt-get install gparted

Then use it to create two partitions on the target SD card. Create a 128 MB FAT32 partition at the beginning, and fill up the empty space remaining with an EXT2 partition. Apply changes, and then right click on the 128 MB partition, and add a boot flag to it.

Step 15 Install OpenELEC

Mount your SD card, which can normally be done by unplugging and pluggin it back in. We’ve named our 128 MB partition System, so it’s mounted as /media/SYSTEM. Make sure you’re in the folder like before and do the following:

$ sudo cp build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*/arm128_start.elf /media/SYSTEM/start.elf
$ sudo cp build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*/bootcode.bin /media/SYSTEM/
$ sudo cp build.OpenELEC-RPi.arm-devel/bcm2835-bootloader-*/loader.bin /media/SYSTEM/

$ sudo cp target/OpenELEC-RPi.arm-devel-*.system /media/SYSTEM/SYSTEM
$ sudo cp target/OpenELEC-RPi.arm-devel-*.kernel /media/SYSTEM/kernel.img

$ echo “boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 ssh quiet” | sudo tee /media/SYSTEM/cmdline.txt

This will get the necessary files moved to the boot partition we created. Once this is done, plug in your RasPi, networking and all, and it will boot straight into XBMC after a few seconds ready to go

Advanced Uses

OpenElec Raspberry Pi XBMC HTPC Media Centre
Time to look at some more advanced options

Step 16 Nightly Build

It’s not recommended, but in RaspBMC you can switch to a nightly build of XBMC. This means you can play Hi10 video files, common in more recent high definition encodes. It is unstable though, so use with caution!

Step 17 Command Line

If you fancy doing a bit more advanced customisation of your setup, you can always enter the command line by plugging in a keyboard at boot time and using Ctrl+Alt+F2 to enter the command line. You can then use Ctrl+Alt+F7 to return to XBMC

Step 18 Remote Control

There are some specific remotes that will work with XBMC out of the box, these include:

XBOX DVD playback remote
ATI/X10 remote
CyberLink 0766:0204
MCE remote
Hama remote

You’ll need to have the receivers plugged into the USB port before you turn the RasPi on for it to be automatically recognised.

Step 19 Input Settings

There are various Input Settings you can play about with under System in the Settings menu. If you’re having problems with your remote, you can always set it to register as keyboard presses, and you can optimise the UI for mouse or touch screen use

Step 20 Remote App

If you’ve got an Android device, you don’t need to buy a separate remote for your new HTPC – there’s plenty of XBMC control apps on the Google Play store, even an official one. These will automatically connect to an XBMC HTPC on the same network

Step 21 Manual Remote App

You may need to add your RasPi manually to the remote. To find the IP you’ll need, go to System, System Info, Network. Here you’ll find the IP address, for example In add new host on the mobile app, add this. The Username and Password is by default xbmc

Step 22 Remote Web

Under Settings, Services, you can turn on a web server to control XBMC from any web browser on the same network. Enable “Allow control of XBMC via HTTP”, and note the port number, e.g. 80. Finding the IP address like above, go to in your browser to access it

Step 23 Power Concerns

As the Raspberry Pi is USB powered, you might consider plugging it into your TV if it has a USB port. This will provide enough power for it to run, and as you need to disconnect the power to fully turn off the RasPi, turning off the TV does that for you.

Step 24 RasPi HTPC

There’s plenty of other little tweaks you can do in the settings to have it set up to your taste, and you may also want to look into cases to house the RasPi in your living room. For the price and size though, you won’t find a better HTPC.

Related Raspberry Pi articles