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

Software VDR HDTVIn 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. :-P

Software VDR HDTV

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: , , , , , , , , , , , ,

8 Antworten zu “Debian – DVB-S2 – HDTV – VDR 1.7.9 – Streamdev + EPGSearch”

  1. [...] Debian – DVB-S2 – HDTV – VDR 1.7.9 – Streamdev + EPGSearch Debian – DVB-S2 – VDR Stream + [...]

  2. Nico sagt:

    Unter Ubuntu Karmic gibt es ein gutes Repository. (THE VDR TEAM)

    vi /etc/apt/sources.list
    #
    # THE VDR TEAM
    #
    deb http://ppa.launchpad.net/the-vdr-team/vdr-ubuntu-karmic/ubuntu karmic main
    deb-src http://ppa.launchpad.net/the-vdr-team/vdr-ubuntu-karmic/ubuntu karmic main

    …bei NO_PUBKEY 4650EDF56CF20474

    gpg -–keyserver hkp://wwwkeys.eu.pgp.net –-recv-keys 4650EDF56CF20474
    gpg -–armor -–export 4650EDF56CF20474 | apt-key add -

    Viel Spaß.

  3. [...] ich den Media-Player xine. Der VLC media player als auch der MPlayer machen bei der Wiedergabe von HDTV Streams, welche über das VDR Plugin STREAMdev gestreamt werden, Probleme. Der MPlayer zeigt bei HD-Sendern [...]

  4. websta sagt:

    There might be an typo: (linux-headers appears two times)

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

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

  5. Nico sagt:

    @websta

    Thanks, has been edit!

  6. [...] Video Disk Recorder mit Streamdev- und EPGSearch-Plugin idle’t schon eine Weile so vor sich hin. Wer von euch ab und an mal in die Logdateien schaut, [...]

  7. [...] zum Artikel “Debian – DVB-S2 – HDTV – VDR 1.7.9 – Streamdev + EPGSearch” möchte ich kurz erläutern was man bei dem aktuellen Ubuntu Karmic 9.10 beachten [...]

Hinterlasse eine Antwort