VDR installation

From VDR Wiki
Jump to: navigation, search

This page explains how to compile and install VDR on your linux system (if you don't want to have it done for you by your distro's package manager).



The variable $SOURCEDIR stands for the directory where all the sources archives should be decompressed. Common directories are /usr/local/src, /usr/src and the home directory of the user.

To install VDR, the DVB driver has to be placed in the DVB directory, parallel to VDR.


For the DVB driver in kernel 2.6 create a symbolic link

ln -s /usr/src/linux $SOURCEDIR/DVB

or use your distribution's kernel headers package.

For everything concerning the DVB driver see DVB installation.

Also the JPEG library has to be present on the system. In a typical distribution, the library and the development headers are in separate packages; to be able to compile VDR, you need both (though to run it, you need only the library). If you want or need to install it from source:

tar -xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local
make install

VDR 1.2.x and older 1.3.x don't work with NPTL (Native Posix Thread Library). Either don't use NPTL, or set the environment variable LD_ASSUME_KERNEL by entering

export LD_ASSUME_KERNEL=2.4.1

before running VDR.

VDR 1.3.27 and later do not appear to have any problems with NPTL.

Also, please make sure your environment is NOT set to use UTF-8 or any other multibyte character representation. If so, it should be replaced by something like iso8859-1. Depending on the distribution the variables LANG and LC_CTYPE could be in different locations. These have to be set before starting VDR

export LANG=de_DE.iso8859-1
export LC_CTYPE=de_DE.iso8859-1

de_DE.euro should also work.

First of all a recent version of VDR is required. There are two releases to choose from, the stable release with an even version number (like 1.2.x) and the developer release with a odd version number (like 1.3.x).

Which version to choose? The developer release has more features, but for the stable release more plugins are available. Both stable and development packages can be downloaded from [1]


The source is decompressed in the $SOURCEDIR and a symbolic link to VDR is created

tar -jxvf /path/to/vdr-<VERSION>.tar.bz2
ln -s vdr-<VERSION> VDR
cd VDR

Now a simple


compiles VDR.

The VDR build can be customised, using one of the following option with the make command

REMOTE=RCU "Remote Control Unit", a purpose-build for VDR infrared receiver (see [2])
REMOTE=LIRC "Linux Infrared Remote Control". Infrared receiver for Linux (see [3])
VFAT=1 If the video directory is a Windows VFAT partition or should be shared via samba, this parameter is needed
NO_KBD=1 disables keyboard control

With this the make command could look like this


If the plugins should also be compiled, use this

make VFAT=1 REMOTE=LIRC all plugins

But see plugin installation for more information on this.

All the parameter can be put into a Make.config file in the VDR directory for convenience

cp Make.config.template Make.config
$EDITOR Make.config

with e.g.


At first the desired directory has to be created

mkdir /var/spool/video
mkdir /var/spool/epg
mkdir /etc/vdr
mkdir /usr/lib/vdr

These directory are for the recordings, for the EPG data, the configuration files and for the plugins. The directory can of course be altered to the personal likings. Especially the from the video directory separated configuration directory has the advantage of using different VDR versions with different configurations, but with one directory for the recordings.

Now the needed files must be copied over

cp vdr /usr/bin
cp *.conf /etc/vdr
cp PLUGINS/lib/* /usr/lib/vdr

Some programs need the svdrpsend.pl script in the $PATH, like vdrconvert-plugin/vdrrip-plugin

cp svdrpsend.pl /usr/local/bin

If the manual pages are desired

gzip -c vdr.1 > /usr/man/man1/vdr.1.gz
gzip -c vdr.5 > /usr/man/man5/vdr.5.gz



At startup VDR needs to know where all the files are and should go

vdr --video=/var/spool/video \
    --epgfile=/var/spool/epg \
    --config=/etc/vdr \
    --lib=/usr/lib/vdr \
    [further parameter]

For further parameters see VDR options.


VDR offers the possibility to be controlled over the network with the help of the SVDRP protocol. In the configuration file svdrphosts.conf every host and/or network is listed that is allowed to access to VDR. Only localhost is allowed in the standard configuration.


runvdr is a start script for VDR that comes with the sources. It not only starts VDR it also starts the DVB driver and recovers all after a crash.


[1] http://www.tvdr.de/ VDR homepage
[2] ftp://ftp.tvdr.de/vdr/ VDR download directory
[3] http://www.tvdr.de/remote.htm Remote Control Unit for VDR
[4] http://www.lirc.org LIRC homepage
[5] http://www.ijg.org libjpeg