Neuen Kommentar schreiben

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:

Creative Commons License
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.

XBMC PVR

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

  1. $ 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

  1. $ apt-get update
  2. $ apt-get build-dep vdr-dev

VDR kompilieren und installieren

  1. $ cd /usr/src
  2. $ apt-get source vdr
  3. $ cd /usr/src/vdr-1.7.14/
  4. $ 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:

  1.  $ cd /usr/src
  2. $ 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.

  1. $ cd /usr/src/vdr-1.7.14/PLUGINS/src
  2. $ svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/pvr-testing2/xbmc/pvrclients/vdr-vnsi/vdr-plugin-vnsiserver/
  3. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-vnsiserver
  4. $ make
  5. $ cp /usr/src/vdr-1.7.14/PLUGINS/lib/libvdr-vnsiserver.so.1.7.14 /usr/lib/vdr/plugins/


Config-Files kopieren
  1. $ cp -R /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-vnsiserver/vnsi-server/ /var/lib/vdr/plugins/
  2. $ 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:
  1. #
  2. # allowed_hosts.conf  This file describes a number of host addresses that
  3. #                     are allowed to connect to the streamdev server running
  4. #                     with the Video Disk Recorder (VDR) on this system.
  5. # Syntax:
  6. #
  7. # IP-Address[/Netmask]
  8. #
  9.  
  10. 127.0.0.1             # always accept localhost
  11. 192.168.0.0/24    # any host in net "192.168.0.0"
  12. #192.168.0.0/24       # any host on the local net
  13. #204.152.189.113      # a specific host
  14. #0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)


Anschließend muss VDR neu gestartet werden, um das neue Plugin zu laden:
  1. /etc/init.d/vdr restart

Das Wirbelscan-Plugin

Das Wirbelscan-Plugin wird zur Kanalsuche verwendet. Entsprechende Optionen sind in XBMC enthalten.

  1. $ cd /usr/src/vdr-1.7.14/PLUGINS/src
  2. $ apt-get build-dep vdr-plugin-wirbelscan
  3. $ apt-get source vdr-plugin-wirbelscan
  4. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-wirbelscan-0.0.5~pre11e
  5. $ patch -p1 < /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-vnsiserver/patches/vdr-wirbelscan-0.0.5-pre11e-AddServiceInterface.diff
  6. $ make
  7. $ 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.

  1. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
  2. $ apt-get build-dep vdr-plugin-streamdev
  3. $ apt-get source vdr-plugin-streamdev
  4. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-streamdev-0.5.0~pre20090706+cvs20091108.2341/
  5. $ dpkg-buildpackage -rfakeroot -us -uc -b
  6. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
  7. $ 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

  1. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
  2. $ apt-get build-dep vdr-plugin-femon
  3. $ apt-get source vdr-plugin-femon
  4. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/vdr-plugin-femon-1.7.7/
  5. $ dpkg-buildpackage -rfakeroot -us -uc -b
  6. $ cd /usr/src/vdr-1.7.14/PLUGINS/src/
  7. $ 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.

  1. $ sudo /etc/init.d/vdr stop

Die VDR-Konfigurations-Dateien liegen in 2 Verzeichnissen:

  1. /var/lib/vdr
  2. /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

  1. /var/lib/vdr/channels.conf
kopiert werden. Danach sollten der Eigentümer auf den User vdr gesetzt werden.

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.

  1. $ sudo rm /var/lib/vdr/channels.conf
  2. $ sudo wget http://www.linowsat.de/settings/vdr/0192/ca/channels.conf -O /var/lib/vdr/channels.conf
  3. $ 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.

  1. $ sudo vi /var/lib/vdr/plugins/streamdev/streamdevhosts.conf

  1. #
  2. # streamdevhosts  This file describes a number of host addresses that
  3. #                 are allowed to connect to the streamdev server running
  4. #                 with the Video Disk Recorder (VDR) on this system.
  5. # Syntax:
  6. #
  7. # IP-Address[/Netmask]
  8. #
  9.  
  10. 127.0.0.1             # always accept localhost
  11. 192.168.0.0/24        # any host in net "192.168.0.0"
  12. #192.168.100.0/24     # any host on the local net
  13. #204.152.189.113      # a specific host
  14. #239.255.0.0/16       # uncomment for IGMP multicast streaming
  15. #0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)

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

  1. $ 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)

  1. $ 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:

  1. $ sudo apt-get update
  2. $ sudo apt-get install libvdpau-dev libvdpau1 nvidia-current-modaliases nvidia-current nvidia-common nvidia-settings

Folgendes der /etc/apt/sources.list hinzufügen:
  1. # nvidia vdpau ppa
  2. deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu karmic main
  3. deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu karmic main
Anschließend folgendes ausführen:
  1. $ sudo apt-get update
  2. $ sudo apt-get install libvdpau-dev libvdpau1 nvidia-195-kernel-source nvidia-195-modaliases nvidia-glx-195
Nach der Aktualisierung der Treiber wäre ein Reboot bzw. ein X-Server-Restart sinnvoll.

Abhängigkeiten zum Kompilieren installieren

Für 9.10/karmic :

  1. $ 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

  1. $ 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

  1. $ cd /usr/src
  2. $ svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/pvr-testing2/
  3. $ cd /usr/src/pvr-testing2/
Bei späteren Updates muss das Repository nicht neu ausgechecked werden, es reicht ein SVN Update:
  1. $ cd /usr/src/pvr-testing2/
  2. $ svn update

XBMC kompilieren und installieren

  1. $ cd /usr/src/pvr-testing2/
  2. $ ./bootstrap
  3. $ ./configure --enable-vdpau
  4. $ make -j2
  5. $ sudo checkinstall --fstrans=no --install=yes --pkgname=xbmc --pkgversion "svn-REVISION-pvr-testing"
"REVISION" soll hier durch die SVN-Revisionsnummer ersetzt werden. Sollte es bei Kompilier-Versuchen nach Updates Probleme geben, hilft es das ganze ab "./bootstrap" nochmals durch zu machen, dabei sollte vor dem "make -j2" ein "make clean" gemacht werden. Nun muss das VDR-VNSI-Plugin unter System->Erweiterungen->PVR-Clients aktiviert werden.

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.

  1. $ 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

  1. ~/.xbmc
. Unter
  1. ~/.xbmc/userdata/Lircmap.xml
muss nun die Lircmap.xml abgelegt werden.

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
  1. ~/.xbmc/keymaps/remote.xml
abgelegt werden (der Ordner muss evtl. selbst erstellt werden).

Konfigurations-Dateien für die Medion X10 (Fernbedienung)

Konfigurations-Dateien für die mitgelieferte Fernbedienung der Hauppauge WinTV Nova HD-S2

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:

  1. $ vi /usr/local/bin/xbmc

Und die Schleife am Ende wie folgt bearbeiten:

  1. LOOP=1
  2. while [ $(( $LOOP )) = "1" ]
  3. do
  4.   LOOP=0
  5.   "$LIBDIR/xbmc/xbmc.bin" "$SAVED_ARGS"
  6.   RET=$?
  7.   if [ $(( $RET == 65 )) = "1" ]
  8.   then # User requested to restart app
  9.     LOOP=1
  10.   elif [ $(( ($RET >= 131 && $RET <= 136) || $RET == 139 )) = "1" ]
  11.   then # Crashed with core dump
  12.     print_crash_report
  13.     LOOP=1
  14.   fi
  15. done
  16.  
  17. 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