Debian – DVB-S2 – HDTV – VDR 1.7.9 – Streamdev + EPGSearch

software vdr hdtv 300x187In einem meiner letzten Artikel habe ich euch erklärt wie ihr einen DVB-S2 VDR Stream mit einem Debian System aufbaut. Leider habe ich feststellen müssen das Tobi’s Experimental VDR Repository mit der VDR-Version 1.6.0 nicht HDTV (HD, 1080i, H.264) kompatibel ist. Um dieses Problem zu lösen werden wir, für unser 64-Bit Debian-System, das aktuellste VDR inklusive Plugins selber kompilieren. Viele Hürden müssen bewältigt werden, hoffentlich kann ich mit diesem Artikel ein paar Leuten weiterhelfen.

Zuerst installieren wir uns ein wenig Kernelzubehör, …

aptitude install linux-headers-`uname-r` make gcc bzip2

…danach installieren wir wieder unseren DVB-Treiber nur diesmal “s2-liplianin“.

cd /usr/src
aptitude install mercurial
hg clone http://mercurial.intuxication.org/hg/s2-liplianin
cd s2-liplianin
make clean && make && make install && make makelinks
reboot

Nun fangen wir an unser VDR, in der Version 1.7.9, vorzubereiten…

cd /usr/src
aptitude install libfreetype6-dev libfontconfig1-dev libjpeg62-dev libcap-dev libncurses5-dev libncursesw5-dev unzip
wget ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.9.tar.bz2
tar xvjf vdr-1.7.9.tar.bz2
ln -s /usr/src/vdr-1.7.9 /usr/src/vdr

…wir benötigen noch den ExtensionPatch für unser VDR.

cd /usr/src/vdr
wget http://www.loggn.de/wp-content/uploads/2009/11/vdr-1.7.9-ExtensionPatch72.zip
unzip vdr-1.7.9-ExtensionPatch72.zip
patch -p1 < vdr-1.7.9_extensions.diff

Jetzt erstellen wir das Make.config File. Download

cd /usr/src/vdr
cp Make.config.template Make.config
vi Make.config
############################################################
### VDR 1.7.9 - Make.config - by www.loggn.de
############################################################
### The C compiler and options:
CC       = gcc
CFLAGS   = -g -O2 -Wall
CXX      = g++
CXXFLAGS = -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
ifdef PLUGIN
CFLAGS   += -fPIC
CXXFLAGS += -fPIC
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
endif
############################################################
### The directory environment:
############################################################
#DVBDIR   = /usr/src/s2-liplianin/linux/include/linux/dvb
DVBDIR   = /usr/src/s2-liplianin/linux
MANDIR   = /usr/share/man/
BINDIR   = /usr/bin
LOCDIR   = /usr/lib/vdr/locale
PLUGINDIR= /usr/src/vdr/PLUGINS
PLUGINLIBDIR= /usr/lib/vdr/plugins
VIDEODIR = /etc/vdr/video
CONFDIR  = /etc/vdr
############################################################
### The remote control:
############################################################
LIRC_DEVICE = /dev/lircd
RCU_DEVICE  = /dev/ttyS1
############################################################
## Define if you want vdr to not run as root
############################################################
VDR_USER = root
############################################################
### VDR-Extensions:
############################################################
# Comment the patches you don't need
# DVDCHAPJUMP needs DVDARCHIVE enabled
# DVDARCHIVE needs LIEMIEXT enabled
# SORTRECORDS needs LIEMIEXT enabled
# you can only enable MENUORG or SETUP
#ANALOGTV = 1
#ATSC = 1
#CHANNELSCAN = 1
CMDRECCMDI18N = 1
CMDSUBMENU = 1
#CUTTERLIMIT = 1
#CUTTERQUEUE = 1
CUTTIME = 1
DDEPGENTRY = 1
#DELTIMESHIFTREC = 1
DOLBYINREC = 1
#DVBSETUP = 1
#DVDARCHIVE = 1
#DVDCHAPJUMP = 1
#DVLFRIENDLYFNAMES = 1
#DVLRECSCRIPTADDON = 1
#DVLVIDPREFER = 1
#EM84XX = 1
#GRAPHTFT = 1
#HARDLINKCUTTER = 1
#JUMPPLAY = 1
LIEMIEXT = 1
#LIRCSETTINGS = 1
#LNBSHARE = 1
#MAINMENUHOOKS = 1
#MENUORG = 1
#NOEPG = 1
#OSDMAXITEMS = 1
#PARENTALRATING = 1
#PINPLUGIN = 1
PLUGINAPI = 1
PLUGINMISSING = 1
#PLUGINPARAM = 1
#ROTOR = 1
SETTIME = 1
SETUP = 1
#SOFTOSD = 1
#SOURCECAPS = 1
#SORTRECORDS = 1
STREAMDEVEXT = 1
#TIMERCMD = 1
#TIMERINFO = 1
#TTXTSUBS = 1
#VALIDINPUT = 1
#VOLCTRL = 1
WAREAGLEICON = 1
YAEPG = 1
############################################################
### You don't need to touch the following:
############################################################
ifdef DVBDIR
INCLUDES += -I$(DVBDIR)/include
endif
ifdef ANALOGTV
DEFINES += -DUSE_ANALOGTV
endif
ifdef ATSC
DEFINES += -DUSE_ATSC
endif
ifdef CHANNELSCAN
DEFINES += -DUSE_CHANNELSCAN
endif
ifdef CMDRECCMDI18N
DEFINES += -DUSE_CMDRECCMDI18N
endif
ifdef CMDSUBMENU
DEFINES += -DUSE_CMDSUBMENU
endif
ifdef CUTTERLIMIT
DEFINES += -DUSE_CUTTERLIMIT
endif
ifdef CUTTERQUEUE
DEFINES += -DUSE_CUTTERQUEUE
endif
ifdef CUTTIME
DEFINES += -DUSE_CUTTIME
endif
ifdef DDEPGENTRY
DEFINES += -DUSE_DDEPGENTRY
endif
ifdef DELTIMESHIFTREC
DEFINES += -DUSE_DELTIMESHIFTREC
endif
ifdef DOLBYINREC
DEFINES += -DUSE_DOLBYINREC
endif
ifdef DVBSETUP
DEFINES += -DUSE_DVBSETUP
endif
ifdef DVDARCHIVE
ifdef LIEMIEXT
DEFINES += -DUSE_DVDARCHIVE
endif
endif
ifdef DVLRECSCRIPTADDON
DEFINES += -DUSE_DVLRECSCRIPTADDON
endif
ifdef DVLVIDPREFER
DEFINES += -DUSE_DVLVIDPREFER
endif
ifdef DVLFRIENDLYFNAMES
DEFINES += -DUSE_DVLFRIENDLYFNAMES
endif
ifdef EM84XX
DEFINES += -DUSE_EM84XX
endif
ifdef GRAPHTFT
DEFINES += -DUSE_GRAPHTFT
endif
ifdef HARDLINKCUTTER
DEFINES += -DUSE_HARDLINKCUTTER
endif
ifdef JUMPPLAY
DEFINES += -DUSE_JUMPPLAY
endif
ifdef LIEMIEXT
DEFINES += -DUSE_LIEMIEXT
endif
ifdef LIRCSETTINGS
DEFINES += -DUSE_LIRCSETTINGS
endif
ifdef LNBSHARE
DEFINES += -DUSE_LNBSHARE
endif
ifdef MAINMENUHOOKS
DEFINES += -DUSE_MAINMENUHOOKS
endif
ifdef MENUORG
DEFINES += -DUSE_MENUORG
else
ifdef SETUP
DEFINES += -DUSE_SETUP
endif
endif
ifdef NOEPG
DEFINES += -DUSE_NOEPG
endif
ifdef OSDMAXITEMS
DEFINES += -DUSE_OSDMAXITEMS
endif
ifdef PARENTALRATING
DEFINES += -DUSE_PARENTALRATING
endif
ifdef PINPLUGIN
DEFINES += -DUSE_PINPLUGIN
endif
ifdef PLUGINMISSING
DEFINES += -DUSE_PLUGINMISSING
endif
ifdef PLUGINPARAM
DEFINES += -DUSE_PLUGINPARAM
endif
ifdef ROTOR
DEFINES += -DUSE_ROTOR
endif
ifdef SETTIME
DEFINES += -DUSE_SETTIME
endif
ifdef SOFTOSD
DEFINES += -DUSE_SOFTOSD
endif
ifdef SOURCECAPS
DEFINES += -DUSE_SOURCECAPS
endif
ifdef SORTRECORDS
ifdef LIEMIEXT
DEFINES += -DUSE_SORTRECORDS
endif
endif
ifdef STREAMDEVEXT
DEFINES += -DUSE_STREAMDEVEXT
endif
ifdef TIMERCMD
DEFINES += -DUSE_TIMERCMD
endif
ifdef TIMERINFO
DEFINES += -DUSE_TIMERINFO
endif
ifdef TTXTSUBS
DEFINES += -DUSE_TTXTSUBS
endif
ifdef VALIDINPUT
DEFINES += -DUSE_VALIDINPUT
endif
ifdef VOLCTRL
DEFINES += -DUSE_VOLCTRL
endif
ifdef WAREAGLEICON
DEFINES += -DUSE_WAREAGLEICON
endif
ifdef YAEPG
DEFINES += -DUSE_YAEPG
endif
############################################################
### VDR 1.7.9 - Make.config - by www.loggn.de
############################################################

Nachdem wir das Make.config angepasst haben, löschen wir die nicht benötigten Default Plugins.

rm -Rf /usr/src/vdr/PLUGINS/src/*

Jetzt laden wir den Source Code der Plugins (vdr-streamdev & vdr-epgsearch) und installieren benötigte Pakete.

cd /usr/src/vdr/PLUGINS/src
wget http://streamdev.vdr-developer.org/snapshots/vdr-streamdev-0.5.0-pre-20090611.tgz
tar xvfz vdr-streamdev-0.5.0-pre-20090611.tgz
ln -s streamdev-0.5.0-pre-20090611 streamdev
aptitude install libpcre3-dev libtre-dev
cd /usr/src/vdr/PLUGINS/src/
wget http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz
tar xvfz vdr-epgsearch-0.9.24.tgz
ln -s epgsearch-0.9.24 epgsearch

Nachdem wir jetzt alles vorbereitet haben, werden wir noch ein paar Dateien anpassen damit unser VDR beim der Kompilierung nicht auf ERROR läuft.

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

Wir editieren die “dvbdevice.h” damit nicht dieser Fehler auftritt “error: #error VDR requires Linux DVB driver API version 5.0!”…

cd /usr/src/vdr
vi dvbdevice.h

…die Zeile 19 bis 21…

#if DVB_API_VERSION != 5 || DVB_API_VERSION_MINOR != 0
#error VDR requires Linux DVB driver API version 5.0!
#endif

…ersetzen wir mit.

#if DVB_API_VERSION != 5 || DVB_API_VERSION_MINOR != 1
#error VDR requires Linux DVB driver API version 5.0!
#endif

Um diesen Fehler zu umgehen…

epgsearch.c: In member function ‘void cPluginEpgsearch::CheckUTF8()’:
epgsearch.c:471: error: ‘CODESET’ was not declared in this scope
epgsearch.c:471: error: ‘nl_langinfo’ was not declared in this scope
make: *** [epgsearch.o] Fehler 1)

…müssen wir noch in die Datei “epgsearch.c” vorm ersten “#include” folgende Zeile einfügen.

cd /usr/src/vdr/PLUGINS/src/epgsearch
vi epgsearch.c
#include <langinfo.h>

Jetzt heisst es Daumen drücken beim kompilieren!

cd /usr/src/vdr
make clean && make clean-plugins && make && make plugins && make install

Nach erfolgreicher Kompilierung erzeugen wir die streamdevhosts.conf, in der festlegt werden kann welche IP-Adressen den Stream empfangen dürfen.

mkdir -p /etc/vdr/plugins/streamdev
cp /usr/src/vdr/PLUGINS/src/streamdev/streamdev/streamdevhosts.conf /etc/vdr/plugins/streamdev/
vi /etc/vdr/plugins/streamdev/streamdevhosts.conf

Zu guter Letzt installieren wir unser VDRadmin-AM.

aptitude install libauthen-sasl-perl libdigest-hmac-perl libio-socket-inet6-perl
cd /usr/src/
wget http://andreas.vdr-developer.org/vdradmin-am/download/vdradmin-am-3.6.4.tar.bz2
tar jxvf vdradmin-am-3.6.4.tar.bz2
cd vdradmin-am-3.6.4
LANG=de_DE ./make.sh install

Optional können wir jetzt noch einen Sendersuchlauf machen.

aptitude install dvb-apps
scan -o vdr /usr/share/dvb/dvb-s/Astra-19.2E > /etc/vdr/channels.conf
chown -R vdr:vdr /etc/vdr/

Endlich Fertig, wenn man weiß was man machen muss ist es eigentlich garnicht so schwierig.^^

Das VDR & VDRadmin-AM starten wir so:

/usr/bin/vdradmind
/usr/bin/vdr -d -P streamdev-server -P epgsearch

Jetzt gehen auch unsere HD-Kanäle. icon razz

software vdr hdtv 1024x640

HD-Känale (Auszug aus der channels.conf):

#HD Programme
Das Erste HD;ARD:11361:hC23M5O35S1:S19.2E:22000:6010:6020=deu;6022=deu:6030:0:11100:1:1011:0
ZDF HD;ZDFvision:11361:hC23M5O35S1:S19.2E:22000:6110:6120=deu;6122=deu:6130:0:11110:1:1011:0
arte HD;ZDFvision:11361:hC23M5O35S1:S19.2E:22000:6210:6221=deu,6222=fra;6220=deu:6230:0:11120:1:1011:0
Einsfestival HD;ARD:12421:hC34M2O0S0:S19.2E:27500:1601:1602=deu;1606=deu:0:0:28396:1:1201:0
ASTRA HD;BetaDigital:11303:hC23M5O35S1:S19.2E:22000:511:0;515=deu:0:0:4901:1:1007:0
Servus TV HD;ORF:11303:hC23M5O35S1:S19.2E:22000:3583:3584=deu,3585=deu;3587=deu:0:0:4913:1:1007:0
ANIXE HD;BetaDigital:11303:hC23M5O35S1:S19.2E:22000:255:0;259=deu:0:0:4900:1:1007:0

Update für Ubuntu: Ubuntu – DVB-S2 – HDTV – VDR 1.7.9 – Streamdev + EPGSearch

Tags: , , , , , , , , , , , ,