Running XBMC as a VDR client on Raspberry Pi


Published on January 25, 2014 by Marcus Rickert

Raspberry Debian xbmc xvdr xine How-To

2 min READ

Since I had been using the VDR (Video Disk Recorder) for several years on my local server using xine with the XVDR protocol I wanted to have the same functionality on my new Raspberry Pi. However, instead of the rather basic XINE I decided to try the more fancy XBMC client.

At first, I thought that this would just boil down to installing the required Debian packages and I kind of got started well using this page to install the XMBC itself on the Raspberry Pi. It also helped me to set up the UDEV system correctly to identify my remote control (HAMA 52451).

Still. I soon found out it was a little more difficult than this. Both client and server need a specific plugin for the XVDR protocol which was not available on either system.

So, I set out (for the first time in a long while) to actually compile the required packages from sources found in Git-Hub.

Server Portion

The VDR plugin source code is available here. You need to clone the repository into a local folder. See this page at StackOverflow on how this is done. Then, configure, compile, install, and restart VDR. Pretty straight forward.

Client Portion

The XBMC plugin source code is available here. Again you need to clone the repository into a local folder. But be careful! Client and server versions have to match! In my case the XBMC was version Frodo. The server plugin turned out to match the version. The client plugin, however, was a newer version by default. Therefore, I had to clone a specific branch of the repository. I needed the xbmc-frodo branch. The command for cloning is as follows:

git clone -b xbmc-frodo https://github.com/pipelka/xbmc-addon-xvdr.git xbmc-addon-xvdr

As it turned out, the default environment on my Raspberry did not contain some utility packages required for building the source package. I came across error complaining about the lack of:

libtoolize -> install package libtool
aclocal -> install package automake
zip -> install package zip

Otherwise, building was straight forward. The only additional configuration that I did was choose an explicit installation prefix while configuring:

./configure --prefix=/usr/lib/xbmc

I used the target dist-zip for installing the package.

Making it work

When I tried to start the XMBC PVR plugin on Raspberry I obtained the run-time error that the connection to the server could not be established. Looking at the VDR log at /var/log/user I saw the following lines:

Dec 22 22:35:32 casimir vdr: [23074] XVDR-Error: Invalid or missing '/var/lib/vdr/plugins/xvdr/allowed_hosts.conf'. falling back to 'svdrphosts.conf'.
Dec 22 22:35:32 casimir vdr: [23074] XVDR-Error: Invalid or missing /var/lib/vdr/plugins/xvdr/../svdrphosts.conf. Adding 127.0.0.1 to list of allowed hosts.
Dec 22 22:35:32 casimir vdr: [23074] XVDR-Error: Address not allowed to connect (/var/lib/vdr/plugins/xvdr/allowed_hosts.conf)

This was caused by the missing configuration file in /var/lib/vdr/plugins/xvdr. I created a new allowed_hosts.conf with the format described here, restarted the server and the client, and voilĂ ! I had a working XBMC client!