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, …
1 |
aptitude install linux-headers-`uname-r` make gcc bzip2 |
…danach installieren wir wieder unseren DVB-Treiber nur diesmal „s2-liplianin“.
1 2 3 4 5 6 |
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…
1 2 3 4 5 |
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.
1 2 3 4 |
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
1 2 3 |
cd /usr/src/vdr cp Make.config.template Make.config vi Make.config |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 |
############################################################ ### 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.
1 |
rm -Rf /usr/src/vdr/PLUGINS/src/* |
Jetzt laden wir den Source Code der Plugins (vdr-streamdev & vdr-epgsearch) und installieren benötigte Pakete.
1 2 3 4 |
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 |
1 2 3 4 5 |
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.
1 |
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!“…
1 2 |
cd /usr/src/vdr vi dvbdevice.h |
…die Zeile 19 bis 21…
1 2 3 |
#if DVB_API_VERSION != 5 || DVB_API_VERSION_MINOR != 0 #error VDR requires Linux DVB driver API version 5.0! #endif |
…ersetzen wir mit.
1 2 3 |
#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…
1 2 3 4 |
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.
1 2 3 |
cd /usr/src/vdr/PLUGINS/src/epgsearch vi epgsearch.c #include <langinfo.h> |
Jetzt heisst es Daumen drücken beim kompilieren!
1 2 |
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.
1 2 3 |
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.
1 2 3 4 5 6 |
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.
1 2 3 |
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:
1 2 |
/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):
1 2 3 4 5 6 7 8 |
#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.