C't-VDR - DVB-S2 und h264 - Step by Step Installationsanleitung (Achtung Beta)
- Diese Seite befindet sich momentan im Aufbau
- Kk 12:42, 28. Dez 2007 (CET)
- Bei Fragen, nutzen Sie bitte folgende Diskussionsseite.
- Danke
Inhaltsverzeichnis |
Einleitung
Dieser Artikel ist ein Anpassung von openSUSE DVB-S2 - Step by Step Installationsanleitung (Achtung Beta) an das C't-VDR Debian System. Allerdings wird hier statt einer Softwarelösung mit Xine eine H264-Hardware-Decoder-Karte (Reel HD-Extension PCI) genutzt.
Installations-CD
Für die Grundinstallation greift man am Besten auf eine der Installations-CDs zurück, die von der C't für einen VDR unter Debian gebaut werden. Diese können mit jigdo an den aktuellen Stand angepasst werden. Quelle für ISO-File: [1] Quelle für jigdo-Steuerfile: [2] Anleitung zum Bedienen von jigdo: [3]
Erstellung des C't-VDR Grundsystems
Um möglichst einfach ein VDR-System installieren zu können, sollten sich VDR mit Betriebssystem und die Video- und Filmdateien auf getrennten Partitionen befinden. So kann recht einfach der VDR komplett aktualisiert werden, ohne dass das Videoarchiv neu aufgebaut werden muss. Tipp: Wenn die Video-Partition unter /var/lib/video eingebunden wird und dort sich die Verzeichnisse film und video befinden, kann mit
ln -s /var/lib/video/video /var/lib/video.00
recht einfach sowohl das Filmarchiv unter /var/lib/video/film, als auch das Videoarchiv unter /var/lib/video.00 auf der zweiten Partition liegen. Für die VDR-Betriebspartition haben sich 4 GB als ausreichend herausgestellt.
Vorbereitung der Umgebung
Nach der erfolgreichen Installation des VDRs durch die CD kann das System für das Compilieren vorbereitet werden.
Quellen anpassen
Die Quelldatei sources.list für das Installtionswerkzeug APT befindet sich im Verzeichnis /etc/apt/. Nach der Installation verweisen die Pfade auf die CD. Dies wird auf die Online-Quellen von E-Tobi und der C't umgeändert
cp /etc/apt/sources.list.online /etc/apt/source.list
Damit auch die Quellen im Zugriff sind, muss die Datei source.list noch um Einträge für die Dateisourcen ergänzt werden:
# Sourcen deb-src http://e-tobi.net/vdr-experimental etch base backports addons vdr-standard deb-src http://e-tobi.net/vdrdevel-experimental etch vdr-standard deb-src http://ftp2.de.debian.org/debian etch main non-free contrib deb-src http://security.debian.org/ etch/updates main contrib non-free
System aktualisieren
Im Anschluß kann das System auf den neuesten Stand gebracht werden:
apt-get update apt-get install e-tobi-keyring && apt-get update apt-get upgrade
Falls beim Update ein neuer Kernel kommt, sollte danach noch der Rechner rebootet werden.
Installieren der Programme zum Arbeiten
Jetzt kommen die ganzen zum Compilieren notwendigen Programme und Biliotheken, die sich unter Debian recht einfach mit apt-get installieren lassen.
apt-get install ssh build-essential mercurial subversion vim apt-file openssl libssl-dev locales language-env linux-source-2.6.18 kernel-package fakeroot less g++ tftpd libmad0-dev alsa libasound2-dev alsa-utils libpng12-dev dh-make screen
Konfigurieren der Programme
Der neue VDR benötigt eine konfigurierte Sprachumgebung, sonst läuft er nur auf Englisch VDR 1.5.x und Sprache:
dpkg-reconfigure locales
Für das "zukünftige" Reelbox-Plugin muss die ALSA-Soundumgebung konfiguriert werden:
alsaconf
(Optional) Wer beim Editieren der Dateien Wert auf Syntax-Highlighting legt, kann dies für den VIM in /usr/share/vim/vimrc einstellen. Das Werkzeug apt-file erlaubt es, im Debian-Archiv zu suchen, in welchem Paket welche Datei zu finden ist. (Wichtig beim Compilieren, wenn was fehlt!) Dafür muss apt-file auf den aktuellen Stand gebracht werden:
apt-file update
Entfernen des Alt-VDR
Jetzt werden der vorhandene VDR und die VDR-Plugins entfernt:
apt-get remove vdr vdrdevel
Kernel compilieren
Als Letztes muss noch der Kernel neu compiliert werden. (Hinweis: Ist eingentlich nicht notwendig, wenn jemand einen anderen Trick zum Erstellen der /lib/modules/2.6.18-486/build/* Dateien kennt, bitte diese hier abändern!) Die Kernelsourcen müssen ausgepackt werden, dann sollte die vorhandene Configuration in das Kernelsourcenverzeichnis kopiert werden.
cd /usr/src && tar -xjf linux-source-2.6.18.tar.bz2 && ln -s linux-source-2.6.18 linux && cd linux && cp /boot/config-2.6.18-4-486 .config
Der Kernel samt Module werden nach Debianart gebaut.
make-kpkg clean && fakeroot make-kpkg --append_to_version -486 --initrd --revision=rev.01 kernel_image modules_image
Das Ergebnis wird installiert.
cd /usr/src && dpkg -i linux-image-2.6.18-486_rev.01_i386.deb
Letztendlich muss das System rebootet werden.
Erstellen der DVB-S2 Module
Laden der Programm-Quellen.
cd /usr/src && mkdir dvb && cd dvb && hg clone http://jusst.de/hg/multiproto
Editieren einer Datei, um das Debug-Protokollieren zu verringern. In der Datei /usr/src/dvb/multiproto/linux/drivers/media/dvb/frontends/stb0899_drv.c in der Zeile 34 "static unsigned int verbose = 5;" die 5 in 0 ändern.
Compilieren der Sourcen
cd /usr/src/dvb/multiproto && make distclean && make && make install && make makelinks
Kopieren der Headerfiles in die Include-Verzeichnisse (Achtung, das ist "pfuschen"!)
cp /usr/src/dvb/multiproto/linux/include/linux/dvb/*.h /usr/include/linux/dvb/
Bauen des HD-VDR
Jetzt sind alle Vorbereitungen fertig und der VDR kann gebaut werden. Dazu werden die Sourcen geladen und der DVB-S2-H264 Patch debianisiert und eingebaut.
Laden der VDR-Sourcen und installieren der für das Bauen notwendigen Programme.
cd /usr/src && apt-get source vdr && apt-get build-dep vdr
Der DVB-S2-H264 Patch wurde aus vdr-1.5.12-dvbs2-h264-syncearly-framespersec-audioindexer-fielddetection.diff.bz2 erstellt. Dazu musste noch ein Header davor gesetzt werden.
#! /bin/sh /usr/share/dpatch/dpatch-run ## 07_dvbs2-h264-syncearly-framespersec.dpatch ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: This sets the default svdrp-port to 0, which means that ## DP: SVDRP is disabled by default unless someone specifies ## DP: another port with the --port option when starting vdr @DPATCH@
Das Ergebnis kann dann als Datei 07_dvbs2-h264-syncearly-framespersec.dpatch im Verzeichnis /usr/src/vdr-1.5.12/debian/patches gespeichert werden.
Jetzt muss noch die eingestellt werden, welche Patches überhaupt mit eincompiliert werden. Dies wird in der Datei /usr/src/vdr-1.5.12/debian/patches/00list eingestellt. Je nach Geschmack können hier Patches aktiviert und deaktiviert werden. Bisher beisst sich der 10_dd-record-option Patch noch mit dem 07_dvbs2-h264-syncearly-framespersec.
Jetzt kann der VDR gebaut werden.
cd /usr/src/vdr-1.5.12 && dpkg-buildpackage
Im Anschluß wird das Paket für die Entwicklungsumgebung installiert, damit im Anschluß die Plugins sich richtig compilieren lassen.
cd /usr/src && dpkg -i vdr-dev_1.5.12-1devel1_all.deb
Bauen der VDR-Plugins
Nach dem VDR werden die Plugins gebaut.
Laden der Sourcen und abhängigen Programme mit apt-get.
cd /usr/src && apt-get source vdr-plugin-remote vdr-plugin-live vdr-plugin-clock vdr-plugin-undelete vdr-plugin-epgsearch vdr-plugin-femon vdr-plugin-timeline cd /usr/src && apt-get build-dep vdr-plugin-remote vdr-plugin-live vdr-plugin-clock vdr-plugin-undelete vdr-plugin-epgsearch vdr-plugin-femon vdr-plugin-timeline
Das vdr-remote-plugin muss noch angepasst werden. Dazu ist in in /usr/src/vdr-plugin-remote--0.4.0/debian/rules die Zeile
mkdir locale
auskommiert werden.
Erstellen der Reelbox--Plugin
Die Anleitung wurde aus HDTV_eHD entnommen und für Debian angepasst.
Zuerst wird das Reelbox-Archiv ausgecheckt. Da dies sehr groß ist (>1,3GB) empfiehlt es sich hier die Video-Partition zu "missbrauchen".
cd <freier_Platz> svn co svn://reelbox.org
hdshm Modul erstellen
Jetzt muss das Modul für die Reelbox HD-Extension Karte gebaut werden.
cd <freier_Platz>/reelbox.org/testing/src/utils/hdshm
Das Makefile in <freier_Platz>/reelbox.org/testing/src/utils/hdshm wird angepasst, um auch andere GCC Versionen nutzen zu können.
# export CC=gcc-3.3 (auskommentiert!) # export CXX=g++-3.3 (auskommentiert!) export CC=gcc export CXX=g++
Das Modul compilieren.
make clean x86
Plugin debianisieren
Das eigentlich VDR-Plugin lässt sich sauber debianisieren. Die nachfolgende Anleitung macht nur das allernötigste, d. h. alle eigentlich noch zu füllende Dateien für Autor, Quelle usw. sind leer. Aber für das Beispiel reicht es.
Kopieren des Plugins.
cp -r <freier_Platz>/reelbox.org/testing/src/vdr-plugins/src/reelbox-1.9 vdr-plugin-reelbox-1.9
Kopieren des utils Verzeichnis (wird beim Compilieren benötigt)
cd /usr/src/vdr-plugin-reelbox-1.9 && cp -r <freier_Platz>/reelbox.org/testing/src/utils /usr/src/vdr-plugin-reelbox-1.9/utils
Erstellen des Debian-Grundgerüsts. Bei der Frage wird "s" für "single binary" ausgewählt.
dh_make
Jetzt wird das debian-Verzeichnis gepflegt. Zuerst Alles löschen, was nicht benötigt wird.
cd /usr/src/vdr-plugin-reelbox-1.9/debian/ && rm cron.d.ex dirs emacsen-install.ex emacsen-remove.ex emacsen-startup.ex init.d.ex manpage.1.ex manpage.sgml.ex manpage.xml.ex menu.ex postinst.ex postrm.ex preinst.ex prerm.ex vdr-plugin-reelbox-default.ex vdr-plugin-reelbox.doc-base.EX watch.ex
Eine Datei /usr/src/vdr-plugin-reelbox-1.9/debian/install mit dem Inhalt
libvdr-reelbox.so.* usr/lib/vdr/plugins/
wird erstellt. Damit wird angegeben, welche Ergebnisse in das Debianpaket mit übernommen werden sollen (hier die libvdr-reelbox.so.* Bibliothek) und wo diese später hin kopiert werden müssen (usr/lib/vdr/plugins/)
Die debian/rules Datei wird aus dem vdr-plugin-clock "geklaut"
cp /usr/src/vdr-plugin-clock-0.0.6/debian/rules /usr/src/vdr-plugin-reelbox-1.9/debian/rules
Jetzt müssen die Patches für das Reelbox-Plugin erstellt werden, damit dieses mit dem "normalen" VDR und nicht der Reelbox läuft. Hier bei wurde der Patch vdr-1.5.10-reelbox-1.9.diff an den aktuellen SVN-Code angepasst (bzip2-Archiv mit Patches). Aufgrund des neueren GCC Compilers wird ein weiterer Patch für die Datei Mutex.h benötigt.
Erstellen des Patchverzeichnisses
mkdir /usr/src/vdr-plugin-reelbox-1.9/debian/patches
Kopieren der Patches 02_Mutex.dpatch und 05_Reelboxpatch.dpatch in die 00list-Datei
vi /usr/src/vdr-plugin-reelbox-1.9/debian/patches/00list
Inhalt
02_Mutex 05_Reelboxpatch
Damit ist der Bau des Reelbox-Debian-Paketes fertig.
Bauen der Plugins
Jetzt können die VDR-Plugins erstellt werden.
cd /usr/src/vdr-plugin-remote-0.4.0 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-live-0.1.0 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-clock-0.0.6 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-undelete-0.0.6 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-epgsearch-0.9.24~beta3 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-femon-1.2.2 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-timeline-1.0.141 && dpkg-buildpackage -tc && cd .. cd /usr/src/vdr-plugin-reelbox-1.9 && dpkg-buildpackage -tc && cd ..
Installieren des VDR mit Plugins
Zuletzt werden der VDR und die Plugins installiert.
cd /usr/src dpkg -i vdr_1.5.12-1devel1_i386.deb dpkg -i vdr-plugin-remote_0.4.0-6_i386.deb dpkg -i vdr-plugin-live_0.1.0-10_i386.deb dpkg -i vdr-plugin-clock_0.0.6-13_i386.deb dpkg -i vdr-plugin-undelete_0.0.6-20_i386.deb dpkg -i vdr-plugin-epgsearch_0.9.24~beta3-4_i386.deb dpkg -i vdr-plugin-femon_1.2.2-1devel3_i386.deb dpkg -i vdr-plugin-timeline_1.0.141-15_i386.deb dpkg -i vdr-plugin-reelbox_1.9-0_i386.deb
Sonstige Vorbereitungen
Erstellen der HD-Ext Startkonfiguration
Die HD-Ext-Karte wird mit einem kleinen Linux-Kernel gestartet. Dieses lädt das Modul in den VDR und das Startimage in die Karte.
Datei "/etc/init.d/start_hd"
#!/bin/sh cd <freier_Platz>/reelbox.org . <freier_Platz>/reelbox.org/testing/src/etc/default/hdboot insmod <freier_Platz>/reelbox.org/testing/src/utils/hdshm/x86/driver/hdshm.ko sleep 2 <freier_Platz>/reelbox.org/testing/src/utils/hdshm/x86/hdboot/hdboot -e $KERNEL_ENTRY /usr/bin/screen -d -m <freier_Platz>/reelbox.org/testing/src/utils/hdshm/x86/shmnetd/shmnetd sleep 20
Für das Startimage hat sich die SVN-Version r4569 aus dem Reel-SVB Repository als stabil heraus gestellt. Damit ändert sich auch die Startadresse in der Datei <freier_Platz>/reelbox.org/testing/src/etc/default/hdboot.
start address is 0x80352000
Jetzt wird das Startverzeichnis für den HDPlayer erstellt. Das ist der H264 Player, der auf der HD-ext Karte arbeitet und die Daten darstellt.
mkdir /hdplayer
Für den HDPlayer wird am besten die gepatchte Version aus dem VDR Portal benutzt. Diese muss noch ausgepackt werden.
gzip -d hdplayer.gz
und in das Verzeichnis /hdplayer verschoben werden
cp hdplayer /hdplayer/hdplayer
Damit der TFTP-Server auch den Zugriff zulässt muss noch die Datei "/etc/inetd.conf" geändert werden. Hier ist die Zeile mit tftp zu Beginn wie folgt zu ändern:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /
Das man hiermit den VDR SPERRANGELWEIT aufmacht, ist hoffentlich allen klar! Zukünftig sollte ein anderes Verzeichnis genutzt werden, aber für das Beispiel reicht es aus. Also bitte nicht einen VDR an ein ungesichertes Netzwerk hängen und sich hinterher wundern!
Testen der Startkonfiguration
TFTP-Server und Verzeichnis
Zum Testen kann man schnell lokal den hdplayer mit tftp herunterladen:
apt-get install tftp (falls noch nicht installiert) tftp localhost get /hdplayer/hdplayer
Als Ergebnis sollte
Received 139561 bytes in 0.1 seconds
zu sehen sein.
HD-Karte mit Linux-Image
Zum Testen der HD-Karte mit dem Linux-Image empfielt es sich die Befehle des Startskriptes "/etc/init.d/start_hd" per Hand Stück für Stück durchzuführen. Hat alles funktioniert, sieht man den Startbildschirm der Reelbox über den HDMI-Eingang. Daneben hat der VDR-Rechner ein weiteres Netzwerkinterface. Mit ifconfig sollte ein "tun0" Device zu sehen sein. Falls das nicht klappt, sollte im VDR Portal gesucht werden. Z.B. in HD Externsion im VDR aktueller Stand und Reel Box EXTENSION HD. Ein wichtiger Hinweis, dass das Linux der HD-Ext Karte hochgefahren ist, kann das Anpingen
ping 192.168.99.129
zeigen. Ansonsten existiert auch noch ein Reelbox-Forum, in dem die Entwickler selber helfen.
Die Karte und der VDR kommunizieren im 192.168.99.x Netzwerk. Es ist daher eine sehr gute Idee, das eigene Netzwerk NICHT in der gleichen Zone 192.168.99.x laufen zu lassen!
VDR mit Reelbox-Plugin
Wenn alle übrigen Tests erfolgreich verlaufen sind, kann der VDR mit
vdr -Preelbox
gestartet werden. Die Menüführung sollte über die Tastatur gehen. Wenn alles klappt
>> Herzlichen Glückwunsch zum eigenen HD-Player/-Recorder <<