VDR mit MLD und dem Raspberry Pi 2

In diesem Artikel schildere ich den Aufbau eines VDRs auf Basis eines Raspberry Pi 2 und MLD.

Auswahl der Hardware

Dieser VDR – mittlerweile der siebte – soll den VDR 3 ablösen, der 2009 zusammengestellt wurde und mittlerweile in die Jahre gekommen ist und beispielsweise nicht HDTV tauglich ist. Das Gehäuse des alten VDRs ist zudem ein recht großes HTPC Gehäuse. Mit dem Erfolg des Rapberry Pi in den letzten Jahren ist so ein großes Gehäuse für diesen Zweck eigentlich nicht mehr notwendig. Die Idee ist daher, aufbauend auf dem Raspberry Pi durch entsprechende über USB angeschlossene Peripherie ein Nachfolgegerät zusammenzustellen. Nachteil dieses Ansatzes ist, dass man die Komponenten nicht mehr so einfach in ein gemeinsames Gehäuse packen kann. Da der Fernseher am vorgesehenen Standort über eine Befestigungsmöglichkeit für VESA-Wandhalterungen verfügt, kam die Idee auf, die komplette Hardware auf die Rückseite des Fernseher zu packen.

Als zentrale Steuereinheit kommt der Raspberry Pi 2, die zu diesem Zeitpunkt aktuellste Version des Raspberry Pi, zum Einsatz. Dazu ein passendes Netzteil mit 2A und eine SD-Karte mit 16GB und das zentrale System ist bereits komplett. Die SD-Karte kann auch problemlos deutlich kleiner sein, eine wirkliche Preisersparnis bringen kleinere SD-Karten bei einer Neuanschaffung jedoch nicht mehr.

Zum Speichern der Videoaufnahmen kommt eine externe Festplatte zum Einsatz. Da eine Stunde HD-Video locker mehrere Gigabyte Speicher benötigt, ist die SD-Karte des Systems nicht zum Speichern der Videos geeignet. Eine 3TB Festplatte bietet aktuell ein gutes Preis-Leistungsverhältnis. Für 90 Euro bekommt man sogar Unterstützung von USB 3.0, auch wenn der Raspberry Pi 2 damit nichts anfangen kann keine falsche Investition.

Da der VDR an eine Satellitenanlage angeschlossen wurde, habe ich mich für den DVB-S2 Receiver DVBSky S960 entschieden. Er wird von aktuellen Linux-System out-of-the Box unterstützt. Auch in der engeren Wahl war eine Technotrend TT-connect S2-4600 USB-Box dessen Linux-Support jedoch noch nicht ausgereift zu sein scheint. Mehr dazu im Abschnitt Probleme weiter unten in diesem Artikel.

Zusammen ergeben sich damit Kosten von ca. 200 Euro. Eine Tabelle aller Komponenten findet sich in meiner Bildergalerie.

Zusammenbau und Montage

Um alle Bauteile zusammenzuhalten bietet sich die Montage auf eine Holzplatte an, da ein spezielles Gehäuse auf der Rückseite des Fernsehers nicht unbedingt erforderlich ist. Im Abstand von 20cm wurden daher 6mm Bohrungen zur Befestigung an der Fernseherrückwand gebohrt und die Komponenten drumerhum auf der Holzplatte platziert. Bis auf das Gehäuse des Raspberry Pi weisen die Komponenten dabei keine spezielle Befestigungmöglichkeiten für eine Wandmontage auf. Die weiteren 5mm Bohrungen sind daher für Kabelbinder vorgesehen, die die Komponenten an Ort und Stelle fixieren sollen. Eine Aluschine sichert die Festplatte nochmal extra.

Installation von MLD

Softwareseitig entschied ich mich das erste mal für eine spezielle VDR Distribution anstatt auf einer “normalen” Linux-Distribution aufzubauen. MLD in der Version 5 hat dabei direkt beim Ausprobieren überzeugt, da das System sehr schnell lauffähig und an die eigenen Bedürfnisse angepasst war. Während der Installation können verschiedene Sets von Paketen installiert werden, die Auswahl fiel hier einfach auf rpi-default. Zusätzlich mussten noch die WLAN-Treiber nachinstalliert werden (Paket network-wireless-driver). Um später besondere Stromsparmechanismen nutzen zu können wurde außerdem das Paket hub-ctrl installiert. Dazu weiter unten mehr.

Nach dem Start der MLD Installation können fast alle Einstellungen sowohl über das OSD des VDR auf dem TV Bildschirm als auch über das Webinterface der Distribution verändert werden. So kann zum Beispiel die WLAN-Konfiguration dort bequem eingegeben werden. Ebenso kann dort die externe Festplatte als Massenspeicher für die Aufzeichnung von Videos ausgewählt und eingebunden werden.

Probleme

Im folgenden soll kurz auf einige Probleme eingegangen werden, mit denen ich konfrontiert war.

Automount der USB-Festplatte

Obwohl die extenerne Festplatte korrekt im MLD registriert war und MLD auch entsprechend einen Eintrag in der Datei /etc/fstab erstellt hatte, wurde die Datenpartition auf der Festplatte beim Systemstart nicht korrekt gestartet. Da der VDR deshalb sein Video-Verzeichnis nicht finden konnte, hing das System in einer Endlosschleife beim VDR-Start fest. Ein manuelles mount /mnt/data löste das Problem zwar für diesen Start und er VDR startete korrekt, beim nächsten Systemstart existierte dann jedoch wieder das gleiche Problem.

Trotz intensiver Suche konnte ich das Problem nicht näher eingrenzen, als Umgehungslösung wurde daher die Datei runvdr des VDR um ein mount /mnt/data ergänzt.

Kein Signal mit Technotrend DVB-Empfänger

Vor dem jetzigen DVB-Empfänger DVBSky S960 sollte eigentlich ein Technotrend TT-connect S2-4600 seinen Dienst tun. Auch dieser wurde vom Linux Kernel der MLD Distribution und deshalb auch dem VDR zwar einwandfrei erkannt, jedoch erschien beim Start des Systems weder Bild noch Ton. Erst nach einigen Kanalwechseln erschien plötzlich ein Bild und das System war normal und ohne Probleme nutzbar.

Auch hier konnte das Problem nicht mit letzter Sicherheit eingegrenzt werden, ich gehe jedoch von einem Bug im Treiber aus, der möglicherweise bereits behoben, jedoch noch nicht in der MLD Distribution enthalten war. Da sich das patchen des dvb MLD-Pakets als nicht trivial herausstellte, war der Wechsel des DVB-Empfängers letztlich die pragmatischere Wahl.

Fernbedienung

Der erste Versuch, den im DVBSky DVB-Empfänger bereits enthaltenen IR-Empfänger zu verwenden scheiterte. Der Empfänger wurde zwar korrekt vom System erkannt und die notwendigen Kernelmodule geladen. Auch konnte das System mit der beiligenden Fernbedienung gesteuert werden, nachdem manuell eine passende Mapping-Tabelle (ir-keytable) für die Fernbedienung erzeugt wurde. Jedoch kam es immer wieder zu doppelten Tastendrucken obwohl die Fernbedienungstaste nur kurz und einmal betätigt wurde. Das ganze lies sich per irw bequem auf der Kommandozeile beobachten. So machte das ganze keinen Spaß.

Im zweiten Versuch habe ich daher auf die “klassische” Art per Infrarot-Empfänger am Raspberry Pi GPIO zurückgegriffen, der mit der Funktion “Tasten entprellen” des MLD Webinterface (diese Option installiert das Paket lircd2uinput) problemlos funktionierte.

Verwendung der Logitech Harmony Universalfernbedienung

Nachdem die Fernbedienung prinzipiell funktionierte sollte das System jedoch nicht mit dem mitgelieferten Fernbedienung, sondern mit einer Logitech Harmony Universalfernbedienung steuerbar sein. Für diese Fernbedienung gibt es in dank dem Logitech Support eine spezielle “VDR-Konfiguration” unter dem Hersteller “KLS” und dem Gerätenamen “VDR 1.6”. Details dazu, inklusive einer passenden LIRC-Konfiguration finden sich auf der entsprechenden Seite im VDR-Wiki.

Im Unterschied zum Artikel mussten die einzelnen Tasten jedoch umbenannt werden, da jede Taste einen definierten Namen aufweisen muss. Aus Left wird so zum Beispiel KEY_LEFT.

Stromsparmodus

An dieser Stelle werde ich in nächster Zeit noch Dokumentieren, wie der Stromverbrauch des Systems gesenkt werden kann, wenn der VDR nicht aktiv gebraucht wird.