Diskstation VDR Streaming Server im chroot
Inhaltsverzeichnis |
Einleitung
Still Under Construction
Diese Step-by-Step-Anleitung beschreibt die Installation und Konfiguration eines VDR Streaming Server Systems mittels Debian chroot auf einer Synology Diskstation. Der VDR wird ohne Ausgabe und Fernbedienung aufgesetzt "headless" und dient nur dem streamen und der zentralen Verwaltung von Aufnahmen, Konfigurationen und Timern.
VDR, DVB Module und Plugins werden "Cross Compiled". Der Ansatz lautet KISS ("Keep it simple stupid") es wird versucht so viel wie möglich mit vorhandenen Mitteln zu bewältigen.
Als Zuspieler kommt wahlweise vtunerc/satip, vdr-plugin-satip oder angesteckte USB Empfänger zum Einsatz.
Getestet und aufgesetzt auf einer DS214play und DSM5 sollte diese Anleitung jedoch auch auf andere Modelle übertragbar sein. Vielleicht auch hilfreich für den Aufbau von Debian Systemen.
Anmerkungen und Diskussion willkommen im vdr-portal
Vorraussetzungen Diskstation
Chroot
Im ersten Schritt muss das "Debian Chroot" Paket von SynoCommunity installiert oder kompiliert werden. Der schnelle Weg ist das benutzen der bereits gebauten Pakete, die in drei Schritten installiert werden können SynoCommunity. Danach wählt man im Paketmanager das entsprechende Paket aus. Das Paket kann auch kompiliert werden, auch das ist vergleichsweise einfach, gut beschrieben hier SynoCommunity github Alternativ kann man ein Chroot auch komplett selbst aufsetzen eine gute Anleitung dazu findet sich hier Debian_auf_der_DiskStation
Optional: IPKG
IPKG ermöglicht es ohne chroot Pakete/ Module zu starten/ installieren direkt auf der DS. Ich nutze es ausschließlich zum VDR Start. Es geht aber auch ohne. Wie IPKG funktioniert und wie man es installiert kann man hier nachlesen: IPKG
Cross Compiling
VDR, Module, Plugins, usw. müssen im chroot Cross Compiled werden. Dafür sind Toolchains (DSM 5.1 Tool Chains) und die Sourcen (Synology NAS GPL Source) nötig. Diese finden sich hier, wählt sie entsprechend eurem Modell aus.
Legt sie auf der Diskstation ab und entpackt sie dort, das geht deutlich schneller als andersherum. In dem Tutorial gehe ich davon aus das sie sich auf "/public/diskstation_compile/syno_src/" befinden.
Installation und Konfiguration chroot
Chroot einrichten
Loggt euch per SSH mit dem root Benutzer an, anschließend könnt ihr den folgenden Block in der Konsole abschicken, er sorgt dafür das ihr euch am chroot anmeldet, verknüpft die Sourcen und Toolchain und setzt Flags um die Arbeit im chroot zu vereinfachen. Den "/volume1/public/" Ordner nutze ich generell zum Austausch zwischen DSM und chroot.
Einmalig:
mkdir /usr/local/debian-chroot/var/chroottarget/public
Bei jeder ersten Anmeldung:
mount --bind /volume1/public/ /usr/local/debian-chroot/var/chroottarget/public /var/packages/debian-chroot/scripts/start-stop-status chroot alias ll='ls -l' alias ls='ls --color=auto'
Angemeldet erstelle ich noch Symlinks auf die Sourcen und Toolchain.
ln -s /public/diskstation_compile/syno_src/source/linux-3.x/ /usr/local/ ln -s /public/diskstation_compile/syno_src/i686-pc-linux-gnu/ /usr/local/
Chroot aktualisieren
Als nächstes werden die Pakete aktualisiert und vorbereitet
Pakete von deutschen Servern beziehen, sourcen ausschließlich aus dem yaVDR ppa
sed -i 's/\.fr\./\.de\./g' /etc/apt/sources.list sed -i 's/deb-src/#deb-src/g' /etc/apt/sources.list echo ' deb-src http://ppa.launchpad.net/yavdr/testing-vdr/ubuntu precise main ' >> /etc/apt/sources.list echo ' deb-src http://ppa.launchpad.net/yavdr/main/ubuntu precise main ' >> /etc/apt/sources.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8103B360 apt-get update
Locale installieren, generieren und setzen
apt-get install locales locale-gen en_US en_US.UTF-8 locale-gen de_DE de_DE.UTF-8 dpkg-reconfigure locales echo 'export LC_ALL="en_US.UTF-8"' >>/etc/profile.d/locale.sh echo 'export LC_LANG="en_US.UTF-8"' >>/etc/profile.d/locale.sh echo 'export LC_CTYPE="en_US.UTF-8"' >>/etc/profile.d/locale.sh echo 'export LC_MESSAGES="en_US.UTF-8"' >>/etc/profile.d/locale.sh dpkg-reconfigure tzdata
System aktualisieren und Pakete installieren die für das bauen und den Umgang nötig/ hilfreich sind
apt-get upgrade apt-get install less vim curl screen openssh-server sudo build-essential kernel-package debconf-utils dpkg-dev debhelper ncurses-dev fakeroot \ make gcc bzip2 par2 unrar unzip mercurial git patch patchutils subversion dh-make\ libproc-processtable-perl libdigest-sha-perl \ psmisc cdbs libudev-dev dh-make libtntnet-dev libcxxtools-dev libssl-dev libboost-dev \ libpcre3-dev libavcodec-dev libavformat-dev libsqlite3-dev libcurl3-dev libxml2-dev libjansson-dev libzvbi-dev dpatch libudev-dev \ cmake usbutils
Openssh Server fertigstellen: Port ändern um nicht mit der DS in Konflikt zu treten, User hinzufügen und Service einrichten
vi /etc/ssh/sshd_config adduser *user* usermod -aG sudo *user* vi /etc/profile.d/S01_allusers.sh export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -la' alias l='ls $LS_OPTIONS -lA' export CONCURRENCY_LEVEL=3 source /etc/profile && source /root/.profile
In der Debian chroot App SSH hinzufügen:
/etc/init.d/ssh ps -p $(cat /var/run/sshd.pid)
Nun kann man per SSH direkt auf die chroot Umgebung zugreifen
Installation und Konfiguration VDR
VDR installieren
Zuerst den vdr "ganz normal" aus den Debian Repos installieren. Das hat den Vorteil das sämtliche benötigten .conf Dateien, Symlinks und Skripte angelegt werden. Zudem werden die Pakete installiert die zum bauen von VDR und Plugins nötig sind. All das aus dem unstable Zweig da die normalen Pakete teils zu als sind und nicht alles selbst gebaut werden soll.
apt-get -t unstable install vdr vdr-dev
Der VDR soll auf dem neuesten Stand sein, daher wird er selbst gebaut
cd $SOURCEDIR apt-get source vdr apt-get build-dep vdr cd vdr-* dpkg-buildpackage -us -uc -j3
VDR Plugins installieren und konfiguriern
Für den Betrieb eines reinen Streaming Servers sind nicht viele Plugins nötig, ich benutze lediglich: dummydevice, live, streamdev, svdrposd, satip, xvdr oder vnsi, suspendoutput, femon, dynamite
Um die zu bauen holen wir die sourcen, verlinken diese und können loslegen:
mkdir $SOURCEDIR/plugins mkdir /usr/share/vdr/plugins cd $SOURCEDIR/plugins apt-get source vdr-plugin-satip vdr-plugin-femon vdr-plugin-xvdr vdr-plugin-dummydevice vdr-plugin-dynamite \ vdr-plugin-vnsiserver vdr-plugin-streamdev vdr-plugin-svdrposd vdr-plugin-suspendoutput vdr-plugin-epg2vdr vdr-plugin-scraper2vdr vdr-plugin-live apt-get build-dep vdr-plugin-satip vdr-plugin-femon vdr-plugin-xvdr vdr-plugin-dummydevice vdr-plugin-dynamite \ vdr-plugin-vnsiserver vdr-plugin-streamdev vdr-plugin-svdrposd vdr-plugin-suspendoutput vdr-plugin-live vdr-plugin-epg2vdr vdr-plugin-scraper2vdr
Nun durch alle verzeichnisse gehen und
debianize-vdrplugin dpkg-buildpackage -us -uc
ausführen. Alternativ:
cd ../vdr-2*/PLUGINS/src git clone https://github.com/rofafor/vdr-plugin-satip.git satip git clone https://github.com/rofafor/vdr-plugin-femon femon git clone https://github.com/pipelka/vdr-plugin-xvdr.git xvdr git clone https://github.com/flensrocker/vdr-plugin-dummydevice.git dummydevice git clone https://github.com/flensrocker/vdr-plugin-dynamite.git dynamite git clone https://github.com/FernetMenta/vdr-plugin-vnsiserver vnsiserver ln ../../../plugins/vdr-plugin-streamdev-*/ streamdev -s ln ../../../plugins/vdr-plugin-svdrposd-*/ svdrposd -s ln ../../../plugins/vdr-plugin-suspendoutput-*/ suspendoutput -s ln ../../../plugins/vdr-plugin-live-*/ live -s ln ../../../plugins/vdr-plugin-epg2vdr-*/ epg2vdr -s ln ../../../plugins/vdr-plugin-scraper2vdr-*/ scraper2vdr -s ln ../../../plugins/vdr-plugin-dummydevice-*/ dummydevice -s ln ../../../plugins/vdr-plugin-dynamite-*/ dynamite -s ln ../../../plugins/vdr-plugin-epg2vdr-*/ epg2vdr -s ln ../../../plugins/vdr-plugin-femon-*/ femon -s ln ../../../plugins/vdr-plugin-satip-*/ satip -s ln ../../../plugins/vdr-plugin-vnsiserver-*/ vnsiserver -s ln ../../../plugins/vdr-plugin-xvdr-*/ xvdr -s
cd ../.. make plugins -j4 ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- make install -j4 ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- cp PLUGINS/lib/* /usr/lib/vdr/plugins/
Für den reibungslosen Start noch folgende Dateien/ Ordner erstellen, bzw. Assets kopieren.
mkdir /etc/vdr/plugins/xvdr/ mkdir /var/cache/vdr/plugins/ mkdir /var/cache/vdr/plugins/xvdr/ mkdir /var/lib/vdr/plugins/vnsiserver/ mkdir /var/lib/vdr/plugins/xvdr/ mkdir /usr/share/vdr/plugins/live/
Die erlaubten Hosts für die Streaming Plugins einstellen
vi /etc/vdr/plugins/streamdevhosts.conf vi /var/lib/vdr/plugins/xvdr/allowed_hosts.conf vi /var/lib/vdr/plugins/vnsiserver/allowed_hosts.conf vi /etc/vdr/svdrphosts.conf
Entsprechend eurem Netzwerk anpassen:
127.0.0.1 # always accept localhost 192.168.0.0/24 # any host on the local net #204.152.189.113 # a specific host #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)
weiter mit:
touch /etc/vdr/plugins/xvdr/resume.data touch /var/cache/vdr/plugins/xvdr/channelcache.data cp PLUGINS/src/live/live/* /usr/share/vdr/plugins/live/ -r chown -R vdr.vdr /var/lib/vdr /var/cache/vdr /usr/share/vdr/plugins
Zudem sollte man die Plugins in der richtigen Reihenfolge starten, bzw. deaktivieren:
vi /etc/vdr/plugins/order.conf
wie folgt füllen
dynamite dummydevice satip streamdev-server xvdr vnsiserver live suspendoutput svdrposd femon -streamdev-client
Auf der DS ist der Port 1900 von einem eigenen, nicht zu deinstallierenden upnp Service belegt, daher kann das satip-Plugin Server nicht entdecken. Abhilfe schafft das manuelle setzen in der plugin.satip.conf. Das Escaping beibehalten!
vi /etc/vdr/plugins/plugin.satip.conf
-d 3 -s 192.168.0.XX|DVBS2-4|\"devicename\"
Außerdem sollte die sources.conf entsprechend der Tuner angepasst werden:
vi /etc/vdr/sources.conf
S19.2E Astra 1KR/1L/1M/2C S19.2E 2 Astra 1KR/1L/1M/2C S19.2E 3 Astra 1KR/1L/1M/2C
VDR konfigurieren
satip.CICAM = 0 satip.DisabledFilters = satip.DisabledSources = A satip.EnableCIExtension = 0 satip.EnableEITScan = 1 satip.OperatingMode = 1 streamdev-server.AllowSuspend = 0 streamdev-server.HideMenuEntry = 0 streamdev-server.HTTPBindIP = 0.0.0.0 streamdev-server.HTTPPriority = 0 streamdev-server.HTTPServerPort = 3000 streamdev-server.HTTPStreamType = 0 streamdev-server.IGMPBindIP = 0.0.0.0 streamdev-server.IGMPClientPort = 1234 streamdev-server.IGMPPriority = 0 streamdev-server.IGMPStreamType = 0 streamdev-server.LiveBufferMs = 0 streamdev-server.LoopPrevention = 0 streamdev-server.MaxClients = 5 streamdev-server.ServerPort = 2004 streamdev-server.StartHTTPServer = 1 streamdev-server.StartIGMPServer = 0 streamdev-server.StartServer = 1 streamdev-server.StartSuspended = 1 streamdev-server.VTPBindIP = 0.0.0.0 streamdev-server.VTPPriority = 0 suspendoutput.MainMenu = 1 suspendoutput.ShowLogo = 0 suspendoutput.SuspendPaused = 1 suspendoutput.SuspendTimer = 120
DVB auf der Diskstation
Initial Kernel Module bauen und installieren
Um vtunerc (oder andere dvb module) bauen und benutzen zu können benötigt man die dvb* Module. Diese sind im chroot nicht vorhanden, daher müssen wir sie bauen:
git clone --branch v3.2.40 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cp /usr/local/linux-3.x/synoconfigs/evansport .config make clean make distclean make oldconfig make menuconfig
Die Sektion Device Drivers->Multimedia Support wählen und DVB Module auswählen. Anschießend speichern und bauen:
fakeroot make-kpkg --initrd -j 3 kernel-image kernel-headers dpkg -i linux-headers-3.2.40* dpkg -i linux-image-3.2.40*
Nur module reichen oft auch, mit den synology sourcen
cd /usr/local/linux-3.x cp synoconfigs/evansport .config make clean make distclean make oldconfig make modules make modules_install depmod -a
vtuner/satip installieren
vtunerc/satip erstellt ein virtuelles DVB device und verbindet sich gegen den SatIP Server. Vorteil gegenüber dem vdr-plugin-satip ist das eine Kanalsuche durchgeführt werden kann. Nachteil ist das device ist permanent verbunden und sorgt für einen höheren Stromverbrauch. Ich benutze beides, ein fixes vtunerc device und drei über plugin.
$SOURCEDIR git clone https://code.google.com/p/satip/ satip cd satip/ wget -O signal.diff 'http://www.vdr-portal.de/index.php?page=Attachment&attachmentID=36952&h=4f28c9f920eaec32918782c9daad89056862acc7' patch -p1 < signal.diff cd satip/ make clean ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- make ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- cd ../vtuner_tweak make clean ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- make ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- mkdir /lib/modules/`uname -r`/kernel/drivers/media/tuners/ cp vtunerc.ko /lib/modules/`uname -r`/kernel/drivers/media/tuners/vtunerc.ko depmod -a
DVB Module
Analog des vtunerc Moduls können auch Module anderer DVB-USB Stick Hersteller gebaut werden. Eine Besonderheit ist zu beachten, die Firmwares müssen außerhalb des Chroot in folgendem Verzeichnis abgelegt werden. Fall es nicht existiert, einfach erstellen:
/usr/syno/hotplug/firmware/
VDR starten
Startskript mit Modulen
Ich arbeite mit einer Kombination von vtuner/satip und dem satip Plugin. Dementsprechend habe ich das startup script angepasst, inspiriert von dem Startupskript aus dem VDR Portal. Einziger Unterschied ist das die Variable "START" genutzt wird um neu zu bauen, da der VDR Start bereist in der eigend Konfiguration deaktiviert werden kann.
vi /etc/default/satip
# satip Konfiguration SAT_IP_SERVER=192.168.0.XX # IP or FQDN of the SAT>IP Server GIT_LOCAL_REPO=/usr/local/src/satip # where should the local GIT repository be located GIT_REPO="https://code.google.com/p/satip" # URL of the SAT>IP - VTUNER repository NUM_INSTANCES=1 # Number if DVB devices COMPILE=0 # Compile or not
Service aktivieren
vi /etc/default/vdr
ENABLED=1
vi /etc/init.d/satip
#! /bin/bash -p # # satip start-stop script # ### BEGIN INIT INFO # Provides: vtunerc:satIP # Required-Start: $remote_fs $network $syslog # Required-Stop: $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts the vtunerc:satIP # Description: Starts the vtunerc:satIP ### END INIT INFO . /lib/lsb/init-functions . /etc/default/satip
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=satIP DESC="vtunerc:" PIDFILE=/var/run/satip SATIPPRG=$GIT_LOCAL_REPO/satip/satip
test -x $SATIPPRG || exit 0
get_status() { for i in $(seq 0 $(($NUM_INSTANCES-1))); do if ! start-stop-daemon --start --startas $SATIPPRG --test \ --name $(basename $SATIPPRG) --pidfile $PIDFILE$i.pid >/dev/null then echo " - instance $i is running." exit 0 fi done
echo " - is not running." exit 3 }
compile() { logger satip: Check local git repo if [ ! -d $GIT_LOCAL_REPO ]; then echo "Trying to git clone $GIT_REPO" cd `dirname $GIT_LOCAL_REPO` if [ -x /usr/bin/git ]; then /usr/bin/git clone $GIT_REPO else echo "GIT not installed. Unable to get clone remote SATIP repo" exit 1 fi fi logger satip: compile SATIP Application # compile SATIP Applicationvi /var/run/satip cd $GIT_LOCAL_REPO/satip /usr/bin/make clean ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- /usr/bin/make ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- logger satip: compile vtunerc kernel module # compile vtuner kernel module cd $GIT_LOCAL_REPO/vtuner_tweak /usr/bin/make clean ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- /usr/bin/make ARCH=x86 CROSS_COMPILE=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- mkdir -p /lib/modules/`uname -r`/kernel/drivers/media/tuners cp vtunerc.ko /lib/modules/`uname -r`/kernel/drivers/media/tuners/vtunerc.ko depmod -a }
startsatip() { if [ "$COMPILE" != "0" ]; then compile fi logger vtunerc: load kernel module modprobe vtunerc devices=$NUM_INSTANCES debug=0 sleep 2 chmod a+rw /dev/vtunerc*
for i in $(seq 0 $(($NUM_INSTANCES-1))); do chmod a+rw /dev/dvb/adapter$i/* done
logger satip: run $NUM_INSTANCES instances of SATIP Application in the background for i in $(seq 0 $(($NUM_INSTANCES-1))); do $SATIPPRG -h $SAT_IP_SERVER -d /dev/vtunerc$i & echo $! > /var/run/satip$i.pid done
sleep 2 chmod a+rw /dev/vtunerc* for i in $(seq 0 $(($NUM_INSTANCES-1))); do chmod a+rw /dev/dvb/adapter$i/* done }
stopsatip() { for i in $(seq 0 $(($NUM_INSTANCES-1))); do if start-stop-daemon --stop --retry 30 --name $(basename $SATIPPRG) --pidfile $PIDFILE$i.pid >/dev/null then start-stop-daemon --stop --retry 30 --oknodo --exec $SATIPPRG >/dev/null rm -f $PIDFILE$i.pid else echo -n " - instance $i seems not to be running" fi done
logger satip: killing satip sleep 2
echo -n " - unload vtunerc kernel module" logger satip: unload vtunerc kernel module modprobe -r vtunerc 2>&1 >/dev/null & sleep 2 }
case "$1" in start) echo -n "Starting $DESC: $NAME" startsatip echo "." ;; stop) echo -n "Stopping $DESC: $NAME" stopsatip echo "." ;; restart|force-reload) echo -n "Restarting $DESC: $NAME" stopsatip startsatip echo "." ;; status) echo -n "Getting status of $DESC: $NAME" get_status ;; compile) compile ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|status|compile}" >&2 exit 1 ;; esac exit 0
Startskript in den Diskstation Start integrieren
Es gibt 2 Möglichkeiten, zum einen kann die GUI benutzt werden die das chroot Pakt mitliefert. Das ist komfortabel, der VDR kann aus dem Webinterface aus neu gestartet werden. Dazu legt man einen neuen Service an, gibt ihm einen Namen und trägt folgende Befehle als Command und Status ein:
/etc/init.d/vdr ps -p $(cat /var/run/runvdr.pid)
Leider hatte ich jedoch oft das Problem das der chroot Service selbst sich nicht starten ließ, daher bin ich auf das Startup von IPKG umgestiegen. Dazu legt man folgende Datei außerhalb des chroot an:
vi /opt/etc/init.d/S99chroot
Mit folgendem Inhalt. Da ich die DS nicht allzuoft neu starte mit großzügigen Wartezeiten um sicher zu sein das der Startvorgang abgeschlossen ist. Es können auch weitere Services hinzugefügt werden wie in dem Beispiel syslog-ng.
#!/bin/sh if [ "$*" = 'start' ] ; then sleep 5 chroot /usr/local/debian-chroot/var/chroottarget/ /etc/init.d/syslog-ng start sleep 1 chroot /usr/local/debian-chroot/var/chroottarget/ /etc/init.d/vdr start else chroot /usr/local/debian-chroot/var/chroottarget/ /etc/init.d/vdr stop sleep 1 chroot /usr/local/debian-chroot/var/chroottarget/ /etc/init.d/syslog-ng stop fi
Firewall einstellen
Das ist ein Reminder: Nicht vergessen die Client IP´s (ggf. Satip Server IP) in der Firewall freizugeben sonst ist nichts mit streamen. Das geht über das DSM GUI.
VDR Konfiguration und Aufnahmen teilen
Die Hauptaufgabe einer DS ist es natürlich Daten im Netzwerk zu verteilen. Das können wir auch für den VDR gut nutzen um z.b. Kanalliste oder das Video Verzeichnis mit mehreren VDR Clients zu teilen. Zu finden ist all dies unterhalb von
/usr/local/debian-chroot/var/chroottarget/
Verteilen kann man gut mit NFS, die Symlinks sind jedoch meist problematisch. Daher empfiehlt es sich die Konfigurationen in ein Verzeichnis zu legen. Hier /etc/vdr
cd /etc/vdr rm setup.conf rm channels.conf rm vdr.default cp /var/lib/vdr/channels.conf . cp /var/lib/vdr/setup.conf . cp ../default/vdr vdr.default mkdir plugins/streamdev-server mv plugins/streamdevhosts.conf plugins/streamdev-server mkdir video.00
Anschießend die vdr.default bearbeiten:
# /etc/default/vdr # # See also /usr/share/doc/vdr/README.Debian.gz # # Change to 1 to enable vdr's init-script ENABLED=1 # Change this to 1 if you want vdr to be able to shutdown the # computer ENABLE_SHUTDOWN=0 # Video-Directory VIDEO_DIR="/etc/vdr/video.00" # Options that will be passed to vdr's commandline # for example: OPTIONS="-w 15" OPTIONS="-w 60 -c /etc/vdr"
und einen symlink anlegen:
rm /etc/default/vdr ln -s /etc/vdr/vdr.default /etc/default/vdr