Add new comment
HowTo: XBMC pvr-testing VNSI inkl. VDR 1.7.14 unter Ubuntu 9.10/10.04 (karmic+lucid) (amd64)
Dieser Artikel wird nicht mehr überarbeitet. Eine aktuelle Version ist hier zu finden: http://schnere.bveml.net/de/content/howto-xbmc-pvr-testing-opdenkamp-vnsi-inkl-vdr-1716-unter-ubuntu-10041010-lucidmaverick
Dieses HowTo beschreibt die Installation von XBMC pvr-testing mit der neuen VNSI-Schnittstelle. Anbei vielen Dank an alwinus/pingpong, welcher
mit seiner beachtlichen Leistung nahezu im Alleingang die VDR-Anbindung an XBMC ermöglicht hat.
Dieses HowTo basiert zu einem großen Teil auf dem Shell-Log meiner Installation. Wer einen Fehler findet bzw. wenn etwas ausgelassen wurde,
bitte ich um eine kurze Info, um auch anderen Usern die Erkenntnisse bereit zu stellen.
Dieses HowTo kann unter folgender Lizenz verwendet werden, sofern die angegebenen Quellen dies erlauben:

HowTo: XBMC pvr-testing VNSI inkl. VDR 1.7.14 unter Ubuntu 9.10 Karmic Koala (amd64 von schnere - Reinhard Schneidewind steht unter einer Creative Commons Namensnennung 3.0 Österreich Lizenz.
Beruht auf einem Inhalt unter xbmc.org.
aktueller Stand: 07.08.2010
VDR: 1.7.14
XBMC: SVN r32588
Anmerkungen zu rev32588:
- Merge mit Trunk: Plugin-System funktioniert wieder
- Stabilität deutlich verbessert (gefühlsmäßig nach ersten Tests)
Bei Update zu beachten:
- vnsi-plugin neu kompilieren: ja
- xbmc ./configure erneut ausführen: ja
VDR-Installation
Da VDR in Version 1.7.14 anscheinend schon ziemlich stabil läuft und ich gerne die HDTV-Unterstützung haben möchte, verwende ich e-tobi's VDR-Sourcen (http://www.e-tobi.net). Hierzu benötigt man einen Eintrag in der sources.list:
Eintrag in die sources.list einfügen
- $ vi /etc/apt/sources.list
[apt_sources] deb-src http://e-tobi.net/vdrdevel-experimental lenny base backports addons vdr-multipatch [/apt_sources]
Abhängigkeiten zum Kompilieren von VDR installieren
- $ apt-get update
- $ apt-get build-dep vdr-dev
VDR kompilieren und installieren
- $ cd /usr/src
- $ apt-get source vdr
- $ cd /usr/src/vdr-1.7.14/
- $ dpkg-buildpackage -rfakeroot -us -uc -b
Nun findet man das fertige VDR-Paket in /usr/src . Da wir es für das Kompilieren der Plugins benötigen, installieren wir auch das vdr-dev-Paket:
- $ cd /usr/src
- $ sudo dpkg -i vdr-dev_1.7.14-1devel1_all.deb vdr_1.7.14-1devel1_amd64.deb
Das VNSI-Plugin
Das VNSI-Plugin ist die Schnittstelle von VDR zu XBMC.
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src
- $ svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/pvr-testing2/xbmc/pvrclients/vdr-vnsi/vdr-plugin-vnsiserver/
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-vnsiserver
- $ make
- $ cp /usr/src/vdr-1.7.14/PLUGINS/lib/libvdr-vnsiserver.so.1.7.14 /usr/lib/vdr/plugins/
Config-Files kopieren
- $ cp -R /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-vnsiserver/vnsi-server/ /var/lib/vdr/plugins/
- $ chown vdr:vdr /var/lib/vdr/plugins/vnsi-server/allowed_hosts.conf
Die Datei /var/lib/vdr/plugins/vnsi-server/allowed_hosts.conf sollte dann auf das interne Netz angepasst werden: [ini] # # allowed_hosts.conf This file describes a number of host addresses that # are allowed to connect to the streamdev server running # with the Video Disk Recorder (VDR) on this system. # Syntax: # # IP-Address[/Netmask] # 127.0.0.1 # always accept localhost 192.168.0.0/24 # any host in net "192.168.0.0" #192.168.0.0/24 # any host on the local net #204.152.189.113 # a specific host #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!) [/ini]
Anschließend muss VDR neu gestartet werden, um das neue Plugin zu laden:
- /etc/init.d/vdr restart
Das Wirbelscan-Plugin
Das Wirbelscan-Plugin wird zur Kanalsuche verwendet. Entsprechende Optionen sind in XBMC enthalten.
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src
- $ apt-get build-dep vdr-plugin-wirbelscan
- $ apt-get source vdr-plugin-wirbelscan
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-wirbelscan-0.0.5~pre11e
- $ patch -p1 < /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-vnsiserver/patches/vdr-wirbelscan-0.0.5-pre11e-AddServiceInterface.diff
- $ make
- $ cp /usr/src/vdr-1.7.14/PLUGINS/lib/libvdr-wirbelscan.so.1.7.14 /usr/lib/vdr/plugins/
Das Streamdev-Plugin
Das Streamdev-Plugin wird duch VNSI nun nicht mehr von XBMC verwendet. Dieser Schritt ist also nicht mehr notwendig. Wer jedoch weiterhin mit VLC oder Mplayer auf die Streams zugreifen will, sollte das Plugin installieren.
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
- $ apt-get build-dep vdr-plugin-streamdev
- $ apt-get source vdr-plugin-streamdev
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-streamdev-0.5.0~pre20090706+cvs20091108.2341/
- $ dpkg-buildpackage -rfakeroot -us -uc -b
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
- $ sudo dpkg -i vdr-plugin-streamdev-client_0.5.0~pre20090706+cvs20091108.2341-3_amd64.deb vdr-plugin-streamdev-server_0.5.0~pre20090706+cvs20091108.2341-3_amd64.deb
Das femon-Plugin
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
- $ apt-get build-dep vdr-plugin-femon
- $ apt-get source vdr-plugin-femon
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-femon-1.7.7/
- $ dpkg-buildpackage -rfakeroot -us -uc -b
- $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
- $ sudo dpkg -i vdr-plugin-femon_1.7.7-1_amd64.deb
Firmware Nova-HD S2
Hier wird beschrieben, wie man unter Ubuntu an die Firmware für die Nova-HD-S2 (und andere Karten) kommt: http://www.vdr-wiki.de/wiki/index.php/HDTV_Installationsanleitung_Ubuntu#Nova-HD-S2
VDR konfigurieren
Vor der Arbeit an den VDR Config-Files sollte dieser gestoppt werden, da ansonsten bei einem Restart die geänderten Config-Files wieder überschrieben werden.
- $ sudo /etc/init.d/vdr stop
Die VDR-Konfigurations-Dateien liegen in 2 Verzeichnissen:
- /var/lib/vdr
- /etc/vdr
Die Konfigurations-Dateien in diesen beiden Verzeichnissen sind im Normalfall gegeneinander verlinkt, sollte dies jedoch einmal nicht der Falls sein, so sollte man eben im anderen Verzeichnis nachsehen.
Kanal-Liste
Eine aktuelle Kanalliste ist hier zu finden: http://www.linowsat.de/settings/vdr.html
Die Kanalliste muss nach
- /var/lib/vdr/channels.conf
Um nun die am häufigsten genutzten Kanäle gleich am Anfang der Kanalliste zu haben, öffnet man die /var/lib/vdr/channels.conf , schreibt in den Anfang der Datei ":Favouriten" um eine neue Kanalgruppe zu erstellen und fügt danach zeilenweise die gewünschten Kanäle ein.
Es gibt zwar auch die Möglichkeit per XBMC die Kanäle zu verschieben, bei einem Update muss man aber gelegentlich die TV-Datenbank von XBMC löschen, wodurch diese Einstellungen dann aber verloren gehen. Daher ist eine Anordnung der Kanäle in der VDR channels.conf von Vorteil.
In diesem Beispiel wird nur der Satellit Astra 19.2E verwendet. Es gibt natürlich auch Möglichkeiten andere Satelliten bzw. mehrere Satelliten zu verwenden.
- $ sudo rm /var/lib/vdr/channels.conf
- $ sudo wget http://www.linowsat.de/settings/vdr/0192/ca/channels.conf -O /var/lib/vdr/channels.conf
- $ sudo chown vdr:vdr /var/lib/vdr/channels.conf
Streamdev-Konfiguration (nur bei installiertem Streamdev-Server)
In der Konfigurations-Datei von Streamdev kann man nun festlegen, welche IP-Adressen darauf zugreifen dürfen.
- $ sudo vi /var/lib/vdr/plugins/streamdev/streamdevhosts.conf
[ini] # # streamdevhosts This file describes a number of host addresses that # are allowed to connect to the streamdev server running # with the Video Disk Recorder (VDR) on this system. # Syntax: # # IP-Address[/Netmask] # 127.0.0.1 # always accept localhost 192.168.0.0/24 # any host in net "192.168.0.0" #192.168.100.0/24 # any host on the local net #204.152.189.113 # a specific host #239.255.0.0/16 # uncomment for IGMP multicast streaming #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!) [/ini]
Im obigen Beispiel dürfen Rechner der IP "127.0.0.1 (localhost)" sowie alle Rechner im Netz "10.0.0.0" zugreifen. Das "/24" gibt die Netzmaske an.
VDR starten und testen
- $ sudo /etc/init.d/vdr start
(nur bei installiertem Streamdev-Server)
Nun können wir den VDR gleich mit Streamdev testen. Dazu einfach die URL des Servers im Browser aufrufen: http://localhost:3000 . Hier muss natürlich "localhost" durch die IP/ den Hostnamen des VDR-Servers ersetzt werden, insofern dieser nicht auf dem Arbeits-Rechner läuft.
Anschließend kopiert man sich die URL eines Free-TV-Senders und testet das ganze mit Mplayer:
(nur bei installiertem Streamdev-Server)
- $ mplayer http://URL.ts
Wobei http://URL.ts natürlich durch die soeben kopierte URL zu ersetzen ist. Funktioniert dies ist schon alles bereit für die Verwendung von XBMC.
XBMC
Quelle: http://xbmc.org/forum/showthread.php?t=45314&highlight=vdr
Aktuellen NVIDIA-Treiber installieren
Unter 10.04(lucid) reicht es folgendes auszuführen:
- $ sudo apt-get update
- $ sudo apt-get install libvdpau-dev libvdpau1 nvidia-current-modaliases nvidia-current nvidia-common nvidia-settings
Folgendes der /etc/apt/sources.list hinzufügen:
- # nvidia vdpau ppa
- deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu karmic main
- deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu karmic main
- $ sudo apt-get update
- $ sudo apt-get install libvdpau-dev libvdpau1 nvidia-195-kernel-source nvidia-195-modaliases nvidia-glx-195
Abhängigkeiten zum Kompilieren installieren
Für 9.10/karmic :
- $ apt-get install subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound checkinstall libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound2-dev python-sqlite libglew-dev libcurl3 libcurl4-openssl-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbis-dev libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxtst-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmms-dev libmpeg3-dev libfaad-dev libflac-dev libiso9660-dev libass-dev libssl-dev libwavpack-dev libmpeg2-4 libmpeg2-4-dev libmicrohttpd-dev libmicrohttpd5 libmodplug-dev
Für 10.04/lucid
- $ apt-get install subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2 checkinstall libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound2-dev python-sqlite libglew-dev libcurl3 libcurl4-openssl-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbis-dev libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxtst-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmms-dev libmpeg3-dev libfaad-dev libflac-dev libiso9660-dev libass-dev libssl-dev libwavpack-dev libmpeg2-4 libmpeg2-4-dev libmicrohttpd-dev libmicrohttpd5 libmodplug-dev
Laden der XBMC-Sourcen
- $ cd /usr/src
- $ svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/pvr-testing2/
- $ cd /usr/src/pvr-testing2/
- $ cd /usr/src/pvr-testing2/
- $ svn update
XBMC kompilieren und installieren
- $ cd /usr/src/pvr-testing2/
- $ ./bootstrap
- $ ./configure --enable-vdpau
- $ make -j2
- $ sudo checkinstall --fstrans=no --install=yes --pkgname=xbmc --pkgversion "svn-REVISION-pvr-testing"
Lirc-Fernbedienung
Für die Verwendung einer Lirc-Fernbedienung muss natürlich Lirc installiert sein. Ansonsten ist XBMC aber auch mit Maus und Tastatur bedienbar. Außerdem gibt es auch einige Programme für iPhone sowie Android.
- $ sudo apt-get install lirc
Bei der Installtion wird man nach der verwendeten Fernbedienung gefragt, diese sollte man, sofern in der Liste auch auswählen. Anschließend müssen die Codes der lircd.conf in der Lircmap.xml von XBMC ausgetauscht werden. Auch das Device muss hier angepasst werden. Dazu habe ich XBMC zuerst einmal gestartet und dann mit der Tastatur/Maus wieder beendet. Danach findet man einen Ordner
- ~/.xbmc
- ~/.xbmc/userdata/Lircmap.xml
Außer der Lircmap.xml wird noch die Datei remote.xml benötigt, welche den Commands aus der Lircmap.xml Funktionen zuweist. Diese Datei muss im Ordner
- ~/.xbmc/keymaps/remote.xml
Konfigurations-Dateien für die Medion X10 (Fernbedienung)
- Lircmap.xml (Muss in ~/.xbmc/userdata/ abgelegt werden)
- remote.xml (Muss in ~/.xbmc/keymaps/ abgelegt werden)
- lircd.conf für lirc (/etc/lirc)
- hardware.conf für Lirc (/etc/lirc)
Konfigurations-Dateien für die mitgelieferte Fernbedienung der Hauppauge WinTV Nova HD-S2
- Lircmap.xml (Muss in ~/.xbmc/userdata/ abgelegt werden)
- remote.xml (Muss in ~/.xbmc/keymaps/ abgelegt werden)
- lircd.conf für lirc (/etc/lirc)
- hardware.conf für Lirc (/etc/lirc)
XBMC nach Absturz neu starten
Dank einer Idee von Jobit aus dem VDR-Portal (Link zum Forum-Thread), kann sich XBMC nach einem Absturz automatisch neu starten. Dies macht vor allem auf einem reinen Fernseh-PC sinn, wo eben nur XBMC laufen soll. Anbei ist zu erwähnen, dass sich XBMC bei einem normalen Stop nicht neu starten soll, jedoch kommt es auch dabei zeitweise zu einer Fehler-Rückmeldung, die einen Neustart veranlasst.
Der Umbau gestaltet sich hier relativ einfach, muss jedoch nach jeder Installation durchgeführt werden:
- $ vi /usr/local/bin/xbmc
Und die Schleife am Ende wie folgt bearbeiten:
- LOOP=1
- while [ $(( $LOOP )) = "1" ]
- do
- LOOP=0
- "$LIBDIR/xbmc/xbmc.bin" "$SAVED_ARGS"
- RET=$?
- if [ $(( $RET == 65 )) = "1" ]
- then # User requested to restart app
- LOOP=1
- elif [ $(( ($RET >= 131 && $RET <= 136) || $RET == 139 )) = "1" ]
- then # Crashed with core dump
- print_crash_report
- LOOP=1
- fi
- done
- exit $RET
Im wesentlichen wird nach print_crash_report ein LOOP=1 eingefügt, wodurch das Skript veranlasst wird die Schleife weiterzuführen und XBMC neu zu starten.
Links
- XBMC-Bereich im VDR-Portal
- Für alle, die nicht selber kompilieren wollen gibts auch eine Anleitung für ein launchpad-Repository im VDR-Portal: VDR-1.7.10 -gda(Extensions-Patch v.72) + Plugins + XBMC pvr-testing (hepi) für Ubuntu Karmic Koala
