XBMC for Raspberry Pi

This page describes how to install XBMC on a Raspberry Pi running Raspbian. You can either install packages on an existing Raspbian installation, or you can download a prebuilt image and flash it to an SD card.

Installing packages on an existing installation

I've published a Debian archive containing packages for Kodi/XBMC and some dependencies which it requires. This can be setup on an existing Raspbian installation (including the foundation image).

Installing

The easiest way to install the package is to add my archive to your system. To do this, store the following in /etc/apt/sources.list.d/mene.list:

deb http://archive.mene.za.net/raspbian wheezy contrib

and import the archive signing key:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED

Then update the package lists:

sudo apt-get update

You can then install it as you would with any other package, for example, with apt-get:

sudo apt-get install kodi

The user which you're going to run Kodi as needs to be a member of the following groups:

audio video input dialout plugdev tty

If the input group doesn't exist, you need to create it:

addgroup --system input

and setup some udev rules to grant it ownership of input devices (otherwise the keyboard won't work in Kodi), by placing the following in /etc/udev/rules.d/99-input.rules:

SUBSYSTEM=="input", GROUP="input", MODE="0660"
KERNEL=="tty[0-9]*", GROUP="tty", MODE="0660"

The GPU needs at least 96M of RAM in order for XBMC to run. To configure this add or change this line in /boot/config.txt:

gpu_mem=128

You will need to reboot if you changed this value.

Running

To run XBMC, run kodi-standalone from a VT (i.e. not under X). XBMC accesses the display directly and not via Xorg.

If you want Kodi to automatically start when the system boots, edit /etc/default/kodi and change ENABLED to 1:

ENABLED=1

Run sudo service kodi start to test this.

Release history

  • 15.2-2: Isengard 15.2 release, and most PVR addons.
  • 14.2-1: Helix 14.2 release.
  • 14.1-1: Helix 14.1 release.
  • 14.0-1: Helix 14.0 release.
  • 13.1-2: Link to libshairplay for better AirPlay support.
  • 13.1-1: Gotham 13.1 release.
  • 12.3-1: Frodo 12.3 release.
  • 12.2-1: Frodo 12.2 release.
  • 12.1-1: Frodo 12.1 release. Requires newer libcec (also in my archive).
  • 12.0-1: Frodo 12.0 release. This build requires newer firmware than the raspberrypi.org archive or image contains. Either install the packages from the raspberrypi.org untested archive, the twolife archive or use rpi-update. (Not necessary as of 2013/02/11.)

Flashing an SD card with a prebuilt image

I've built an image containing a Raspbian system with the XBMC packages which you can download and flash to an SD card. You'll need a 1G SD card (which will be completely wiped).

Flashing

Decompress the image using unx:

% unxz raspbian-xbmc-20121029.img.xz

And then copy the image to the SD card device (make sure that you pick the correct device name!)

% sudo cp xbmc-20121029-1.img /dev/sdb

Customising

The image uses the same credentials as the foundation image, username "pi" and password "raspberry". You can use the raspi-config tool to expand the root filesystem, enable overclocking, and various other configuration tasks.

Updating

Both Raspbian and Kodi can be updated using normal Debian mechanisms such as apt-get:

# sudo apt-get update
# sudo apt-get dist-upgrade

Release history

Unstable versions

I've started building packages for the upcoming Jarvis release. These are in the new unstable section of the archive. To install these packages update your source list to look like this:

deb http://archive.mene.za.net/raspbian wheezy contrib unstable

Release history

  • 16.1-1: Jarvis 16.1
  • 16.0-1: Jarvis 16.0
  • 16.0~git20151213.a724f29-1: Jarvis 16.0 Beta 4
  • 15.2-2: Isengard 15.2 with packaging changes to support PVR addons, and most PVR addons.
  • 15.2-1: Isengard 15.2
  • 15.1-1: Isengard 15.1
  • 15.0-1: Isengard 15.0
  • 15.0~git20150702.9ff25f8-1: Isengard 15.0 RC 1.
  • 15.0~git20150501.d1a2c33-1: Isengard 15.0 Beta 1.
  • 14.2-1: Helix 14.2 release.
  • 14.1-1: Helix 14.1 release.
  • 14.0-1: Helix 14.0 release.
  • 14.0~git20141203.35b4f38-1: Helix 14.0 RC 2
  • 14.0~git20141130.ea20b83-1: Helix 14.0 RC 1
  • 14.0~git20141125.4465fbf-1: Helix 14.0 Beta 5
  • 14.0~git20141124.ec361ca-1: Helix 14.0 Beta 4
  • 14.0~git20141116.88a9a44-1: Helix 14.0 Beta 3
  • 14.0~git20141103.d6947be-1: Helix 14.0 Beta 1. This requires firmware as of 2014/10/06 and libcec 2.2.0 (both included in the archive). There are also builds for Jessie but I haven't tested them. PVR addons are also updated.
  • 14.0~git20141002.d2a4ee9-1: Helix 14.0 Alpha 4

Trackback URL for this post:

http://michael.gorven.za.net/trackback/1498

cannot extract

I was unable to extract the archive raspbian-xbmc-20121121.tar.xz on Windows.

I tried 7zip, winrar, extractnow, xz utils, and tar.

Please consider an alternative means of compression.

It seems that 7zip doesn't

It seems that 7zip doesn't handle TAR archives containing sparse files. I'll skip the TAR archive for the next build and just compress the image file with XZ.

Is there any way to get this

Is there any way to get this file on a windows computer then?

same problem

tar.xz just won't extract on windows, no matter what you use.. :/. Please use tar.gz or anything like that in the future :). I just used a live cd I had lying around to extract the archive.

Crashes on wheezy

For me it crashes on recently installed wheezy:

* failed to add service - already in use?
pure virtual method called
terminate called without an active exception
Aborted (core dumped)

The same crash in standalone and usual mode Do you have any glue what exactly went wrong?

Aha, got it, it was because a

Aha, got it, it was because a wrong (16 mb for GPU) memory split I've did for compiling. When switched back to 64Mb it worked. Hope this helps if someone gets the same problem in the future.

% sudo cp xbmc-20121029-1.img

% sudo cp xbmc-20121029-1.img /dev/sdb

Shouldn't that be something more like:

% sudo dd if=xbmc-{date}.img of=/dev/sdX bs=2M

dd will also work, but cp is

dd will also work, but cp is simpler because you don't need to deal with block sizes.

beta

aac won't play and video is a bit choppy in this build.

I haven't had any video

I haven't had any video issues (with 720p h264), and AAC audio plays fine for me. Have you rebooted the pi? Where is the media stored?

Many thanks, but xbmc doesnt create movies or tvseries dbase

I really want to thank you for your work, xbmc runs flawless on my rpi with debian. However, I just can't get xbmc to create a movies or tvseries listing in main menu. It seems scraping goes fine, but when done nothing shows up in main menu. Playing those files goes fine.

I have the files stored on my external usb hdd coupled onto the pi. when issuing this command grep video /etc/group I get the following output: video:x:44:pi other groups show the same output,with another number. I guess it's fine. (?) How to troubleshoot further?

Still, many thanks for your work!

database solved

Was due to naming issue, not with xbmc...

error no talloc stack frame

I have been using your installation but since a recent update I get this error "No talloc stackframe round memory leakage" the raspi forum blames your method installing and reccomenede

I/O exception (java.io.file not foundexception)

Hi I have installed this and got it working except every time I start xbmc for android remote I get the above error and Http://192.168.01.10:8080/jsonrpc

the remote works after i close the error but it does not connect fully i.e. it only works as a remote without showing on screen info for movies tv photos ect how can jsonrpc be incorporated into your xbmc installation also your xbmc is several releases out date now