In 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 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 denExtensionPatch für unser VDR.
cd /usr/src/vdr wget https://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. 😛
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
Unter Ubuntu Karmic gibt es ein gutes Repository. (THE VDR TEAM)
vi /etc/apt/sources.list
#
# THE VDR TEAM
#
deb karmic main
deb-src 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ß.
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
@websta
Thanks, has been edit!
root@anis-desktop:/etc/vdr# /usr/bin/vdr -d -P streamdev-server -P epgsearch
vdr: missing plugin ‚epgsearch‘
any help ?
Hi Anis, das Plugin EPGsearch hast du anscheinend nicht kompiliert bzw. installiert. (missing plugin epgsearch)
Viele Grüße Nico
Hi Nico, thank you for help
root@anis-desktop:/usr/src/vdr/PLUGINS/src# ls
epgsearch epgsearch-0.9.24 streamdev streamdev-0.5.0-pre-20090611
root@anis-desktop:/usr/src/vdr/PLUGINS/src/epgsearch# nano epgsearch.c
#include
#include
.
.
.
cd /usr/src/vdr
root@anis-desktop:/usr/src/vdr#make clean && make clean-plugins && make && make plugins && make install
……
………
*** failed plugins: epgsearch
its not work ?
Hi Anis, please post the last 20 lines before „failed plugins“.
/src/s2-liplianin/linux/include -I../../../include -I/usr/src/s2-liplianin/linux/include epgsearchsvdrp.c
In file included from epgsearchext.h:34,
from epgsearchtools.h:30,
from epgsearchsvdrp.c:30:
log.h: In member function ‘void cLogFile::Log(int, const char*, …)’:
log.h:51: warning: ignoring return value of ‘int vasprintf(char**, const char*, __va_list_tag*)’, declared with attribute warn_unused_result
log.h: In member function ‘void cLogFile::eSysLog(const char*, …)’:
log.h:76: warning: ignoring return value of ‘int vasprintf(char**, const char*, __va_list_tag*)’, declared with attribute warn_unused_result
log.h: In member function ‘void cLogFile::iSysLog(const char*, …)’:
log.h:87: warning: ignoring return value of ‘int vasprintf(char**, const char*, __va_list_tag*)’, declared with attribute warn_unused_result
epgsearchsvdrp.c: In member function ‘virtual cString cPluginEpgsearch::SVDRPCommand(const char*, const char*, int&)’:
epgsearchsvdrp.c:745: error: invalid conversion from ‘const char*’ to ‘char*’
make[1]: *** [epgsearchsvdrp.o] Erreur 1
make[1]: quittant le répertoire « /usr/src/vdr-1.7.9/PLUGINS/src/epgsearch-0.9.24 »
Plugin streamdev:
make[1]: entrant dans le répertoire « /usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0-pre-20090611 »
make[1]: Rien à faire pour « all ».
make[1]: quittant le répertoire « /usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0-pre-20090611 »
*** failed plugins: epgsearch
Hi Anis, you must edit /usr/src/vdr/PLUGINS/src/epgsearch/epgsearch.c.
Source: https://www.vdr-portal.de/forum/index.php?thread/88916-vdr-1-7-8-mit-vdr-xine-aktuelles-xine-mit-vdpau/&postID=839253#post839253
hi I replace vdr-epgsearch-0.9.24.tgz vdr-by-epgsearch 0.9.25.beta15.tgz.
but another problem:
root@anis-desktop:/usr/src/vdr# usr /bin/vdradmind
Can not start server at 0.0.0.0:8001: IO:: Socket:: INET: Address already in use
Hi Anis, please reboot your computer. Port 8001 is already in use.
root@server:/usr/src/vdr# make clean-plugins
make[1]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/epgsearch-0.9.24′
make[1]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/epgsearch-0.9.24′
make[1]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/epgsearch-0.9.24′
make[1]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/epgsearch-0.9.24′
make[1]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0′
make -C ./tools clean
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/tools‘
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/tools‘
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/tools‘
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/tools‘
make -C ./libdvbmpeg clean
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/libdvbmpeg‘
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/libdvbmpeg‘
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/libdvbmpeg‘
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/libdvbmpeg‘
make -C ./remux clean
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/remux‘
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/remux‘
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/remux‘
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/remux‘
make -C ./client clean
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/client‘
streamdev-client.c:14:2: error: #error „VDR-1.5.9 API version or greater is required!“
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/client‘
make -C ./server clean
make[2]: Entering directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/server‘
streamdev-server.c:17:2: error: #error „VDR-1.5.9 API version or greater is required!“
make[2]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0/server‘
make[1]: Leaving directory `/usr/src/vdr-1.7.9/PLUGINS/src/streamdev-0.5.0′
root@server:/usr/src/vdr#
make clean plugins isnt working. any ideas ?
This is so okay.