Eigenbau-HTPC mit Linux - die Qual der Wahl
Klassische TV-Receiver kommen für Unterhaltungsjunkies aus der Mode. Warum für Fernsehen, Fotos und Videos dedizierte Gerätschaften verwenden, wenn man doch alles in einem haben kann? Genau das habe ich mich 2007 auch gefragt und machte mich erstmals auf die Suche nach einer Lösung, mit der ich folgendes erledigen kann:
- TV-Signal über DVB-S empfangen
- Bilder betrachten
- Musik abspielen
- Videomaterial mit verschiedenen Auflösungen und Codecs abspielen (AVI, MPEG, MOV, MKV)
- Im Internet surfen
- Gerät über SSH und/oder eineWeb-Schnittstelle fernsteuern
Sicherlich gibt es für diese Features fertige Wunderboxen (z. B. Dreambox), die all das anbieten. Mich hat der recht hohe Preis dieser Geräte abgeschreckt und so entschied ich mich für ein Eigenbau-Projekt auf Linux-Basis.
2007 - Ubuntu und andere Mythen
Der erste HTPC bestand aus einem ausrangierten Midi-Tower mit verbautem Intel Celeron-Prozessor, 1 GB Arbeitsspeicher und einer übrig gebliebenen TechniSat DVB S- PCI-Karte. Das erstmals erschienene Mythbuntu 07.10 fand Platz auf einer 80 GB Festplatte. Mythbuntu ist eine speziell für VDR-Funktionalitäten angepasstes Ubuntu-Derivat. Neben MythTV ist ein abgespeckter XFCE-Desktop Bestandteil der Distribution, über Plugins lassen sich zusätzliche Funktionen, wie Web-Anwendungen oder Spiele nachrüsten.
Die Konfiguration der Fernsehkarte gestaltete sich leider deutlich komplexer, als anfänglich erwartet. Ich habe mich tagelang mit der Übersetzung fehlender Treiber oder Module beschäftigt, bevor das erste Bild über den angeschlossenen Fernseher flimmerte. Das Suchen von Sendern war mit noch nicht ausgereiften Kommandozeilenprogrammen noch deutlich zeitraubender und komplexer, als bei heutigen Softwarelösungen. Nach knapp einer Woche war das System lauffähig und der erste Kanal wurde angewählt - und enttäuschte. Die Umschaltzeiten waren sehr lang (~6 Sekunden) und es gab häufig Aussetzer und Hänger - komfortabel Fernsehen ist etwas anderes. Aus Ärger, dafür eine ganze Woche verschwendet zu haben, habe ich das Projekt erstmal begraben.
2008 - Ubuntu, MythTV und VDR
2008 habe ich mit einem vollwertigen Ubuntu und VDR bzw. MythTV einen zweiten Versuch gestartet. Doch auch hier hatte ich diverse Probleme, die letztendlich auf Hardware-Inkompatiblitäten zurückzuführen schienen. Ich wollte keinen Versuch unprobiert lassen und habe in eine neue Fernsehkarte, die in einer Whiteliste aufgeführt wurde, investiert. Hier hatte ich zwar keine Bildaussetzer mehr, wurde aber durch häufige Programmabstürze verärgert. Auch zahlreiche Tipps aus einschlägigen Foren halfen nicht und ich habe - mal wieder - das Projekt gefrustet begraben und aus Eigenschutz Fernsehkarte und Rechner verkauft, damit ich nicht wieder in die Versuchung komme, zu basteln.
2011 - neue Hardware, neues Glück?
2011 habe ich mein Netzwerk einer Stromsparkur unterzogen und viele Dinge zusammengelegt oder abgeschafft. In diesem Zuge wollte ich dem HTPC-Projekt wieder eine Chance geben und habe neue Hardware angeschafft:
- Thermaltake Element Q Mini-ITX Gehäuse mit 220 Watt-Netzteil
- Asus AT3IONT-I Mainboard mit Intel Atom D525 und Nvidia ION2
- 4 GB DDR3 Arbeitsspeicher
- LG GH22NS DVD-Laufwerk
- TechnoTrend TT connect S-2400 DVB-S USB-Fernsehkarte
Die Auswahl der Fernsehkarte wurde auch hier wieder auf Basis von Whitelisten getätigt, damit es nicht wieder ein böses Erwachen gibt. Die ersten Tests erfolgten wieder mit Mythbuntu und später mit einem vollwertigen Ubuntu in Kombination mit VDR und MythTV - leider mit ähnlichen Ergebnissen: Aussetzer, Hänger, Programmabstürze und lange Wartezeiten. Ich war gefrustet und suchte nach einer anderen Lösung - auch gerne auf Windows.
MediaPortal
Mit MediaPortal fand ich eine Zwischenlösung - es war (endlich) möglich, über die USB-Karte TV-Signale zu empfangen und Bilder zu betrachten. MediaPortal ist ein quelloffenes Media-Center, das 2004 mehr oder weniger aus dem XBMC-Projekt hervorging. Es beinhaltet Bilder-, DVD-, Musik- und Video-Playback und bietet PVR-Funktionalität. Der Funktionsumfang ist sehr beachtlich - ich benötigte eigentlich nur einen kleinen Teil der Portfolios und keine "eierlegende Wollmilchsau". Das MediaPortal-Frontend wird ausschließlich für Windows entwickelt, weswegen ich Windows 7 installierte. Trotz zahlreicher Anpassungen und Tweaks lief Windows 7 recht langsam auf dem Atom-Rechner. Das Betrachten von YouTube-Videos mit Firefox war meistens nervenraubend und nicht unterhaltsam. Das Einrichten von MediaPortal gestaltete sich recht einfach - binnen kurzer Zeit waren der benötigte SQL-Server, die Grundkomponenten und das Frontend einsatzfähig. Nach einer Stunde waren die favorisierten TV-Kanäle Bestandteil der Senderliste. MediaPortal arbeitete sehr stabil, aber leider gab es auch hier wieder einige Probleme. Abgesehen davon, dass die Umschaltzeiten wieder recht lang waren, bestand das altbekannte Codec-Problem. Mithilfe von Codec-Paketen ist MediaPortal in der Lage, HD-Videomaterial abzuspielen, was jedoch bei meinem Setup nicht immer klappte. Manchmal waren HD-Streams ohne Probleme abspielbar, manchmal nicht. Der Grund für dieses mysteriöse Verhalten hat sich mir bis heute nicht ergeben - auch das Konsultieren der Logs und zahlreiche Neuinstallationen behoben das Problem nicht. Diese zahlreichen kleinen Probleme und die lange Bootzeit des Geräts, die durch die Verwendung eines vollwertigen Betriebssystems hervorgingen, störten mich sehr.
Windows Media Center
Gefrustet von den bisherigen Erfahrungen, ließ ich mich auf einen Test mit dem bei Windows 7 mitgelieferten "Windows Media Center" ein - und war recht positiv überrascht. Bisherige Versionen des Windows Media Center's haben mich bisher nicht begeistern können - mit der neuen Version änderte sich das allerdings. Der Einrichtungsvorgang war sehr simpel, getreu dem Motto "Plug'n'Play". Das Media Center wurde gestartet, es erkannte, dass ein Fernseher und eine USB DVB-S-Karte angeschlossen wurden und kalibrierte daraufhin Anzeige und startete vollautomatisch einen Suchvorgang für Astra 19,2° Ost. Nach nicht einmal 20 Minuten war alles eingerichtet und funktionsbereit, ich war begeistert. Ein problemloses Fernsehen war hier möglich - jedoch wieder zum Preis hoher Umschaltzeiten, was mich letztendlich störte. Ein weiterer Kritikpunkt war die Wiedergabe von hochauflösendem Video-Material. Von Werk aus kennt das Windows Media Center keine MKV-Container - erst durch tagelanges Basteln mit zusätzlichen (kostenpflichtigen!) Codec-Paketen war es möglich, 1080p-Streams wiederzugeben. Nach einigen Wochen verabschiedete sich die Funktionalität nach dem Installation von Windows-Updates leider wieder. Es gelang mir auch nicht mehr, die Codecs wieder zu integrieren. Einige weitere Tage des Basteln kosteten viel Zeit und Nerven. Irgendwann war ich das ständige Basteln und Hoffen leid und griff zum herkömmlichen Satelliten-Receiver, der ohne Aussetzer und lange Umschaltzeiten seinen Dienst verrichtet, zurück. Die Motivation war nun definitiv auf dem Tiefpunkt.
2012 - Raspberry Pi, Sparflunder und Lösung aller Probleme?
Jeder wollte ihn 2012 haben - den Raspberry Pi. Der Raspberry Pi ist ein Kleinstrechner auf ARM-Basis, der folgende Hardware auf einem winzigen stromsparenden Board vereint:
- Broadcom BCM2835 ARM11 CPU mit 700 Mhz (Übertakten auf bis zu 1 Ghz ist ohne Garantieverlust möglich)
- 256 MB DDR RAM (spätere Modelle boten sogar 512 MB)
- Broadcom VideoCore IV-GPU mit OpenGL 2.0, Abspielen von 1080p Videomaterial ist problemlos möglich
- Fast Ethernet, HDMI und 2x USB 2.0
Das Ganze gibt es für zu einem Spottpreis von umgerechnet 30 Euro - ein wahres Schnäppchen. Mein Freund Dennis zählte zu einem der ersten, die den Kleinstrechner vorbestellten - aufgrund hoher Nachfrage waren mehrere Wochen bzw. Monate Wartezeit hinzunehmen. Er bestellte einen Raspberry und erhielt zwei - freundlicherweise vermachte er mir einen.
Raspbmc
Das Gerät wurde darauf hin mit Raspbmc bespielt. Raspbmc ist eine auf Raspian (eine speziell für den Raspberry Pi angepasste Debian-Variante) basierende Distribution, die das quelloffene Media-Center XBMC enthält. Raspbmc ist ein Projekt, welches von Sam Nazarko - einem Student aus Groß-Britannien - ins Leben gerufen wurde. Großteils pflegt auch er dieses Projekt im Alleingang, was - wie ich finde - sehr beachtlich ist. Ich war sehr überrascht, als ich sah, dass der Winzling in der Lage war, Full HD-Videos ohne Probleme und Ruckler abzuspielen. Mit meinem vermeintlich stärkeren HTPC bin ich nur sehr selten in den Genuss von 1080p-Videomaterial gekommen. Für Video-Playback scheinte diese Lösung also erstmal brauchbar zu sein. Zeit für weitere Tests in Kombination mit DVB-S. XBMC unterstützt unter anderem das Playback von Videostreams, die über einen Tvheadend-Server empfangen werden. Tvheadend ist ein quelloffener TV-Streaming-Server für DVB-S, -S2, -C und T. Die ersten Versionen von Raspbmc beinhalteten keinen Tvheadend-Server, sodass dieser erstmal auf eigene Hand übersetzt werden musste. Nach einer halben Stunde war dieser Server übersetzt und installiert. Über eine Web-Oberfläche kann Tvheadend komfortabel konfiguriert werden - so ist es beispielsweise möglich, die Fernsehkarte zu konfigurieren und nach Sendern zu suchen. Nach der Einbindung einer Firmware-Datei wurde meine USB-Fernsehkarte gleich erkannt und der Sendersuchlauf wurde gestartet. Die Suche fand sämtliche TV- und Radio-Kanäle, von denen es jetzt galt, die wichtigsten auszuwählen und als favorisierte Kanäle zu speichern. Die Web-Oberfläche von Tvheadend ist wirklich benutzerfreundlich gestaltet - mit Ausnahme der Service-/Kanal-Verwaltung. Diese Funktion ist fehlerbehaftet und unheimlich träge, wie ich feststellen musste. Da man diese Konfiguration aber in der Regel nur einmal vornimmt, ist das verschmerzbar. Die Seite, auf der Sender umbenannt und ausgewählt werden, "friert" alle 30 Sekunden ein und wird anschließend neu geladen. Man hat also nur wenige Sekunden Zeit, Sender auszuwählen, zur Senderliste hinzuzufügen und die Änderungen zu speichern. Über die Web-Oberfläche kann man über das Netzwerk auch auf die TV-Funktionalität zugreifen, sehr komfortabel. Leider funktionierte das Playback über den angeschlossenen Fernseher nur unzuverlässig. Das Bildsignal hatte häufige Aussetzer und nach einigen Umschaltungen hängte sich die gesamte Oberfläche auf. Abhilfe schaffte hier leider nur ein rabiater Neustart des gesamten System. Die Ursache war schnell im Syslog gefunden - der Arbeitsspeicher des Systems war zu klein und verursachte letztendlich einen Absturz. Auch das Verlagern des Tvheadend-Servers auf ein dediziertes System brachte keine Verbesserung des instabilen TV-Playbacks. Der Raspberry Pi wurde letztendlich nur für Video- und Musik-Wiedergabe verwendet, während ein einfacher Satelliten-Receiver zum täglichen Fernsehen herhalten musste. Nach rund einem halben Jahr wollte ich dem Setup nochmal eine Chance geben und erwarb kurzerhand einen zweiten Raspberry Pi - diesmal in der 512 MB-Fassung, die es zum Zeitpunkt meiner ersten Tests noch nicht gab. Das Speicherproblem war nun behoben - Anwendung und Betriebssystem gerieten nicht mehr in Speichernot, die letztendlich zum Absturz führte. Leider war ich immer noch nicht in der Lage, TV-Streams auf dem angeschlossenen Fernseher zu betrachten. Darüber hinaus habe ich immer wieder Probleme mit einigen Codecs gehabt - zahlreiche Videos ließen sich einfach nicht ruckelfrei genießen. Natürlich wäre es eine Möglichkeit gewesen, dieses Problem zu umgehen, indem man alle Videos auf ein einheitliches Containerformat bringt. Diese umständliche Arbeit wollte ich aber keineswegs erledigen (ich habe auch niemanden gefunden, dem ich diese Strafarbeit aufdrücken konnte 😛). Kurzum - das Setup taugte leider immer noch nicht für den täglichen Einsatz.
OpenELEC
Mit OpenELEC gibt es für den Raspberry Pi eine weitere Distribution, die XBMC in einer angepassten Version für den Kleinstrechner zur Verfügung stellt. Der Funktionsumfang zwischen den beiden Distributionen ist nahezu identisch - erwähnenswert ist jedoch, dass OpenELEC nicht auf Basis von Raspian erstellt wird. OpenELEC wird "from scratch" gebaut und hat daher keinen Paketmanager und auch keinen klassischen Update-Mechanismus. OpenELEC lief bei mir eine Nuance schneller und scheinte auch stabiler zu sein. Mittels Addon gibt es auch für OpenELEC die Möglichkeit, einen Tvheadend-Server zu betreiben. Die Konfiguration erfolgt hier analog zu Raspbmc - über die Weboberfläche werden Karte und Kanäle konfiguriert, bevor TV-Signal empfangen werden kann. Leider ist es mir nicht gelungen, die Konfiguration vorzunehmen. Die Web-Oberfläche war hier im Gegensatz zu Raspbmc bedeutend träger und instabiler. Häufige Abstürze der Weboberfläche und der häufige Verlust der Satelliten-Konfiguration waren der Grund für mich, auch OpenELEC nur für Video- und Musik-Playback zu verwenden. Wie bei Raspbmc auch, gab es hier mit einigen Codecs Probleme, weswegen zahlreiche Videos nicht betrachtet werden konnten.
OpenELEC for Nvidia ION
Auf der OpenELEC-Webseite entdeckte ich, dass es neben den Raspberry Pi-Images auch noch andere fertige Abbilder zur Verwendung gibt. Unteranderem gab es spezielle Varianten für die Nvidia ION-Architektur - wie praktisch! OpenELEC ist autark und sehr kompakt - es passt auf einen 1 GB großen USB-Speicherstick und liefert dabei den vollen XBMC-Funktionsumfang. Ich installierte OpenELEC auf einer herumliegenden, 8 GB großen SATA-SSD. Das System bootet binnen weniger Sekunden und schaltet sich auch genauso schnell auch wieder aus - so wie man es von einem Satelliten-Receiver auch erwarten würde, es gibt keine langen Wartezeiten. Meine ersten Tests drehten sich um die Wiedergabe zahlreicher Video-Formate inklusive Full HD-Material. Erstaunlicherweise habe ich erstmals jedes Video-Format ohne Probleme abspielen können - es gab keine Hänger oder Aussetzer. Auch das Einrichten und Verwenden von Tvheadend funktionierte reibungslos - TV-Kanäle lassen sich ohne Probleme über den angeschlossenen Fernseher betrachten. Das Ganze läuft jetzt nun schon seit einer Woche ohne größere, nennenswerte Probleme. Ich hoffe, daran ändert sich auch nichts. Das einzige Feature, das ich vermisse, ist die Verwendung der Fernbedienung des Fernsehers für XBMC. Unter Raspbmc konnte ich besagte Fernbedienung als Eingabegerät verwenden. Jetzt benötige ich eben eine Fernbedienung mehr, was aber auch nicht weiter stört.
Fazit
Mir ist nun klar, warum es so viele proprietäre Boxen (z. B. Dreambox) gibt, die die von mir gewünschten Features "in Hardware gegossen" anbieten und warum sie so gern gekauft werden. Natürlich kann man sich das auch ohne große Hardwarekosten auf Linux-Basis nachbauen, doch das hat einen hohen zeitlichen Preis. Rückblickend wäre es sicherlich wesentlich "günstiger" gewesen, eine Dreambox zu kaufen - binnen weniger Stunden hätte vermutlich alles auf Knopfdruck funktioniert. Letztendlich habe ich jetzt scheinbar die Lösung, nach der ich so lange gesucht habe. Ich hoffe, das bleibt auch noch möglichst lange so - nach den ganzen fehlgeschlagenen Versuchen ist meine "Bastel-Laune" verständlicherweise deutlich getrübt.