Kategorie:Raspbian VDR Streaming Client mittels Streamdev und rpihddevice

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Installation VDR: Verschoben)
K
 
(31 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Einleitung=
 
=Einleitung=
Diese Step-by-Step-Anleitung beschreibt die Installation und Konfiguration eines VDR Streaming Client Systems mittels [http://www.vdr-wiki.de/wiki/index.php/Streamdev-plugin Streamdev Plugin] und einem Raspberry Pi. Es wird davon ausgegangen, dass es bereits einen VDR mit lauffähigem [[Streamdev-plugin|Streamdev-Server Plugin]] gibt. Für die Bildausgabe auf den TV kommt das [http://www.vdr-portal.de/board18-vdr-hardware/board98-arm-co/120344-prototyp-rpi-ausgabeplugin/ rpihddevice Plugin] zum Einsatz.
+
Diese Step-by-Step-Anleitung beschreibt die Installation und Konfiguration eines VDR Streaming Client Systems mittels [[Streamdev-plugin]] und einem [[Raspberry Pi]]. Es wird davon ausgegangen, dass es bereits einen VDR mit lauffähigem [[Streamdev-plugin|Streamdev-Server Plugin]] gibt. Für die Bildausgabe auf den TV kommt das [[Rpihddevice-plugin]] zum Einsatz.
 +
 
 +
Sept. 2015: e-tobi stellt Pakete für den PI2 bereit. Das vereinfacht die Installation, ist aber hier eigentlich OT. Link ist ganz unten.
  
 
=Modifikationen / Veränderungen=
 
=Modifikationen / Veränderungen=
Zeile 6: Zeile 8:
 
==Dez 2014 - Jan 2015==
 
==Dez 2014 - Jan 2015==
 
'''reufer''':
 
'''reufer''':
* Live plugin (9.1.2015)
+
* 0.0.11 commit für rpihddevice. Achtung, braucht neue RPI Firmware. RPI Firmware seit 3.18 braucht "dtoverlay=lirc-rpi" in /boot.config.txt damit lirc über GPIO (wie hier beschrieben) funktioniert.
 
* Commit für rpihddevice damit "ZDF" HD Kanäle korrekt abgespielt werden:
 
* Commit für rpihddevice damit "ZDF" HD Kanäle korrekt abgespielt werden:
 
* http://www.vdr-portal.de/board18-vdr-hardware/board98-arm-co/p1224718-rpihddevice-aktuelle-version-aus-dem-git-osd-top-aber-probleme-bei-der-wiedergabe/#post1224718
 
* http://www.vdr-portal.de/board18-vdr-hardware/board98-arm-co/p1224718-rpihddevice-aktuelle-version-aus-dem-git-osd-top-aber-probleme-bei-der-wiedergabe/#post1224718
 
* Commit für rpihddevice damit non-PES Standbilder korrekt widergegeben werden (wie vom suspendoutput module).
 
* Commit für rpihddevice damit non-PES Standbilder korrekt widergegeben werden (wie vom suspendoutput module).
 
'''te36''':  
 
'''te36''':  
 +
* Erklärung von Kriterien bei der Wahl der Fernbedienung.
 +
* Live plugin (9.1.2015)
 
* Consolefont vergrößern (dpkg-reconfigure).
 
* Consolefont vergrößern (dpkg-reconfigure).
 
* Sektion zum SD Management angefügt: Kopieren, Clonen, Lebensdauer verbessern.
 
* Sektion zum SD Management angefügt: Kopieren, Clonen, Lebensdauer verbessern.
Zeile 27: Zeile 31:
 
* Vdr unter separatem Nutzer vdr (optional)
 
* Vdr unter separatem Nutzer vdr (optional)
 
* Editor nano statt vi (optional)
 
* Editor nano statt vi (optional)
 +
* Einschalten mit Taster
 
* Verschiedene Kleinigkeiten
 
* Verschiedene Kleinigkeiten
 +
 +
 +
== Erwünschte Anleitungen ==
 +
* Anleitung für Avahi, damit NFS automatisch eingehängt wird.
  
 
=Voraussetzungen=
 
=Voraussetzungen=
* Ein vorhandenes VDR System mit lauffähigem Streamdev-Server Plugin (Beispiel [http://www.vdr-wiki.de/wiki/index.php/Kategorie:Ubuntu_HD_VDR_mittels_SoftHDDevice_und_VDPAU VDR System])
+
* Ein vorhandenes VDR System mit lauffähigem Streamdev-Server Plugin (Beispiel [[:Kategorie:Ubuntu_HD_VDR_mittels_SoftHDDevice_und_VDPAU|VDR System]])
 
* Einen [[Raspberry Pi]] der als Streaming Client fungiert.  
 
* Einen [[Raspberry Pi]] der als Streaming Client fungiert.  
 
** Die Installationsanleitung bezieht sich auf Modell B/B+ die beide eingebautes Ethernet und 512 MByte RAM haben.
 
** Die Installationsanleitung bezieht sich auf Modell B/B+ die beide eingebautes Ethernet und 512 MByte RAM haben.
Zeile 42: Zeile 51:
  
 
Um SD Backup direkt am RPI zu machen braucht man noch einen SD/USB reader. Am besten noch ein USB Verlängerungskabel oder einen kleinen Micro-USB-Reader  damit keiner der anderen USB Ports am RPI geblockt wird, wenn man da z.b. IR-Empfänger oder WLAN verwenden will.
 
Um SD Backup direkt am RPI zu machen braucht man noch einen SD/USB reader. Am besten noch ein USB Verlängerungskabel oder einen kleinen Micro-USB-Reader  damit keiner der anderen USB Ports am RPI geblockt wird, wenn man da z.b. IR-Empfänger oder WLAN verwenden will.
 
==Optional: MPEG-2 und VC-1 Lizenzen==
 
Die Lizenzen sind nötig damit der Raspberry Pi die MPEG-2 sowie VC-1 Datenstreams per Hardware decodieren kann. Die Lizenzen können im offiziellen [http://www.raspberrypi.com/license-keys/ Raspberry Pi Onlineshop] erworben werden. Die MPEG-2 Lizenz braucht man um die meisten deutschen nicht-HD Sender die von Astra kommen zu dekodieren, da diese mit MPEG-2 übertragen werden. Alle HD-Sender sind H264, dafür ist keine Lizenz notwendig.
 
 
* [http://www.raspberrypi.com/mpeg-2-license-key/ MPEG-2] sowie [http://www.raspberrypi.com/vc-1-license-key/ VC-1] Lizenzen für den Raspberry Pi.
 
 
Die Lizenzen werden per Email bis zu 48 Stunden nach Kauf verschickt, also rechtzeitig bestellen, wenn man MPEG-2/SD anschauen will.
 
  
 
=Welche Hardware wird benötigt?=
 
=Welche Hardware wird benötigt?=
Zeile 54: Zeile 56:
 
Hier die Übersicht über meine Hardware:
 
Hier die Übersicht über meine Hardware:
  
===VDR System===
+
{|
[http://www.vdr-wiki.de/wiki/index.php/Kategorie:Ubuntu_HD_VDR_mittels_SoftHDDevice_und_VDPAU#Hardwarebeispiel VDR System]
+
|'''VDR System'''
 
+
|[[:Kategorie:Ubuntu_HD_VDR_mittels_SoftHDDevice_und_VDPAU#Hardwarebeispiel|VDR System]]
===Raspberry Pi===
+
|-
'''Raspberry Pi:'''     Raspberry Pi Model B+ original "UK" mit Samsung Speicher 512MB
+
|'''Raspberry Pi:'''
'''Gehäuse:'''           Raspberry Pi B+ Gehäuse - belüftet, Farbe schwarz durchsichtiges Plexiglas
+
|Raspberry Pi Model B+ original "UK" mit Samsung Speicher 512MB
'''Netzteil:'''         Steckernetzteil Micro-USB 5V 2000mA für Raspberry Pi
+
|-
'''SD-Karte:'''         SanDisk Class 10 Ultra Micro SDHC 32GB
+
| '''Gehäuse:'''
'''Kupfer Kühlkörper:''' Cooltek BGA VGA-RAM Cooler - Maße (LxBxH): ca. 21x16x6.5 mm
+
|Raspberry Pi B+ Gehäuse - belüftet, Farbe schwarz durchsichtiges Plexiglas
 +
|-
 +
| '''Netzteil:'''
 +
|Steckernetzteil Micro-USB 5V 2000mA für Raspberry Pi
 +
|-
 +
| '''SD-Karte:'''
 +
|SanDisk Class 10 Ultra Micro SDHC 32GB
 +
|-
 +
| '''Kupfer Kühlkörper:'''
 +
|Cooltek BGA VGA-RAM Cooler - Maße (LxBxH): ca. 21x16x6.5 mm
 +
|-
 +
|}
  
 +
<!--
 
==Stromverbrauch==
 
==Stromverbrauch==
 
* Muss noch ergänzt werden *
 
* Muss noch ergänzt werden *
 +
-->
  
 
==Wie schnell startet das System?==
 
==Wie schnell startet das System?==
 
Vom einschalten bis zum TV Bild vergehen 25 Sekunden.
 
Vom einschalten bis zum TV Bild vergehen 25 Sekunden.
 +
==Stromverbrauch==
 +
Siehe folgenedn link: [http://www.elektronik-kompendium.de/sites/raspberry-pi/1910071.htm]
  
 
=Welche Softwareversionen werden eingesetzt?=
 
=Welche Softwareversionen werden eingesetzt?=
Zeile 84: Zeile 101:
 
* remotetimers Plugin 1.0.1
 
* remotetimers Plugin 1.0.1
 
* suspendoutput Plugin 2.0.0
 
* suspendoutput Plugin 2.0.0
 +
* live plugin (0.3.0)
  
 
=Installation und Konfiguration Raspberry Pi Betriebssystem=
 
=Installation und Konfiguration Raspberry Pi Betriebssystem=
==Einleitung==
 
 
Um den [[Raspberry Pi]] nutzen zu können ist es nötig ein Betriebssystem (OS) zu installieren. Als Betriebssystem verwende ich Raspbian Wheezy und dieses kann [http://www.raspberrypi.org/downloads hier] kostenfrei heruntergeladen werden. Nach dem herunterladen muss die Datei auf der Festplatte entpackt werden. Die darin enthaltene *.img Datei wird später benötigt. Für die Vorbereitungen verwende ich einen Windows Client. Es können aber auch Mac OS X oder Linux verwendet werden siehe [http://www.raspberrypi.org/quick-start-guide hier].
 
Um den [[Raspberry Pi]] nutzen zu können ist es nötig ein Betriebssystem (OS) zu installieren. Als Betriebssystem verwende ich Raspbian Wheezy und dieses kann [http://www.raspberrypi.org/downloads hier] kostenfrei heruntergeladen werden. Nach dem herunterladen muss die Datei auf der Festplatte entpackt werden. Die darin enthaltene *.img Datei wird später benötigt. Für die Vorbereitungen verwende ich einen Windows Client. Es können aber auch Mac OS X oder Linux verwendet werden siehe [http://www.raspberrypi.org/quick-start-guide hier].
  
Zeile 96: Zeile 113:
 
* [[Raspbian VDR Streaming Client - Systemoptimierungen‎|Systemoptimierungen‎]]
 
* [[Raspbian VDR Streaming Client - Systemoptimierungen‎|Systemoptimierungen‎]]
 
* [[Raspbian VDR Streaming Client - VDR Installation|VDR Installation]]
 
* [[Raspbian VDR Streaming Client - VDR Installation|VDR Installation]]
 
+
* [[Raspbian VDR Streaming Client - VDR Plugins|VDR Plugins]]
=VDR Plugins=
+
* [[Raspbian VDR Streaming Client - Satip Plugin|Satip Plugin]]
==Downloadverzeichnis für Plugins vorbereiten==
+
* [[Raspbian VDR Streaming_Client - LIRC|Optional: Lirc - Raspberry Pi mit der Fernbedienung steuern]]
mkdir /data/installfiles/vdrplugins
+
* [[Raspbian VDR Streaming Client - SD Management|SD Management]]
 
+
* [[Raspbian VDR Streaming Client - Einschalten mit Taster|Ein-/Ausschalten mit Taster]]
==rpihddevice Plugin==
+
* [[Raspbian VDR Streaming Client - Install Scripts|Install Scripts]]
===Download===
+
* [http://www.sigvdr.de/VDR/VDR-Client/raspiVDR.html Alternative VDR Build Scripts ] vereinfacht das Herunterladen und Bauen des VDR incl. den Plugins
cd /data/installfiles/vdrplugins
+
* [[::Kategorie:Raspbian_VDR_Streaming_Client_yaVDR_Pakete|Noch eine Alternative mit yaVDR-Quelltext-Paketen]]
git clone git://projects.vdr-developer.org/vdr-plugin-rpihddevice.git
+
tar -czf vdr-plugin-rpihddevice-git-30122014.tar.gz vdr-plugin-rpihddevice
+
 
+
===Was hat sich geändert?===
+
Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:
+
 
+
http://projects.vdr-developer.org/git/vdr-plugin-rpihddevice.git/
+
 
+
===Installation===
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo cp -a /data/installfiles/vdrplugins/vdr-plugin-rpihddevice .
+
sudo ln -s vdr-plugin-rpihddevice rpihddevice
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr
+
 
+
===runvdr anpassen===
+
Die Plugins werden in das bestehende runvdr Skript hintereinander eingefügt:
+
 
+
'''Zum Beispiel:'''
+
VDRPLUGINS="-P Plugin1 -P Plugin2 -P Plugin3"
+
 
+
'''Hier der Eintrag für das dvbhddevice Plugin:'''
+
sudo vi /usr/local/bin/runvdr
+
 
+
VDRPLUGINS="-P rpihddevice"
+
 
+
==Streamdev Plugin==
+
===Download===
+
cd /data/installfiles/vdrplugins
+
git clone git://projects.vdr-developer.org/vdr-plugin-streamdev.git vdr-plugin-streamdev
+
tar -czf vdr-plugin-streamdev-23122014.tar.gz vdr-plugin-streamdev/
+
 
+
===Was hat sich geändert?===
+
Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:
+
 
+
http://projects.vdr-developer.org/repositories/show/plg-streamdev
+
 
+
===Installation===
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo cp -a /data/installfiles/vdrplugins/vdr-plugin-streamdev .
+
sudo ln -s vdr-plugin-streamdev/ streamdev
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr
+
 
+
===runvdr anpassen===
+
sudo vi /usr/local/bin/runvdr
+
 
+
-P streamdev-client
+
 
+
===System neustarten===
+
sudo init 6
+
 
+
===Streamdev-Client zum Streamdev-Server verbinden===
+
Nach dem Neustart sollte das VDR OSD am TV angezeigt werden. Hierüber kann dann der Streamdev-Client konfiguriert werden.
+
 
+
* VDR Menü -> Einstellungen -> Plugins -> streamdev-client ->
+
+
Gleichzeitig genutzte DVB-Karten: 1
+
IP der Gegenseite:                192.168.0.10
+
Port der Gegenseite:              2004
+
Filter-Daten streamen:            nein
+
 
+
Danach auf einen Kanal umschalten dann sollte das TV Bild sichtbar sein.
+
 
+
===Optional: Regionalprogramme korrekt empfangen===
+
Einige Programme verwenden dynamisch ändernde Kanalinformation (PIDs). Ein Beispiel sind die Regionalfenster des NDR. Mit der obigen Einstellung kann man diese Programme nicht korrekt empfangen - man sieht dann beim NDR zum Beispiel während der Regionalfenster nur Niedersachsen.
+
 
+
* VDR Menü -> Einstellungen -> DVB ->
+
+
...
+
Kanäle aktualisieren:            nur PIDs
+
 
+
* VDR Menü -> Einstellungen -> Plugins -> streamdev-clients ->
+
 
+
...
+
Filter-Daten streamen:          ja
+
 
+
Bei der Aktivierung von "Filter-Daten streamen" kann es zu Pufferproblemen kommen, die im syslog wie folgt aussehen:
+
 
+
Jan  9 20:39:18 raspberrypi vdr: [2115] cStreamdevFilter::PutSection socket overflow, Pid  18 Tid  64
+
 
+
Wenn es daraufhin zu stockender live-TV Widergabe kommt dann die folgenden Filter Pufferpatches fuer den streamdev-client ausprobieren:
+
 
+
http://projects.vdr-developer.org/issues/2045
+
 
+
http://projects.vdr-developer.org/attachments/1844/vdr-plugin-streamdev-filter-patch.diff
+
http://projects.vdr-developer.org/attachments/1853/vdr-plugin-streamdev-filter-patch2.diff
+
 
+
Nach compilieren des streamdev-clients mit diesen Patches gibt es im Setup Menu eine weiter Option:
+
 
+
* VDR Menü -> Einstellungen -> Plugins -> streamdev-clients ->
+
 
+
...
+
Filter-Daten streamen:          ja
+
Filter Socket Puffergröße:      0
+
 
+
Der Patch sollte bereits ohne Einstellung einer Puffergröße helfen, daß die Widergabe nicht stockt. Wenn nicht, dann eine Puffergröße einstellen die ausrechend ist, alle Filterdaten zu puffern.
+
 
+
/usr/local/bin/runvdr anpassen:
+
 
+
# Permit larger socket buffer sizes:
+
sysctl net.core.wmem_max=3072000
+
 
+
* VDR Menü -> Einstellungen -> Plugins -> streamdev-clients ->
+
 
+
...
+
Filter-Daten streamen:          ja
+
Filter Socket Puffergröße:      3072000
+
 
+
==svdrpservice Plugin==
+
Das svdrpservice Plugin bietet selbst keinen Benutzerdienst an. Es ist vielmehr ein notwendiger Dienst für die Plugins epgsync und remotetimers. Im svdrpservice Plugin wird die SVDRP Verbindung zum VDR server eingestellt, die dann automatisch von den anderen Plugins verwendet wird.
+
+
===Download===
+
cd /data/installfiles/vdrplugins
+
wget http://vdr.schmirler.de/svdrpservice/vdr-svdrpservice-1.0.0.tgz
+
 
+
===Was hat sich geändert?===
+
Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:
+
 
+
http://vdr.schmirler.de/svdrpservice/HISTORY
+
 
+
===Installation===
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo tar -xzf /data/installfiles/vdrplugins/vdr-svdrpservice-1.0.0.tgz
+
sudo ln -s svdrpservice-1.0.0 svdrpservice
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr
+
 
+
===runvdr anpassen===
+
sudo vi /usr/local/bin/runvdr
+
 
+
-P'svdrpservice 192.168.0.10:6419'
+
 
+
Hier wird die IP Adresse sowie Port von eurem VDR System angegeben.
+
 
+
==epgsync Plugin==
+
===Download===
+
cd /data/installfiles/vdrplugins
+
wget http://vdr.schmirler.de/epgsync/vdr-epgsync-1.0.1.tgz
+
 
+
===Was hat sich geändert?===
+
Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:
+
 
+
http://vdr.schmirler.de/epgsync/HISTORY
+
 
+
===Installation===
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo tar -xzf /data/installfiles/vdrplugins/vdr-epgsync-1.0.1.tgz
+
sudo ln -s epgsync-1.0.1 epgsync
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr
+
 
+
===runvdr anpassen===
+
sudo vi /usr/local/bin/runvdr
+
 
+
-P epgsync
+
 
+
===epgsync Plugin konfigurieren===
+
Nach dem Neustart sollte das VDR OSD am TV angezeigt werden. Hierüber kann dann das epgsync Plugin konfiguriert werden.
+
 
+
* VDR Menü -> Einstellungen -> Plugins -> epgsync ->
+
+
Server IP:                        192.168.0.10
+
Server Port:                      aus svdrpservice
+
Kanalweise synchronisieren:      ja
+
EPG sync beim Starten:            ja
+
Zeit bis zum EPG sync (h):        1
+
Kanäle zuordnen nach:            Name, ID
+
Ziel-Kanäle:                      alle
+
 
+
==remotetimers Plugin==
+
Das remotetimers Plugin erlaubt es auf vom RPI Client aus Aufnahmen auf dem VDR-Server aufzusetzen, anzuschauen und zu editieren. Wenn man es einfach ohne Patches aufsetzt, dann erzeugt es ein Untermenü "Server Timer", in dem die Einträge "Programm", "Timer" und "Aufzeichnungen" auf den Server zugreifen statt lokal.
+
 
+
===Download===
+
cd /data/installfiles/vdrplugins
+
wget http://vdr.schmirler.de/remotetimers/vdr-remotetimers-1.0.1.tgz
+
wget https://raw.githubusercontent.com/VDR4Arch/vdr4arch/master/plugins/vdr-remotetimers/remotetimers-vdr2.1.2compat.diff
+
 
+
===Was hat sich geändert?===
+
Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:
+
 
+
http://vdr.schmirler.de/remotetimers/HISTORY
+
 
+
===Installation===
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo tar -xzf /data/installfiles/vdrplugins/vdr-remotetimers-1.0.1.tgz
+
sudo ln -s remotetimers-1.0.1 remotetimers
+
cd remotetimers
+
sudo patch -p1 -i /data/installfiles/vdrplugins/remotetimers-vdr2.1.2compat.diff
+
 
+
Um den RPI möglichst einfach bedienbar zu machen, empfiehlt es sich die folgenden Patches vom remotetimers Plugin einzuspielen. Diese erlauben es dann durch Konfiguration im OSD dieses so aufzusetzen, daß die Hauptmenueinträge "Programm", "Timer" und "Aufzeichnungen" durch die des Plugins ersetzt werden. Dadurch wird es unmöglich gemacht, (aus Versehen) lokal auf dem SD des RPI Aufzeichnungen aufzusetzen, und der RPI VDR bedient sich fast komplett so wie ein VDR mit lokaler Aufnahme.
+
 
+
Zur kontrollierten Anwendung der Patches empfiehlt es sich, patch erst einmal mit dem zusätzlichen Argument "--dry-run" zu starten, die Patches anzusehen, und bei Fehlern zu schauen, wo die VDR-Quellen manuell gepatched werden müssen.
+
 
+
'''Note:''' HUNK1 vom MainMenuHooks patch failed gegen VDR 2.1.6 (kleine Änderungen gegenüber der VDR Version für die der Patch gemacht wurde) und muss händisch eingebaut werden.
+
 
+
cd /usr/local/src/vdr/
+
patch -p1 < PLUGINS/src/remotetimers/patches/MainMenuHooks-v1_0_2.diff
+
patch -p0 --dry-run < PLUGINS/src/remotetimers/patches/vdr-1.7.28-remote_instant_recordings.patch
+
patch -p0  < PLUGINS/src/remotetimers/patches/vdr-1.7.29-skinlcars.patch
+
 
+
Compilieren:
+
 
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr
+
 
+
===runvdr anpassen===
+
sudo vi /usr/local/bin/runvdr
+
 
+
-P remotetimers
+
 
+
===Konfigurieren===
+
 
+
Mit eingespielten Patches und nach Neustart des VDR empfehlen sich Einstellungen des Plugins wie folgt:
+
Server IP:                                        <= Muss nur im svdrpservice plugin gesetzt sein
+
Server Port:                      aus svdrpservice
+
Kanäle zuordnen anhand:          Kanal-ID
+
Hauptmenüeintrag verstecken:      ja              <= Wird nicht benötigt, da Hauptmenüeinträge bereits durch plugin ersetzt sind
+
Voreinstellung für neue Timer
+
Aufnahmeort:                      Server
+
Direktaufzeichnung:              Server
+
Live-Signal anhalten:            Server
+
Benutzer-ID:                      0
+
Einstellungen für das Menü "Programm"
+
Hauptmenü ersetzen:              ja
+
Darstellung der Liste:            Oberfläche
+
Fortschrittsanzeige:              ja
+
..
+
Einstellungen für das Menü "Timer"
+
Hauptmenü ersetzen:              ja
+
Darstellung der Liste:            Oberfläche
+
Benutzer Filter:                  0
+
Einstellungen für das Menü "Aufzeichnungen"
+
Hauptmenü ersetzen:              ja
+
Darstellung der Liste:            Oberfläche
+
Benutzer Filter:                  0
+
Darstellung der Liste:            Oberfläche
+
Benutzer Filter:                  0
+
Max Bandbreite beim Verschieben: unbegrenzt
+
Server Aufzeichnungen:
+
Update-Datei beobachten:          ja
+
 
+
==suspendoutput Plugin==
+
Wenn man den RPI via streamdev zu einem zentralen VDR server verbindet, kann man schnell mehr aktive clients haben als verfügbare Tuner: Lokaler VDR auf dem Server + Aufnahmen + clients (RPI oder andere).
+
 
+
Wird der Fernseher des RPI nur mit dem RPI verwendet (hat also keine lokalen Tuner oder andere Medienabspieler, die alternativ verwendet werden) und hat der Fernseher auch noch 2 USB Eingänge, dann ist es ausreichend, den RPI mit einem Y-Kabel über die USB-Ports des Fernsehers mit Strom zu versorgen. Der RPI läuft dann nur wenn er benötigt wird. Diese Art der Stromversorgung kann immer sinnvoll sein (wenn möglich), aber wenn am Fernseher noch andere Quellen neben dem RPI angeschaut werden können, dann empfängt der RPI immer noch via streamdev Daten wenn er garnicht gebraucht wird und belegt unnötig einen Tuner am Server-VDR.
+
 
+
In diesem Fall bietet sich das suspendoutput plugin an, das bei Inaktivität den VDR suspendiert: Es wird ein Pause-Bild angezeigt und auf der streamdev-Verbindung werden keine Daten angefordert, so daß kein Tuner auf dem VDR Server belegt wird.
+
 
+
http://www.vdr-wiki.de/wiki/index.php/Suspendoutput-plugin
+
 
+
===Download===
+
Neueste Version im repository suchen. Im folgenden wird angenommen 2.0.0 ist die neueste Version (12/2014).
+
 
+
http://phivdr.dyndns.org/vdr/vdr-suspendoutput/?C=M;O=D
+
 
+
cd /data/installfiles/vdrplugins
+
wget http://phivdr.dyndns.org/vdr/vdr-suspendoutput/vdr-suspendoutput-2.0.0.tgz
+
 
+
===Installation vorbereiten===
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo tar -xzf /data/installfiles/vdrplugins/vdr-suspendoutput-2.0.0.tgz
+
sudo ln -s suspendoutput-2.0.0 suspendoutput
+
wget https://raw.githubusercontent.com/VDR4Arch/vdr4arch/master/plugins/vdr-suspendoutput/suspendoutput-vdr2.1.2compat.diff
+
patch -p1 < suspendoutput-vdr2.1.2compat.diff
+
wget -O vdr-plugin-suspendoutput-fix1.diff  'http://www.vdr-portal.de/index.php?page=Attachment&attachmentID=37169&h=213b7e6f8c2114d41bf41afe09764b95d523c048'
+
patch -p1 < vdr-plugin-suspendoutput-fix1.diff
+
 
+
In Versionen <= 2.0.0 sind die im suspendoutput plugin enthaltenen MPEG Standbilddateien nicht konform mit den VDR API Standards und können das rpihddevice und damit den VDR zum Absturz bringen. Die Dateien dann patchen:
+
 
+
ffmpeg wird benötigt:
+
 
+
sudo apt-get install ffmpeg
+
 
+
cd suspendoutput
+
sudo ffmpeg -i vdrlogo_720x576.mpg -f mpegts vdrlogo_720x576.pes
+
sudo ffmpeg -i black_720x576.mpg  -f mpegts black_720x576.pes
+
sudo mv vdrlogo_720x576.pes vdrlogo_720x576.mpg
+
sudo mv black_720x576.pes  black_720x576.mpg
+
 
+
===Installieren===
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr
+
 
+
===runvdr anpassen===
+
sudo vi /usr/local/bin/runvdr
+
 
+
-P suspendoutput
+
 
+
==Optional: live plugin==
+
Das Live-plugin bietet eine Weboberfläche an von der sich aus viele Funktionen des VDR steuern lassen. Da der Raspberry als client aufgesetzt ist, sind diese Funktionen unterschiedlich sinnvoll. Der Teil der Funktionen die auf dem RPI Client nicht sinnvoll sind sollten einfach über das Live plugin auf dem VDR Server gemacht werden.
+
 
+
Die '''Fernbedienung''' eignet sich sehr gut als Troubleshooting Tool und zur Ferndiagnose wenn ein Benutzer Schwierigkeiten hat. "Zeig doch mal, was Du da am VDR bedienst, ich kann Dir hier aus der Ferne zuschauen".
+
 
+
Das '''Programm''' und '''Zeitleiste''' sind sehr praktisch um durch die TV Programme zu browsen (ohne dafür den Bildschirm mit dem OSD des VDR zu belegen), und das Umschalten der Programme ist ebenso praktisch von der Live Webpage aus.
+
 
+
Das programmieren von '''Aufnahmen''' ist auf dem RPI client nicht so sinnvoll, weil diese Aufnahmen alle auf dem RPI landen und nicht auf dem Server. Ebenso sieht man in den '''Timer'''(n) nur diese lokal programmierten Aufnahmen.
+
 
+
===Download===
+
 
+
cd /data/installfiles/vdrplugins
+
git clone git://projects.vdr-developer.org/vdr-plugin-live.git
+
wget http://projects.vdr-developer.org/attachments/download/1854/vdr-plugin-live-patch.2.1.6.diff
+
 
+
===Was hat sich geändert===
+
 
+
http://live.vdr-developer.org
+
http://projects.vdr-developer.org/issues/2056
+
 
+
===Installieren===
+
 
+
sudo apt-get install libtntnet-dev libcxxtools-dev libpcre3-dev
+
cd /usr/local/src/vdr/PLUGINS/src
+
sudo cp -a /data/installfiles/vdrplugins/vdr-plugin-live .
+
sudo ln -s vdr-plugin-live live
+
cd live
+
sudo patch -p1 < /data/installfiles/vdrplugins/vdr-plugin-live-patch.2.1.6.diff
+
cd /usr/local/src/vdr/
+
sudo make plugins && sudo make install
+
cd /usr/local/src/vdr/PLUGINS/src/live
+
mkdir -p /usr/local/share/vdr/plugins
+
cp -a live /usr/local/share/vdr/plugins
+
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr /usr/local/share/vdr
+
 
+
===runvdr anpassen===
+
 
+
sudo vi /usr/local/bin/runvdr
+
 
+
-P live
+
Dann VDR restarten. In der Plugin Konfiguration kann man dann den maximal im live plugin angezeiten Kanal enstellen, und welche username/password beim Zugriff auf das Live plugin über das Web erlaubt sind. Alles andere wird über die Weboberfläche gesteuert.
+
 
+
====Verwenden===
+
 
+
Um das Live plugin zu verwenden, einfach von einem Browser aus:
+
 
+
  http://<RPI-ip-address>:8008/
+
 
+
Default username ist "admin", password "live".
+
 
+
=Optional: Lirc - Raspberry Pi mit der Fernbedienung steuern=
+
Der Raspberry Pi bringt bereits am GPIO-Header Anschlussmöglichkeiten für einen IR-Empfänger mit. Mit etwas Bastelgeschick lässt sich ein passender IR-Empfänger für kleines Geld selber bauen. Wie ich das gemacht habe beschreibe ich hier.
+
 
+
==Materialliste für den IR-Empfänger==
+
'''IR-Empfänger:'''        TSOP4836 axial bedrahtet 36 kHz 950 nm oder TSOP4838 axial bedrahtet 38 kHz 950 nm oder TSOP 31236 (Reichelt)
+
'''Verbindungskabel:'''    RB-CB3-25 Bunt oder RB-CB3-50 Bunt (25cm Länge oder 50cm Länge)
+
'''Schrumpfschlauch:'''    Dünnwandiger Schrumpfschlauch Ø vor/nach Schrumpfung: 9 mm/3 mm Schrumpfrate 3:1 Schwarz
+
'''Schrumpfschlauch-Set:''' Nachfüllbeutel für Schrumpfschlauch-Set 2 : 1 40 mm Bunt 125 St.
+
 
+
==Fernbedienung==
+
Da ich noch eine alte TechnoTrend Fernbedienung habe verwende ich vorerst diese. Eine Alternative ist im Bereich [[Fernbedienung|Fernbedienungen]] zu finden. Z.B.
+
* [[Fernbedienung - OneForAll URC6440|OneForAll URC6440]]
+
 
+
==Raspberry Pi Schaltbild==
+
Das gezeigte Schaltbild ist von einem Raspberry Pi Modell B. Die PIN Belegung von einem Raspberry PI B+ ist identisch zu dem Vorgängermodell. Je nach Empfänger muss man die unterschiedlichen Anschlussbelegungen beachten. Immer im Datenblatt nachsehen.
+
 
+
[[Datei:RaspberryPI_Schaltbild.png]]
+
 
+
==IR-Empfänger zusammenbauen==
+
Ich habe drei Verbindungskabel für meinen IR-Empfänger verwendet (Rot, Schwarz und Lila). Auf einer Seite der Verbindungskabel habe ich die Stecker abgeschnitten und diese, wie auf dem obigen Schaltbild, am TSOP angelötet.
+
 
+
'''VS:'''  rotes Kabel
+
'''GND:''' schwarzes Kabel
+
'''Out:''' lila Kabel
+
 
+
Über die einzelnen Lötstellen habe ich Schrumpfschläuche gezogen und diese mit einem Heißluftfön verschmolzen (Feuerzeug geht auch). Wer nicht die einzelnen Verbindungskabel sehen möchte kann nochmals einen Schrumpfschlauch über die gesammten Verbindungskabel ziehen. Zum Schluss werden die Verbindungskabel wie auf dem obigen Schaltbild auf den Raspberry Pi aufgesteckt.
+
 
+
==Lirc Konfiguration==
+
===Module laden===
+
sudo modprobe lirc_rpi
+
 
+
===Module in den Autostart===
+
Damit die Module nach einem System start automatisch geladen werden müssen diese in die modules eingetragen werden.
+
 
+
sudo cp /etc/modules /etc/modules_orig
+
sudo vi /etc/modules
+
 
+
lirc_rpi
+
 
+
===Lirc device ermitteln===
+
ls -l /dev/lir*
+
 
+
crw-rw---T 1 root video 247, 0 Jan  4 12:23 /dev/lirc0
+
 
+
===Hardware konfiguration===
+
sudo cp /etc/lirc/hardware.conf /etc/lirc/hardware.conf_orig
+
sudo vi /etc/lirc/hardware.conf
+
 
+
# Run "lircd --driver=help" for a list of supported drivers.
+
DRIVER="default"
+
+
# usually /dev/lirc0 is the correct setting for systems using udev
+
DEVICE="/dev/lirc0"
+
MODULES="lirc_rpi"
+
 
+
===Neustarten des Lirc Daemon===
+
sudo /etc/init.d/lirc restart
+
 
+
==Erster Test vom IR-Empfänger==
+
===Kernelmodul laden===
+
sudo modprobe lirc_rpi
+
 
+
dmesg |grep lirc
+
+
lirc_dev: IR Remote Control driver registered, major 248
+
lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
+
lirc_rpi: auto-detected active low receiver on GPIO pin 18
+
lirc_rpi lirc_rpi.0: lirc_dev: driver lirc_rpi registered at minor = 0
+
lirc_rpi: driver registered!
+
 
+
Hier ist zu sehen das der IR-Empfänger am GPIO Pin 18 erkannt wird.
+
 
+
===Prüfen ob Signale der Fernbedienung ankommen===
+
sudo /etc/init.d/lirc stop
+
mode2 -d /dev/lirc0
+
 
+
Danach ein paar Tasten auf der Fernbedienung drücken, wenn alles funktionoiert sollte es so aussehen:
+
 
+
space 3260954
+
pulse 876
+
space 805
+
pulse 1718
+
space 1636
+
pulse 1722
+
space 1630
+
pulse 1724
+
space 1632
+
pulse 1714
+
space 820
+
pulse 864
+
space 795
+
pulse 882
+
space 793
+
pulse 886
+
space 799
+
pulse 874
+
space 1638
+
pulse 882
+
 
+
==Anlernen der Fernbedienung==
+
===Datei mit gültigen Lirc Namespaces erstellen===
+
sudo irrecord --list-namespace | grep KEY &> ~/lirc_strings.txt
+
 
+
Aus dieser Datei holt Ihr euch dann die passenden Namen für eure Tasten. Anzeigen der Datei:
+
 
+
sudo cat ~/lirc_strings.txt
+
 
+
===Anlernmodus starten===
+
sudo /etc/init.d/lirc stop
+
sudo irrecord -d /dev/lirc0 ~/lircd.conf
+
 
+
Nach starten dem Dialog auf der Konsole folgen.
+
 
+
irrecord -  application for recording IR-codes for usage with lirc
+
+
Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)
+
+
This program will record the signals from your remote control
+
and create a config file for lircd.
+
+
A proper config file for lircd is maybe the most vital part of this
+
package, so you should invest some time to create a working config
+
file. Although I put a good deal of effort in this program it is often
+
not possible to automatically recognize all features of a remote
+
control. Often short-comings of the receiver hardware make it nearly
+
impossible. If you have problems to create a config file READ THE
+
DOCUMENTATION of this package, especially section "Adding new remote
+
controls" for how to get help.
+
+
If there already is a remote control of the same brand available at
+
http://www.lirc.org/remotes/ you might also want to try using such a
+
remote as a template. The config files already contain all
+
parameters of the protocol used by remotes of a certain brand and
+
knowing these parameters makes the job of this program much
+
easier. There are also template files for the most common protocols
+
available in the remotes/generic/ directory of the source
+
distribution of this package. You can use a template files by
+
providing the path of the file as command line parameter.
+
+
Please send the finished config files to <lirc@bartelmus.de> so that I
+
can make them available to others. Don't forget to put all information
+
that you can get about the remote control in the header of the file.
+
+
Press RETURN to continue.
+
 
+
Now start pressing buttons on your remote control.
+
+
It is very important that you press many different buttons and hold them
+
down for approximately one second. Each button should generate at least one
+
dot but in no case more than ten dots of output.
+
Don't stop pressing buttons until two lines of dots (2x80) have been
+
generated.
+
+
Press RETURN now to start recording.
+
 
+
................................................................................
+
Found const length: 107332
+
Please keep on pressing buttons like described above.
+
................................................................................
+
RC-5 remote control found.
+
Found possible header: 876 828
+
No repeat code found.
+
Signals are biphase encoded.
+
Removed header.
+
Signal length is 13
+
 
+
Now enter the names for the buttons.
+
+
Please enter the name for the next button (press <ENTER> to finish recording)
+
KEY_POWER
+
+
Now hold down button "KEY_POWER".
+
+
Please enter the name for the next button (press <ENTER> to finish recording)
+
KEY_MUTE
+
+
Now hold down button "KEY_MUTE".
+
+
Please enter the name for the next button (press <ENTER> to finish recording)
+
...
+
...
+
...
+
 
+
==Lirc Konfiguration einspielen==
+
sudo cp /etc/lirc/lircd.conf /etc/lirc/lircd.conf_orig
+
sudo cp ~/lircd.conf /etc/lirc/lircd.conf
+
sudo /etc/init.d/lirc start
+
 
+
==Neustart vom System==
+
sudo init 6
+
 
+
Nach einem Neustart vom VDR wird automatisch das Anlernmenü für die Fernbedienung gestartet.
+
 
+
==Optional: VDR und Lirc Konfigurationen==
+
Die beiden untigen Konfigurationen werden durch den Anlernprozess von VDR und Lirc erstellt. Falls Ihr die gleiche Hardware verwendet könnt Ihr die Konfigurationen verwenden und somit den Anlernprozess umgehen.
+
 
+
===remote.conf===
+
Ihr könnt euch die remote.conf mittels VDR über das OSD-Anlernprogramm erstellen. Wenn Ihr euch die remote.conf manuell erstellen möchtet müssen die VDR-LIRC Kommandos mit den Tasten aus der obigen IRTrans Konfigurationsdatei zugeordnet werden. '''Achtung!''' Die Namen sind Case Sensitive.
+
 
+
  sudo vi /var/lib/vdr/remote.conf
+
 
+
LIRC.Up          KEY_UP
+
LIRC.Down        KEY_DOWN
+
LIRC.Menu        KEY_MENU
+
LIRC.Ok          KEY_OK
+
LIRC.Back        KEY_BACK
+
LIRC.Left        KEY_LEFT
+
LIRC.Right      KEY_RIGHT
+
LIRC.Red        KEY_RED
+
LIRC.Green      KEY_GREEN
+
LIRC.Yellow      KEY_YELLOW
+
LIRC.Blue        KEY_BLUE
+
LIRC.0          KEY_0
+
LIRC.1          KEY_1
+
LIRC.2          KEY_2
+
LIRC.3          KEY_3
+
LIRC.4          KEY_4
+
LIRC.5          KEY_5
+
LIRC.6          KEY_6
+
LIRC.7          KEY_7
+
LIRC.8          KEY_8
+
LIRC.9          KEY_9
+
LIRC.Play        KEY_PLAY
+
LIRC.Pause      KEY_PAUSE
+
LIRC.Stop        KEY_STOP
+
LIRC.Record      KEY_RECORD
+
LIRC.FastFwd    KEY_FASTFORWARD
+
LIRC.FastRew    KEY_REWIND
+
LIRC.Power      KEY_POWER
+
LIRC.Channel+    KEY_CHANNELUP
+
LIRC.Channel-    KEY_CHANNELDOWN
+
LIRC.Volume+    KEY_VOLUMEUP
+
LIRC.Volume-    KEY_VOLUMEDOWN
+
LIRC.Mute        KEY_MUTE
+
LIRC.Schedule    KEY_EPG
+
LIRC.Info        KEY_INFO
+
 
+
===lircd.conf===
+
sudo vi /etc/lirc/lircd.conf
+
 
+
# Please make this file available to others
+
# by sending it to <lirc@bartelmus.de>
+
#
+
# this config file was automatically generated
+
# using lirc-0.9.0-pre1(default) on Sun Aug 24 12:08:49 2014
+
#
+
# contributed by
+
#
+
# brand:                      /home/pi/lircd.conf
+
# model no. of remote control:
+
# devices being controlled by this remote:
+
#
+
+
begin remote
+
+
  name  /home/pi/lircd.conf
+
  bits          13
+
  flags RC5|CONST_LENGTH
+
  eps            30
+
  aeps          100
+
+
  one          867  810
+
  zero          867  810
+
  plead        884
+
  gap          107337
+
  toggle_bit_mask 0x800
+
+
      begin codes
+
          KEY_UP                  0x154D
+
          KEY_DOWN                0x1551
+
          KEY_MENU                0x1559
+
          KEY_OK                  0x154F
+
          KEY_BACK                0x1553
+
          KEY_LEFT                0x154E
+
          KEY_RIGHT                0x1550
+
          KEY_RED                  0x1554
+
          KEY_GREEN                0x1555
+
          KEY_YELLOW              0x1556
+
          KEY_BLUE                0x1557
+
          KEY_0                    0x154C
+
          KEY_1                    0x1543
+
          KEY_2                    0x1544
+
          KEY_3                    0x1545
+
          KEY_4                    0x1546
+
          KEY_5                    0x1547
+
          KEY_6                    0x1548
+
          KEY_7                    0x1549
+
          KEY_8                    0x154A
+
          KEY_9                    0x154B
+
          KEY_PLAY                0x157B
+
          KEY_PAUSE                0x157E
+
          KEY_STOP                0x157C
+
          KEY_RECORD              0x157A
+
          KEY_FASTFORWARD          0x157F
+
          KEY_REWIND              0x157D
+
          KEY_POWER                0x1541
+
          KEY_CHANNELUP            0x1563
+
          KEY_CHANNELDOWN          0x1564
+
          KEY_VOLUMEUP            0x1565
+
          KEY_VOLUMEDOWN          0x1566
+
          KEY_MUTE                0x1558
+
          KEY_EPG                  0x1562
+
          KEY_INFO                0x1552
+
      end codes
+
+
end remote
+
 
+
=SD Management=
+
==Backup mit rpi-clone==
+
 
+
Alle Linux Installationen auf dem RPI haben zumindestens eine DOS Partition und eine Linux Partition. Die DOS Partition wird vom Bootloader des RPI verwendet und enthält auch die MPEG2/VC1 Lizenzinformation.
+
 
+
Man sollte nicht einfach 'dd' verwenden um die komplette RPI SD zu kopieren: Selbst 'gleich-große' SD desselben Herstellers/Typs müssen nicht immer exakt dieselbe Anzahl von Sektoren haben. Außerdem kann es vorkommen, daß SD/USB Adapter weniger Sektoren zur Verfügung stellen als der MMC Adapter. Die raspian Installation nutzt aber die SD Karte bis auf den letzten Sektor. Wenn man solch eine Installation auf eine SD Karte mit nur einem Sektor weniger mit dd kopiert kann man davon nicht mehr booten.
+
 
+
Man kann mit einigem Aufwand die Linux Partition auf dem RPI etwas kleiner machen (ca. 95%) als die SD-Karte um einfach mit 'dd' zu kopieren, aber einfacher ist es, mit '''rpi-clone''' zu kopieren.
+
 
+
===Information===
+
 
+
https://github.com/billw2/rpi-clone
+
 
+
===Download===
+
 
+
cd /data/installfiles
+
wget https://github.com/billw2/rpi-clone/archive/master.zip
+
unzip -x master.zip
+
rm master.zip
+
cd rpi-clone-master
+
 
+
Damit man rpi-clone bei laufenden VDR client funktioniert, muß man sicherstellen, das in den RSYNC_OPTIONS "x" enthalten ist, ansonsten kopiert rpi-clone die NFS gemounteten Verzeichnisse des VDR servers:
+
 
+
Rpi-clone mit Editor der Wahl modifizieren:
+
 
+
RSYNC_OPTIONS="--force -rxltWDEgopt"
+
                          ^
+
===Installieren===
+
 
+
sudo cp rp-clone /usr/local/sbin
+
 
+
===Benutzen===
+
 
+
Zweite, ausreichend große SD Karte via USB Adapter an den RPI anschließen. Kontrollieren, daß die Karte erkannt wird:
+
 
+
ls /dev/sd*
+
/dev/sda  /dev/sda1
+
 
+
Wenn die Karte noch keine Kopie der VDR installation enthält:
+
 
+
sudo rpi-clone -f sda
+
 
+
Wenn man eine existierende Kopie aktualisieren will:
+
 
+
sudo rpi-clone sda
+
 
+
Dies geht schneller, weil nur inkrementell kopiert wird. Es wird aber nicht mehr die DOS-Partition kopiert. Wenn man dort Änderungen vorgenommen hat, dann muß man die leider händisch übertragen.
+
 
+
Leider braucht es in der jetzigen Version noch zwei fixes.
+
 
+
sudo mkdir /mnt/sda2
+
sudo mount /dev/sda2 /mnt/sda2
+
sudo chown pi /mnt/sda2/srv/vdr/video
+
sudo rm /mnt/sda2/var/swap
+
sudo umount /mnt/sda2
+
 
+
Nach dem kopieren RPI herunterfahren, Kopie in den SD Slot einlegen und verifizieren, daß die Kopie funktioniert.
+
 
+
==Clonen==
+
 
+
Wenn man ene Kopie der VDR Clientinstallation auf einem weiteren RPI laufen lassen will, dann muß man nach dem kopieren alle Parameter anpassen, die auf dem neuen RPI anders sein sollen wie auf dem ersten.
+
 
+
sudo mkdir /mnt/sda1 /mnt/sda2
+
sudo mount /dev/sda1 /mnt/sda1
+
sudo mount /dev/sda2 /mnt/sda2
+
 
+
* Hostname
+
** Editieren in /mnt/sda2/etc/hostname
+
* IP-adresse (wenn statisch vergeben)
+
** Editieren in /mnt/sda2/etc/network/interfaces
+
* MPEG/VC1 Lizenzen
+
* Editieren in /mnt/sda1/config.txt, aber wahrscheinlich einfacher nachdem man den neuen RPI gebootet hat, damit man einfach die Seriennummer auslesen kann.
+
 
+
Anschließend die Kopie unmounten:
+
 
+
  umount /mnt/sda1 /mnt/sda2
+
 
+
Und im zweiten RPI ausprobieren.
+
 
+
==Lebensdauer der SD verbessern==
+
 
+
Die Lebensdauer von SD-Karten ist vor allem durch die Anzahl an Schreibzyklen geprägt. Angeblich haben ältere 'gen mlc' flash 10k Schreibzyklen, neuere 'tlc' flash 1k Schreibzyklen pro Speicherstelle [1]. Es wird aber beim mehrfachen Beschreiben eines 'sektors' auf einer guten SD Karte nicht immer derselbe physikalische Speicherbereich auf der SD beschrieben, stattdessen versucht die "wear level management" software auf der SD Karte, die rechner-sichtbaren Sektoradressen dynamisch bei Schreibvorgängen so auf die physikalischen Adressen der SD abzubilden, daß alle Sektoren möglichst gleichmäßig und wenig beschrieben werden [2].
+
 
+
Dazu muß diese SD software wissen, welche Sektoren 'unbenutzt' sind, so daß diese Sektoren neu zugeordnet werden können.  Ext4 und andere neuere filesystem (nicht ext2, ext3) erlauben dem Speichermedium via "TRIM" Befehle mitzuteilen, welche Sektoren unbenutzt sind.
+
 
+
===Geht nicht ? Hdparm===
+
 
+
Leider ist nicht klar, ob dies mit dem SD karten treiber im RPI wirklich funktioniert und etwas bewirkt: Das Standardprogramm um festzustellen welche Features das Speichermedium unterstützt ist hdparm:
+
 
+
# Auf einer echten SSD:
+
sudo hdparm -I
+
hdparm -I /dev/sda | grep TRIM
+
          *    Data Set Management TRIM supported (limit 8 blocks)
+
          *    Deterministic read data after TRIM
+
 
+
Auf dem RPI SD MMC treiber (/dev/mmcblk0) scheint der Befehl nicht unterstützt zu sein und und wenn man eine SD via USB Adapter mounted, wurden bisher keine erfolgreiche Bestimmung von TRIM support gemeldet
+
(bitte hier ändern, wenn doch).
+
 
+
===Geht nicht ? Smartmontools===
+
 
+
Für SSD und "normalen" Festplatten gibt es die "smartmontools" mit denen man Statusinformationen von Festplatten auslesen kann ("smartctl -a <device>"). Leider scheint dies auf SD nicht zu funktionieren, und auch sonst sind auch keine Möglichkeiten bekannt um effektiv die verbleibende "Lebensdauer" einer SD-Karte zu bestimmen. [ Bitte dieses Wiki anpassen, wenn welche bekannt sind]. Deswegen sind die folgenden Optimierungen potentiell unnötig weil die SD Karte vielleicht auch ohne diese Verbesserungen länger lebt als der RPI oder es einfacher ist, einfach die SD-Karte alle paar Jahre gegen eine neue auszutauschen.
+
 
+
===Schreibzyklen durch Filesystemzugriffe minimieren===
+
 
+
Durch Editieren von /etc/fstab wie folgt:
+
 
+
# /etc/fstab
+
...
+
/dev/mmcblk0p2  /    ext4 defaults,noatime,nodiratime,discard,errors=remount-ro  0      1
+
 
+
Noatime bewirkt, dass man lesenden zugriff auf Dateien die "acces time" im Dateissytem nicht aktualisiert wird. Dies spart viele Schreibzugriffe auf die Metadaten im Dateisystem. Nodiratime bewirkt dasselbe für Lesezugriffe auf Verzeichnisorder. Discard bewirkt, dass das ext4 Dateisystem versucht dem Speichergerät über TRIM Befehle mitzuteilen, welche Sektoren frei sind.  Errors=remount-ro bewirkt daß im Fehlerfall keine weiteren Schreibzugriffe auf das Dateisystem passieren.
+
 
+
Nach diesen Änderungen rebooten.
+
 
+
Das Kommando '''mount''' zeigt an, mit welchen Optionen die Dateisysteme gemounted sind um die Resultate zu kontrollieren:
+
 
+
# mount
+
/dev/root on / type ext4 (rw,noatime,nodiratime,discard,data=ordered)
+
 
+
===Explizites trimming===
+
+
Um explizit TRIM Befehle an das Dateissytem abzusetzen kann '''fstrim''' verwendet werden.
+
 
+
# sudo fstrim -v /
+
/: 12345678 bytes were trimmed
+
 
+
Dabei wird angezeigt, wieviele Sektoren dem Speichermedium als frei gemeldet werden. Wenn die option 'discard' beim mounten gesetzt ist, dann werden anscheinend beim ersten mal '''fstrim''' alle beim booten freien Sektoren gemeldet, aber bei weiteren Aufrufen von '''fstrim''' keine weiteren, weil das Ext4 filesystem wegen der '''discard''' Option freiwerdende Sektoren immer automatisch meldet. Statt '''discard''' in /etc/fstab zu verwenden könnte man also auch periodisch '''fstrim''' über einen cron Befehl absetzen. Dies wird bei größeren SSDs auf Serversystem häufig als die performantere Lösung empfohlen, ist wahrscheinlich aber bei einem client-VDR eine unnötig komplexe und vernachlässigbare Optimierung gegenüber '''discard'''.
+
 
+
===Ermitteln der tatsächlichen Schreibzugriffe===
+
 
+
Um die tatsächliche Anzahl an Schreibzugriffen auf der SD zu ermitteln:
+
 
+
iostat
+
+
Linux 3.12.35+ (raspi)    07.01.2015      _armv6l_        (1 CPU)
+
+
avg-cpu:  %user  %nice %system %iowait  %steal  %idle
+
          3,28    2,93  14,16    0,54    0,00  79,10
+
+
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
+
mmcblk0          3,15        72,78      1897,40      83297    '''2171588'''
+
 
+
Die angezeigte Zahl sind die Schreibzugriffe seit Reboot. Angenommen auf einer 8GByte SD sind noch 2.5GByte frei und werden effektiv für einfaches dynamic wear-level management verwendet, dann sind bei 2.2GByte (2200000 KByte) pro Tag nach 3 Jahren 1000 Schreibzyklen pro Zelle erreicht.
+
 
+
2.5GByte * 1000 / 3 / 365 = 2.2 GByte/tag
+
 
+
===Ermitteln der Dateien===
+
 
+
Um zu ermitteln, welche Dateien aktiv beschrieben wurden am besten 48 Stunden nur normalen Betrieb fahren (also kein Debugging, installation, etc..):
+
 
+
find / -xdev -ctime 1 -print
+
 
+
Dies zeigt alle Dateien die in den letzten 24 Stunden verändert wurden.
+
 
+
Den größten Teil der Schreibzugriffe im client-VDR sind wahrscheinlich die log dateien in /var/log und die VDR EPG Datei /var/cache/vdr/epg.data.
+
 
+
Um die Menge der Schreibzugriffe durch syslog zu reduzieren gibt es eine Reihe von Möglichkeiten, die hier nur angedeutet werden:
+
 
+
Alle Syslog Ausgagen auf eine datei leiten, alle anderen Ausgaben unterdrücken. Damit wird jede Logmeldung nur einmal, statt in der dfaultkonfiguration mehrfach geschrieben. In /etc/rsyslogd.conf:
+
 
+
*.*        /var/log/syslog
+
# ... alle anderen Dateien auskommentieren
+
 
+
Syslog auf den VDR Server umleiten.
+
 
+
Syslog auf ein tmpfs lenken.
+
 
+
===Swap===
+
 
+
In der Standardinstallation des RPI wird eine Datei als swap angelegt, '''/var/swap'''. Wenn diese verwendet wird, dann erzeugt diese Schreibzyklen.  Dies sollte aber im VDR Clientbetrieb nie der Fall sein. Deswegen sollte es sich nicht lohnen, diese swap-Datei zu entfernen, da der Swapspace bei Installation/Entwicklung/Debugging evtl. gebraucht wird. Um zu kontrollieren ob der Swapspace nicht verwendet wird:
+
 
+
# swapon -s
+
Filename                                Type            Size    Used
+
Priority
+
/var/swap                              file            102396  '''0'''    -1
+
 
+
Der '''used''' Wert muß 0 sein, wenn seit Reboot nur normaler VDR Betrieb stattgefunden hat.
+
 
+
TODO: Beschreibung wie die Swapdatei entfernt wird (hoffentlich nicht notwendig).
+
 
+
===Journal===
+
 
+
Eine zweite Option zur weiteren Optimierung der Schreibzugriffe ist das 'journal' des Ext4 Dateisystems. Dieses journal sorgt dafür, daß das Dateissytem auch nach Absturz korrekt ist, und beim Rebooten kein langer Filesystemcheck durchgeführt werden muß. Gerade wenn man den RPI evtl.  durch den Benutzer unkontrolliert ausschalten lassen will sollte man das Journal nicht entfernen. Selbst wenn man weiß daß der RPI immer kontrolliert rebooted wird, werden nicht viele Schreibzyklen gespart: In der Standardinstallation (data=ordered für das Dateissytem) werden nur die Metadaten bei Schreibzugriffen doppelt, also durch das Journal geschrieben, nicht aber die eigentlichen Dateiinhalte, und diese stellen im VDR Clientbetrieb den überwiegenden Teil der Schreibzugriffe dar.
+
 
+
Wenn man das Journal vom Root-Dateissytem entfernen will muß man die SD als zusätzliche SD (eg: via USB) anschließen, da sich das Journal nur bei ungemounteten/ro-gemounteten Dateissytem entfernen läßt, und beides ist für das Root-Dateissytem nicht möglich. Beispiel:
+
 
+
# Mounte Ziel-SSD per USB, dann entferne journal
+
sudo tune2fs -O ^has_journal /dev/sda2
+
fsck /dev/sda2
+
 
+
==Links==
+
 
+
#[http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=20505]
+
#[http://en.wikipedia.org/wiki/Wear_leveling]
+
  
 
=Danksagungen=
 
=Danksagungen=
 
Hiermit möchte ich mich bei allen Bedanken die mir bei meinem Problemen, Fragen etc. weitergeholfen haben. Insbesondere bedanke ich mich bei:
 
Hiermit möchte ich mich bei allen Bedanken die mir bei meinem Problemen, Fragen etc. weitergeholfen haben. Insbesondere bedanke ich mich bei:
  
# [http://www.vdr-portal.de VDR-Portal]
+
# [[VDR Portal]]
 
# [http://www.vdr-portal.de/user/1096-kls/ kls]
 
# [http://www.vdr-portal.de/user/1096-kls/ kls]
 
# [http://www.vdr-portal.de/user/27471-johns/ johns]
 
# [http://www.vdr-portal.de/user/27471-johns/ johns]
Zeile 976: Zeile 147:
 
# [http://www.raspberrypi.org/ Webseite Raspberry Pi]
 
# [http://www.raspberrypi.org/ Webseite Raspberry Pi]
 
# [http://www.raspberrypi.org/phpBB3/ Raspberry Pi Forum]
 
# [http://www.raspberrypi.org/phpBB3/ Raspberry Pi Forum]
# [http://www.tvdr.de Video Disk Recorder]
+
# [http://www.e-tobi.net/blog/2015/09/13/vdr-pakete-fur-raspberrypi/ e-tobi Pakete für Raspberry Pi2]
# [ftp://ftp.tvdr.de/vdr/Developer/ VDR FTP-Server]
+
# [http://www.vdr-portal.de VDR Portal]
+
# [http://vdr.schmirler.de Plugins and Patches for VDR-to-VDR streaming]
+
# [http://www.putty.org Putty]
+
# [[Rpihddevice-plugin|Rpihddevice-plugin]]
+
# [[Streamdev-plugin| Streamdev Plugin]]
+
# [[Svdrpservice-plugin| Svdrpservice-plugin]]
+
# [[Remotetimers-plugin| Remotetimers-plugin]]
+
# [[Epgsync-plugin| Epgsync-plugin]]
+
  
=Kategorien=
+
[[Kategorie:RaspberryPi]]
[[Kategorie:Ubuntu]]
+
 
[[Kategorie:Installationsanleitungen]]
 
[[Kategorie:Installationsanleitungen]]
 
[[Kategorie:HDTV]]
 
[[Kategorie:HDTV]]
[[Kategorie:Beispielkonfigurationen]]
 
[[Kategorie:Budget-Only_Systeme]]
 

Aktuelle Version vom 20. Februar 2016, 19:48 Uhr

Inhaltsverzeichnis

[Bearbeiten] Einleitung

Diese Step-by-Step-Anleitung beschreibt die Installation und Konfiguration eines VDR Streaming Client Systems mittels Streamdev-plugin und einem Raspberry Pi. Es wird davon ausgegangen, dass es bereits einen VDR mit lauffähigem Streamdev-Server Plugin gibt. Für die Bildausgabe auf den TV kommt das Rpihddevice-plugin zum Einsatz.

Sept. 2015: e-tobi stellt Pakete für den PI2 bereit. Das vereinfacht die Installation, ist aber hier eigentlich OT. Link ist ganz unten.

[Bearbeiten] Modifikationen / Veränderungen

Bitte in folgende Liste Änderunge/Verbesserungen der Installation aufführen, so daß es einfach ist existierende Installationen zu verbessern mit den Deltas.

[Bearbeiten] Dez 2014 - Jan 2015

reufer:

te36:

  • Erklärung von Kriterien bei der Wahl der Fernbedienung.
  • Live plugin (9.1.2015)
  • Consolefont vergrößern (dpkg-reconfigure).
  • Sektion zum SD Management angefügt: Kopieren, Clonen, Lebensdauer verbessern.
  • Erklärungen verbessert (svdrpdevice, remote.conf für Keyboard, Umschalten von virtuellen Terminals, logging dateien, MPEG2 lizenzen)
  • Turbo mode am RPI aktivieren
  • Sektion für Regionalprogramme == "filters" auf streamdev um NDR etc. korrekt zu empfangen (und damit VDR nicht bei Widergabe "stottert", inklusive neuem patch für streamdev-client module
  • remotetimers menu Installation verbessert: Patches erklärt um den RPI als client zu betreiben, empfohlene Konfiguration
  • suspendoutput module eingebaut

sewn4:

  • Neuen Raspberry aufgebaut und Wiki dabei aktualisiert

fauthd:

  • Sysvinit (optional)
  • "Wake on LAN" zum Wecken des Servers (optional)
  • Vdr unter separatem Nutzer vdr (optional)
  • Editor nano statt vi (optional)
  • Einschalten mit Taster
  • Verschiedene Kleinigkeiten


[Bearbeiten] Erwünschte Anleitungen

  • Anleitung für Avahi, damit NFS automatisch eingehängt wird.

[Bearbeiten] Voraussetzungen

  • Ein vorhandenes VDR System mit lauffähigem Streamdev-Server Plugin (Beispiel VDR System)
  • Einen Raspberry Pi der als Streaming Client fungiert.
    • Die Installationsanleitung bezieht sich auf Modell B/B+ die beide eingebautes Ethernet und 512 MByte RAM haben.
    • Der B+ hat zwei USB Ports mehr als der B und eine bessere Stromversorgung. Evtl. funktioniert bei ihm auch das Overclocking (Turbo-Mode) besser.
    • Achtung: Gehäuse für B und B+ sind verschieden!
    • Achtung: Bei der Stromversorgung für den RPI darauf achten, daß das Netzteil mindestens 1.2 A liefert und das das USB Kabel gute Qualität hat. Lange USB Kabel (3 meter oder länger) haben häufig sehr dünne Stromleitungen und dann läuft der RPI instabil).
  • Einen Receiver/Fernseher mit HDMI Eingang. Der RPI hat auch einen Analog-Videoausgang, es ist aber nicht bekannt ob damit schon jemand die VDR Installation getestet hat (bitte hier eintragen wenn ja!).

[Bearbeiten] SD Karten

Der Raspberry benötigt eine, oder für Backup besser 2 SD Karten mit >= 8 GByte. Bei Installation von vielen Plugins und deren Abhängigkeiten oder Entwicklungsumgebungstools können leicht mehr als 60% einer 8GByte SD Karte gebraucht werden. Es empfiehlt sich auf jeden Fall Micro-SD zu kaufen mit SD Adapter. Der RPI B hat einen SD Karten Slot, der B+ einen Micro-SD Karten Slot.

Um SD Backup direkt am RPI zu machen braucht man noch einen SD/USB reader. Am besten noch ein USB Verlängerungskabel oder einen kleinen Micro-USB-Reader damit keiner der anderen USB Ports am RPI geblockt wird, wenn man da z.b. IR-Empfänger oder WLAN verwenden will.

[Bearbeiten] Welche Hardware wird benötigt?

[Bearbeiten] Hardwarebeispiel

Hier die Übersicht über meine Hardware:

VDR System VDR System
Raspberry Pi: Raspberry Pi Model B+ original "UK" mit Samsung Speicher 512MB
Gehäuse: Raspberry Pi B+ Gehäuse - belüftet, Farbe schwarz durchsichtiges Plexiglas
Netzteil: Steckernetzteil Micro-USB 5V 2000mA für Raspberry Pi
SD-Karte: SanDisk Class 10 Ultra Micro SDHC 32GB
Kupfer Kühlkörper: Cooltek BGA VGA-RAM Cooler - Maße (LxBxH): ca. 21x16x6.5 mm


[Bearbeiten] Wie schnell startet das System?

Vom einschalten bis zum TV Bild vergehen 25 Sekunden.

[Bearbeiten] Stromverbrauch

Siehe folgenedn link: [1]

[Bearbeiten] Welche Softwareversionen werden eingesetzt?

[Bearbeiten] Betriebssystem

  • Raspbian Wheezy vom 24.12.2014 (Kernel 3.12.35+ armv6l)

[Bearbeiten] Video Disc Recorder

  • VDR 2.1.6

[Bearbeiten] Video Disk Recorder Plugins

  • rpihddevice Plugin (aus dem GIT vom 30.12.2014) / 0.0.10
  • Streamdev Plugin (aus dem GIT vom 23.12.2014) / 0.6.1-git
  • svdrpservice Plugin 1.0.0
  • epgsync Plugin 1.0.1
  • remotetimers Plugin 1.0.1
  • suspendoutput Plugin 2.0.0
  • live plugin (0.3.0)

[Bearbeiten] Installation und Konfiguration Raspberry Pi Betriebssystem

Um den Raspberry Pi nutzen zu können ist es nötig ein Betriebssystem (OS) zu installieren. Als Betriebssystem verwende ich Raspbian Wheezy und dieses kann hier kostenfrei heruntergeladen werden. Nach dem herunterladen muss die Datei auf der Festplatte entpackt werden. Die darin enthaltene *.img Datei wird später benötigt. Für die Vorbereitungen verwende ich einen Windows Client. Es können aber auch Mac OS X oder Linux verwendet werden siehe hier.

[Bearbeiten] Danksagungen

Hiermit möchte ich mich bei allen Bedanken die mir bei meinem Problemen, Fragen etc. weitergeholfen haben. Insbesondere bedanke ich mich bei:

  1. VDR Portal
  2. kls
  3. johns
  4. fnu
  5. copperhead
  6. seahawk1986
  7. mini73
  8. TheChief
  9. UFO
  10. CKone
  11. utility
  12. louis
  13. reufer
  14. gda
  15. decembersoul
  16. tehlers
  17. vectra130
  18. argus

[Bearbeiten] Linksammlung

  1. Webseite Raspberry Pi
  2. Raspberry Pi Forum
  3. e-tobi Pakete für Raspberry Pi2