Banana Pi / Arch Linux / XBMC


This blog post is about getting a working XBMC setup on the Banana Pi running Arch Linux. Unfortunately it seems to be impossible to get a hardware accelerated XBMC setup on the Banana Pi at the moment. But chances are good, that this will be the case in relatively near future. To get 1080p videos running flawlessly on the BPi, I suggest using mplayer with libvdpau-sunxi (see Accelerated Mali GPU).

However, you are still able to use XBMC unaccelerated, which plays most of the files with a lower resolution than 1080p good enough. All audio-only related purposes should just working fine.

Building, installing and configuring

I couldn’t get XBMC running the default way. Neither from the Arch Linux community repository nor xbmc-git from the AUR. So once more, I was forced to research and luckily found this helpful guide.

Make sure, you have at least following packages installed (besides the common building tools):

yaourt -S --needed libmariadbclient libmpeg2 tinyxml sdl_image libmicrohttpd libssh swig smbclient yajl libva libvdpau boost cmake git gperf jasper java-runtime unzip zip upower

Also we want to ensure, that default hardware acceleration is enabled (thus I’m not sure, if this has an impact on the BPi):

export A10HWR=1

You might want to append the previous command to your /etc/profile.
Next checkout the xbmca10 repository (more than 600 MB):

cd $HOME
git clone git://
cd $HOME/xbmca10
git checkout stage/Frodo

Paste the following quick-fix to avoid compiling problems later:

sed -i -e 's:#include <libsmbclient.h>:#include <samba-4.0/libsmbclient.h>:' xbmc/filesystem/{SmbFile,SMBDirectory}.cpp

Then we build the dependencies:

cd tools/a10/depends
sudo make

Afterwards we build and install XBMC itself (this will take a long time):

make -C xbmc

If building was successful, you see following message:

XBMC built successfully

We can install our freshly built XBMC setup:

cd ../../../
sudo make install

You might need to add following udev rules to your existing /etc/udev/rules.d/50-mali.rules to get mouse/keyboard working:

SUBSYSTEM=="vchiq|input", MODE="0777"
KERNEL=="mouse*|mice|event*",  MODE="0777"

Reboot your system or just reload udev rules:

sudo udevadm control --reload-rules

Finally we can test our work:

/allwinner/xbmc-pvr-binhf/bin/xbmc &

If you see XBMC working, congratulations! You might want to create a symbolic link to /usr/local/bin/xbmc for comfort:

sudo ln -s /allwinner/xbmc-pvr-binhf/bin/xbmc /usr/local/bin/xbmc
sudo ln -s /allwinner/xbmc-pvr-binhf/bin/xbmc-standalone /usr/local/bin/xbmc-standalone

In XBMC you should configure your audio output to get sound working. Go to System / System / Audio output and configure the parameters as desired. In my case, I wanted to passthrough all sound signals to my HDMI connected AVR, so I chose “HDMI” as audio output and “sunxi-sndhdmi (…)” as audio output device.

I hope, this guide was helpfully for you, getting XBMC up and running on the Banana Pi.


  1. Wow, nice work. Looks very easy what you describe, but I’m to much a linux noob to get it running. Can you upload your image somewhere, please? That would be a huge help. I wasted days getting my banana pi to work with 1080p video, but I nothing could help.

    1. Hi Mirko,

      sorry to disappoint you but my image is too customized to be publishable. I’m still willing to prepare a new image from scratch with all the necessary applications and drivers included. But doing it requires a lot of time. I’m afraid I cannot give an ETA.

      Best regards,

  2. Hi! Thanks for your awesome posts. I followed both this and the hardware acceleration one and they work like a charm.

    I have a small question. I have set mplayer as an external player for XBMC however there is a lot of flickering between the video and XBMC. Do you have any way around this?

    1. Hi Chris,
      thank you very much!

      Unfortunately I can’t help at the moment. I also tried to use mplayer as an external player but had the same flickering issues.

      I noticed the idea of a work around by creating a shell script, which is used as an external player, that kills xbmc and runs mplayer instead (see But I didn’t tried that out as I keep hoping and waiting for full hardware acceleration.

      Best regards,

Leave a Reply

Your email address will not be published. Required fields are marked *