Wechseln zu: Navigation, Inhalt

Archiv für VDR

HowTo: VDR in den Systemstart einbinden

Um einen Video Disk Recorders (VDR) sofort nach dem Start mit der Fernbedienung zu steuern, ist es notwendig ihn automatisch zu starten. Außerdem sollte er für gesetzte Timer automatisch aufwachen, um diese aufzunehmen. Ich verwende dazu jeweils ein Start-Skript für VDR und Xine, zusätzlich noch ein Shutdown-Skript für VDR.

Teo-X VDR 04

Shutdown-Skript

Shutdown-Skript erstellen

vi /usr/src/VDR/shutdown.sh
#!/bin/sh
#
# shutdown.sh

# wake up method ('off','acpi','nvram','suspend')
WAKEUP_METHOD="acpi"

# read board configuration from specified configuration file (e.g: "/etc/nvram-wakeup.conf")
NVRAM_CONFIG=""

# specify the iw (infowriter) name. (e.g: gigabyte_5aa)
NVRAM_IWNAME=""

# try "nvram-wakeup --help"
NVRAM_OPT="--syslog"

# Which boot manager are you using? (grub/lilo)
BOOT_MANAGER="grub"

TIMER=$1
LILOCNF=/etc/lilo.conf
GRUBCNF=/boot/grub/menu.lst
ACPIALARM=/proc/acpi/alarm

case ${#TIMER}-${WAKEUP_METHOD:-off} in
     10-acpi)
	test -e $ACPIALARM
	case $? in
	     0) date -d "1970-01-01 UTC $(($TIMER-120)) seconds" +"%Y-%m-%d %R:%S" > $ACPIALARM
		sudo poweroff
		exit 0
		;;
	     *) logger -t ${0##*/} "ARG -> missing $ACPIALARM"
		;;
	esac
	;;
     10-nvram)
	eval test $(echo $NVRAM_OPT | egrep -q directisa || echo "-e /dev/nvram -a") -e /dev/rtc -a -e /dev/mem
	case $? in
	     0) which nvram-wakeup >/dev/null 2>&1
		case $? in
		     0) sudo nvram-wakeup -s $TIMER $NVRAM_OPT ${NVRAM_CONFIG:+-C $NVRAM_CONFIG} ${NVRAM_IWNAME:+-I $NVRAM_IWNAME}
			case ${BOOT_MANAGER:-lilo} in
			     grub) REBOOT_LINE=`grep -s ^title "$GRUBCNF" | grep -i -n poweroff | { IFS=: read a b ; echo $a ; }`
				   test -n "$REBOOT_LINE"
                                   case $? in
					0) which grub-set-default >/dev/null 2>&1
					   case $? in
						0) which grubonce >/dev/null 2>&1
						   case $? in
						        0) sudo grubonce $((REBOOT_LINE-1))
							   ;;
							*) sudo grub-set-default $((REBOOT_LINE-1))
							   ;;
						   esac
						   ;;
						*) echo -e "savedefault --default=$((REBOOT_LINE-1)) --once\nquit" | sudo grub --batch
						   ;;
					   esac
					   ;;
					*) logger -t ${0##*/} "ARG -> missing poweroff entry in $GRUBCNF"
					   ;;
				   esac
				   ;;
			     lilo) REBOOT_ENTRY=`grep -s -i label.*poweroff "$LILOCNF" | { IFS== read a b ; echo $b ; }`
				   test -n "$REBOOT_ENTRY"
				   case $? in
					0) sudo lilo -R $REBOOT_ENTRY
					   ;;
					*) logger -t ${0##*/} "ARG -> missing poweroff entry in $LILOCNF"
					   ;;
				   esac
				   ;;
			esac
			sudo shutdown -r now
			exit 0
			;;
		     *) logger -t ${0##*/} "ARG -> missing nvram-wakeup"
			;;
		esac
		;;
	     *) logger -t ${0##*/} "ARG -> missing $(echo $NVRAM_OPT | egrep -q directisa || echo /dev/nvram -o) /dev/rtc -o /dev/mem"
		;;
	esac
	;;
     10-suspend)
	test -e $ACPIALARM -a -e /sys/power/state
	case $? in
	     0) date -d "1970-01-01 UTC $((TIMER-120)) seconds" +"%Y-%m-%d %R:%S" > $ACPIALARM
		echo mem > /sys/power/state
		sudo reboot
		exit 0
		;;
	     *) logger -t ${0##*/} "ARG -> missing $ACPIALARM -o /sys/power/state"
		;;
	esac
	;;
     10-off)
	logger -t ${0##*/} "MESG -> no wakeup method"
	;;
     1-*)
	logger -t ${0##*/} "MESG -> no timer"
	;;
esac

sudo shutdown -h now
exit $?

Runvdr

Runvdr bearbeiten

vi /usr/src/VDR/runvdr
#!/bin/bash

# runvdr: Loads the DVB driver and runs VDR
#
# If VDR exits abnormally, the driver will be reloaded
# and VDR restarted.
#
# In order to actually use this script you need to implement
# the functions DriverLoaded(), LoadDriver() and UnloadDriver()
# and maybe adjust the VDRPRG and VDRCMD to your particular
# requirements.
#
# Since this script loads the DVB driver, it must be started
# as user 'root'. Add the option "-u username" to run VDR
# under the given user name.
#
# Any command line parameters will be passed on to the
# actual 'vdr' program.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: runvdr 2.0 2006/05/14 16:02:05 kls Exp $

export LANG=de_DE
export LC_COLLATE=de_DE

VDRDIR="/usr/src/VDR"
VDRPRG="./vdr"
VDRCMD="$VDRPRG -t /dev/tty8 -w 60 -c /etc/vdr -E /var/vdr --vfat \
-P 'xine -r' -P streamdev-server -P streamdev-client \
-P epgsearch -P live -P 'dvd -C /dev/dvd' \
-P 'osdteletext -d /tmp/vtx' \
-P 'remote -i /dev/input/remote' \
-s /usr/src/VDR/shutdown.sh
$*"

KILL="/usr/bin/killall -q -TERM"

# Detect whether the DVB driver is already loaded
# and return 0 if it *is* loaded, 1 if not:
function DriverLoaded()
{
return 1
}

# Load all DVB driver modules needed for your hardware:
function LoadDriver()
{
modprobe dvb_ttpci
modprobe budget_ci
}

# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
{
modprobe -r budget_ci
modprobe -r dvb_ttpci
modprobe -r stv0299
modprobe -r lnbp21
}

# Load driver if it hasn't been loaded already:
if ! DriverLoaded; then
LoadDriver
fi

while (true) do
cd $VDRDIR
eval "$VDRCMD"
if test $? -eq 0 -o $? -eq 2; then exit; fi
echo "`date` reloading DVB driver"
$KILL $VDRPRG
sleep 10
UnloadDriver
LoadDriver
echo "`date` restarting VDR"
done

Start-Skript

Start-Skript anlegen

vi /etc/init.d/vdr
#!/bin/bash

/usr/src/VDR/runvdr &
chmod +x /etc/init.d/vdr
update-rc.d vdr defaults
 Adding system startup for /etc/init.d/vdr ...
   /etc/rc0.d/K20vdr -> ../init.d/vdr
   /etc/rc1.d/K20vdr -> ../init.d/vdr
   /etc/rc6.d/K20vdr -> ../init.d/vdr
   /etc/rc2.d/S20vdr -> ../init.d/vdr
   /etc/rc3.d/S20vdr -> ../init.d/vdr
   /etc/rc4.d/S20vdr -> ../init.d/vdr
   /etc/rc5.d/S20vdr -> ../init.d/vdr

Start-Skript für Xine anlegen

vi /usr/src/VDR/xinestart.sh
#!/bin/sh

xine -pqhf --no-splash --post vdr_video --post vdr_audio --post upmix_mono "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
chmod +x /usr/src/VDR/xinestart.sh
vi ~/.config/autostart/xinestart.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=Xine-Starter
Name[de_DE]=Xine-Starter
Comment[de_DE]=Startet Xine
Comment=Startet Xine
Exec=sh /usr/src/VDR/xinestart.sh
X-GNOME-Autostart-enabled=true

HowTo: VDR Plugin-Installation

Um die Funktionen meines Video Disk Recorders (VDR) zu erweitern werde ich in diesem Schritt Plugins installieren, die Streaming, erweiterte EPG-Funktionen, Webinterface, DVD-Wiedergabe und Teletext erst ermöglichen. Die Grundzüge der Plugin Installation sind hier beschrieben.

Teo-X VDR 04

Streamdev-plugin

Ins Plugin-Quellenverzeichnis wechseln

cd /usr/src/VDR/PLUGINS/src

Plugin-Quellen aus dem Internet herunterladen

cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot login
cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co streamdev

Konfigurations-Dateien installieren

cp -r streamdev/streamdev /etc/vdr/plugins/

Kompilieren

cd ../..
make plugins

Weblinks

VDR Wiki: Streamdev-plugin
Plugin-Homepage

Epgsearch-plugin

Ins Plugin-Quellenverzeichnis wechseln

cd /usr/src/VDR/PLUGINS/src

PCRE

sudo apt-get install libpcre3-dev

TRE

sudo apt-get install libtre-dev

Plugin-Quellarchiv aus dem Internet herunterladen

wget http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz

Archiv entpacken

tar xzf vdr-epgsearch-0.9.24.tgz

Symbolischen Link anlegen

ln -s epgsearch-0.9.24 epgsearch

Kompilieren

cd ../..
make plugins

Weblinks

VDR Wiki: Epgsearch-plugin
Plugin-Homepage

Live-plugin

Ins Plugin-Quellenverzeichnis wechseln

cd /usr/src/VDR/PLUGINS/src

Pakete installieren

sudo apt-get install libcxxtools-dev libtntnet-dev

Plugin-Quellen aus dem Internet herunterladen

cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot login
cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co live

Konfigurations-Dateien installieren

cp -a live/live /etc/vdr/plugins/

Kompilieren

cd ../..
make plugins

Anmeldung

Nach der Installation wird die Anmeldeseite des Live-Plugins im Webbrowser mit

http://:8008/

aufgerufen. Die Voreinstellungen sind in der Regel für den Benutzer

admin

und für das Passwort

live

Tipps

Erste Anmeldung per Netzwerk misslingt: Könnte ein Problem mit dem MD5-Passwort sein. Lösungen:

  • Per VDR-OSD ein neues Passwort setzen oder Authentifizierung abschalten
  • In der setup.conf des VDR folgendes: live.LocalNetMask = 192.168.X.1/24 setzen, (Maske bitte auf eigenes Netz anpassen)

dann sollte es per Netzwerk funktionieren.

Weblinks

VDR Wiki: Live-plugin
Plugin-Homepage

Dvd-plugin

Ins Plugin-Quellenverzeichnis wechseln

cd /usr/src/VDR/PLUGINS/src

Medibuntu Repository hinzufügen

sudo wget http://www.medibuntu.org/sources.list.d/hardy.list --output-document=/etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update

Pakete installieren

sudo apt-get install liba52-0.7.4-dev libdvdcss2 libdvdread3-dev libdvdnav-dev

Plugin-Quellen aus dem Internet herunterladen

cvs -d:pserver:anonymous@dvdplugin.cvs.sourceforge.net:/cvsroot/dvdplugin login
cvs -z3 -d:pserver:anonymous@dvdplugin.cvs.sourceforge.net:/cvsroot/dvdplugin co -P dvd

Kompilieren

cd ../..
make plugins

Weblinks

VDR Wiki: Dvd-plugin
Sourceforge: dvdplugin
Ubuntu Wiki: Medibuntu

Osdteletext-plugin

Ins Plugin-Quellenverzeichnis wechseln

cd /usr/src/VDR/PLUGINS/src

Plugin-Quellarchiv aus dem Internet herunterladen

wget http://projects.vdr-developer.org/attachments/download/47/vdr-osdteletext-0.8.1.tgz

Archiv entpacken

tar xzf vdr-osdteletext-0.8.1.tgz

Symbolischen Link anlegen

ln -s osdteletext-0.8.1 osdteletext

Kompilieren

cd ../..
make plugins

Weblinks

VDR Wiki: Osdteletext-plugin
VDR Wiki: Teletext

Remote-plugin

Ins Plugin-Quellenverzeichnis wechseln

cd /usr/src/VDR/PLUGINS/src

Plugin-Quellarchiv aus dem Internet herunterladen

wget http://www.escape-edv.de/endriss/vdr/vdr-remote-0.4.0.tgz

Archiv entpacken

tar xzf vdr-remote-0.4.0.tgz

Symbolischen Link anlegen

ln -s remote-0.4.0 remote

Kompilieren

cd ../..
make plugins

Im syslog suchen, wohin der IR-Empfäner gelegt wird

sudo cat /var/log/syslog | grep Budget-CI
[...]
[   25.210911] input: Budget-CI dvb ir receiver saa7146 (0) as /devices/pci0000:00/0000:00:1e.0/0000:02:04.0/input/input5
[...]

Überprüfen, wo der IR-Empfänger liegt

sudo cat /dev/input/event5

Genauere Informationen darüber finden, mit welchen Attributen das Gerät im System geführt wird

udevinfo  -a -p $(udevinfo -q path -n /dev/input/event5)

Diese Informationen verwendet man dann dazu eine udev-Regel zu erstellen

vi /etc/udev/rules.d/01-ir-tt3200-custom.rules
# IR-Empfänger TechnoTrend S2-3200
KERNEL

"event*", SUBSYSTEM

"input",ATTRS{name}

"*ir*|*IR*|*dvb*|*DVB*", SYMLINK+="input/remote"

Das Remote-Plugin muss in der runvdr nun mit

-P 'remote -i /dev/input/remote'

geladen werden.

Regeln neu einlesen

sudo /etc/init.d/udev reload

Beim Anlernen entstand bei mir folgende /etc/vdr/remote.conf

remote-remote.Up         0000000100010067
remote-remote.Down       000000010001006C
remote-remote.Menu       000000010001016D
remote-remote.Ok         000000010001001C
remote-remote.Left       0000000100010069
remote-remote.Right      000000010001006A
remote-remote.Red        000000010001018E
remote-remote.Green      000000010001018F
remote-remote.Yellow     0000000100010190
remote-remote.Blue       0000000100010191
remote-remote.0          000000010001000B
remote-remote.1          0000000100010002
remote-remote.2          0000000100010003
remote-remote.3          0000000100010004
remote-remote.4          0000000100010005
remote-remote.5          0000000100010006
remote-remote.6          0000000100010007
remote-remote.7          0000000100010008
remote-remote.8          0000000100010009
remote-remote.9          000000010001000A
remote-remote.Info       000000010001008B
remote-remote.Play       00000001000100CF
remote-remote.Pause      0000000100010077
remote-remote.Stop       0000000100010080
remote-remote.Record     00000001000100A7
remote-remote.FastFwd    00000001000100D0
remote-remote.FastRew    00000001000100A8
remote-remote.Power      0000000100010074
remote-remote.Channel+   0000000100010192
remote-remote.Channel-   0000000100010193
remote-remote.Volume+    0000000100010073
remote-remote.Volume-    0000000100010072
remote-remote.Mute       0000000100010071
remote-remote.Audio      0000000100010179

Links

Plugin-Homepage
ubuntuusers.de Wiki: udev


HowTo: Ubuntu 8.04 + S2API + VDR + h.264 + xine

Der erste Schritt bei der Einrichtung meines Video Disk Recorders (VDR) unter Ubuntu 8.04 ist das Installieren der Treiber für die DVB-S2 Karte, Xine für die Wiedergabe und VDR selbst. Dieser muss allerdings zuvor gepatcht werden.

Teo-X VDR 04

S2API

Root werden

sudo su

Die Paketlisten aktualisieren und die nötigen Pakete laden

sudo apt-get update
apt-get install build-essential
apt-get install mercurial libncurses-dev
cd /usr/src
hg clone http://mercurial.intuxication.org/hg/s2-liplianin/
cd s2-liplianin

Kompilieren und installieren

make KERNELRELEASE=$(uname -r)
make KERNELRELEASE=$(uname -r) install

FFMPEG

apt-get install mercurial subversion cvs autoconf libtool automake pkg-config gettext
cd /usr/src
svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
apt-get install liba52-0.7.4-dev liblame-dev libvorbis-dev zlib1g-dev libpng12-dev libx11-dev libxv-dev libasound2-dev
./configure --enable-shared --enable-gpl --enable-postproc --enable-swscale --enable-libmp3lame --enable-libvorbis --enable-pthreads
make && make install && ldconfig

Xine-lib-1.2 + xine-ui

Xine-lib

cd /usr/src
hg clone http://hg.debian.org/hg/xine-lib/xine-lib-1.2
cd xine-lib-1.2
apt-get install libcdio-dev libvcdinfo-dev
./autogen.sh --with-external-ffmpeg --disable-dxr3
make
make install

Xine-ui

cd /usr/src
wget http://home.vrweb.de/~rnissl/xine-ui-cvs-20080310200000.tar.bz2
tar xjf xine-ui-cvs-20080310200000.tar.bz2
apt-get install libxt-dev
cd xine-ui
./autogen.sh --enable-vdr-keys
make
make install

VDR+xine plugin

cd /usr/src
wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.7.0.tar.bz2
tar xjf vdr-1.7.0.tar.bz2
ln -s vdr-1.7.0 VDR
cd VDR/PLUGINS/src/
wget http://home.vrweb.de/~rnissl/vdr-xine-0.8.2.tgz
tar xzf vdr-xine-0.8.2.tgz
ln -s xine-0.8.2 xine
cd /usr/src/VDR
mkdir patches
cd patches
wget http://www.linuxtv.org/pipermail/vdr/attachments/20080413/1054bcfb/attachment-0001.bin
mv attachment-0001.bin vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
wget http://www.linuxtv.org/pipermail/vdr/attachments/20081007/edcd3fcc/attachment-0001.obj
mv attachment-0001.obj vdr-1.7.0-s2api-07102008-h264-clean.patch.gz
cd ..
bzcat patches/vdr-1.7.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2 | patch -p1
zcat patches/vdr-1.7.0-s2api-07102008-h264-clean.patch.gz | patch -p1

Make.config.template nach Make.config kopieren

cd /usr/src/VDR
cp Make.config.template Make.config
vi Make.config

Folgende Zeile finden und entsprechend ändern

DVBDIR   = ../s2-liplianin/linux

compiler.h an die richtige Stelle kopieren

ln -s /usr/src/linux-headers-$(uname -r)/include/linux/compiler.h /usr/src/s2-liplianin/linux/include/linux/compiler.h

Pakete installieren und kompilieren

apt-get install libfreetype6-dev libfontconfig1-dev libjpeg62-dev libcap-dev libncurses5-dev libncursesw5-dev
make
make plugins
make install

VDR Konfiguration

Ein Verzeichnis für die configs anlegen

mkdir -p /etc/vdr/plugins/xine

Diese dort hineinkopieren

cp /usr/src/VDR/*.conf /etc/vdr
cp /usr/src/VDR/PLUGINS/src/xine/data/* /etc/vdr/plugins/xine/
ln -s /usr/local/src/VDR/locale /etc/vdr/locale

Rechte vergeben

chmod -R 2775 /etc/vdr
find /etc/vdr -type f | xargs grep 664
chgrp -R video /etc/vdr

Die Gruppe “video” erstellen und den Benutzer, unter dem der VDR-Prozess laufen soll, zur Gruppe “video” hinzufügen

addgroup video
adduser  video

Ein Verzeichnis anlegen, in dem die Aufnahmen abgelegt werden

mkdir /video
chmod -R 2775 /video
chgrp video /video

Start

Zum Testen, zuerst eine 2. Konsole öffnen und dort folgendes eingeben

cd /usr/src/VDR
./vdr -c /etc/vdr -P "xine -r"

In der zweiten Konsole folgendes eingeben (dabei muss man sich beeilen, da man nur ca. 10 Sekunden Zeit hat)

xine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"

Links


HowTo: Video Disk Recorder (VDR) mit TechnoTrend S2-3200 auf Basis von Teo-X und Ubuntu

Teo-X VDR 03

Der Video Disk Recorder (VDR) ist eine freie Software von Klaus Schmidinger. Man kann mit ihr und handelsüblicher PC-Hardware einen digitalen TV-Empfänger und Videorekorder einrichten.

Ich werde in diesem und den folgenden Artikeln meine Erfahrungen mit der Einrichtung eines auf dem Teo-X von Christmann, der TechnoTrend S2-3200 und Ubuntu basierenden VDR beschreiben.

Weiterlesen »