Nachdem das OS und die Treiber installiert sind, geht es nun um die eigentliche Software, die den HTPC zu einem solchen macht. Insgesamt sind dazu im Großen und Ganzen drei voneinander getrennte Softwarepakete notwendig:
1. XBMC
XBMC (siehe Screenshot) ist quasi die Oberfläche und Hauptapplikation, die auf dem HTPC läuft. Die Bedienung erfolgt alternativ per Tastatur, Maus (in meinem Falle mit der Bluetoothminitastur beides), Fernbedienung oder z.B. per Android-App (dazu später mehr). Die Installation ist auch kein großes Problem, es gibt allerdings (unter Gentoo) einige kleine Fallstricke. Diese beziehen sich primär auf Gentoo, bei anderen Distributionen mag das anders sein:
- Ursprünglich lief XBMC bei mir unter LXDE , die Performance war aber unbefriedigend – und es war auch gar nicht notwendig: XBMC kann auch direkt von xinit gestartet werden, ich habe das Init-Skript von Gentoo dazu genommen. Funktioniert tadellos
- Hardwarebeschleunigung! Ich hatte zwar XBMC mit dem notwendigen Useflag (vaaoi für Intel-Grafikkarten) compiliert, aber das hat nichts genutzt – XBMC nutzt eine Bibliothek (ffmpeg) zum Dekodieren der Videos, und diese hatte natürlich das vaapi-Useflag nicht gesetzt. Konsequenz: 100% CPU-Last und sehr ruckelige Wiedergabe bei HD-Videos. Nach globalen Setzen des vaapi-Useflags und Neucompilieren ist die CPU-Leistung drastisch reduziert worden – auf maximal 11% 🙂
Ich habe das so eingerichtet, dass XBMC unter dem nichtprivilegierten Benutzer „avuser“ läuft, ditto die anderen beiden Server. Ansonsten ist XBMC sehr vielfältig und recht intuitiv zu bedienen – es ist schließlich auf Fernbedienung optimiert worden. Zu Beispielen komme ich in einem späteren Artikel.
2. TVHeadend

TVHeadend für die TV-Anbindung zuständig. TVHeadend bietet – neben LiveTV – EPG, Aufnahmen und deren Verwaltung, etc. TVHeadend ist recht intelligent und flexibel – und dadurch sehr mächtig, aber dennoch einfach (u.A. per Weboberfläche) zu bedienen – hier nur ein kleiner Ausschnitt:
- TVHeadend korrigiert geplante Aufnahmen selbstständig, sofern aktualisierte EPG-Daten zur Verfügung stehen. Wenn also eine Sendung (z.B. durch Überziehen) nach hinten (oder nach vorne) verschoben wird, bemerkt TVHeadend dies
- „Automatische Aufnahmen“ – hier lassen sich fast nach beliebigen Kriterien Aufnahmen vorprogrammieren, so wäre es z.B. problemlos möglich schon mal an Weihnachten zu denken: Titel „Drei Haselnüsse für Aschenbrödel“, Channel Tag (Kanäle lassen sich gruppieren) „Öffentlich-rechtlich“ – sobald dann um Weihnachten herum der Film kommt, wird er automatisch aufgenommen, Auch ganz praktisch für Serienaufnahmen („Jeden Mittwoch gegen 20h15 auf TNT HD, Titel Hell on Wheels“).
Ich setze die aktuelle Version aus dem git-Repository (Gentoo-speak: tvheadend-9999) ein, diese ist aktuell 3.5.245 und hat gegenüber der „normalen“ Version im Tree (3.2) einige Vorteile – unter anderem werden die DVB-C-Sticks wesentlich besser ausgenutzt und es lassen sich (sofern die Kanäle auf dem gleichen Multiplexer liegen) so pro Stick bis zu 4 Aufnahmen parallel durchführen. Und 3.2 kann noch kein IPV6, erst ab Version 3.4.
2.1 Installation
Ist eigentlich erstaunlich problemlos – es muss nichts großartiges bedacht werden – außer dass ich in dem Falle tvheadend ebenfalls als Benutzer „avuser“ laufen lasse (/etc/conf.d/tvheadend).
2.2 Konfiguration
Damit TVHeadend die Kanäle/Multiplexe/Services im Kabel findet, braucht es ein paar Hilfen, welche Frequenzen es scannen soll. Dafür benutzt es die Daten aus dem linuxtv-dvb-apps-Paket, dort gibt es diverse Einträge für DVB-T, -C, und -S. Diese sind jedoch – wie ich feststellen musste – hoffnungsvoll veraltert, so dass TVHeadend damit nicht allzuviel anfangen kann.
Die Lösung: mittels des Tools w_scan einen der Receiver durchscannen lassen: w_scan -f c .c DE -x >/usr/share/dvb/dvb-c/de-KabelDeutschland
Nach ca. 20-30 Minuten hat das Programm dann alles gefunden und TVHeadend kann nun damit etwas anfangen:
2.2.1 Adapter
Pro Adapter („Configuration“) das folgende durchführen:
- „Add DVB Network by Location“ anklicken, dann die gerade generierte Datei („de-KabelDeutschland“) auswählen und wiederum warten, bis alle Multiplexe/Services gefunden wurden (kann auch etliche Minuten dauern).
- Danach „Map DVB Services to Channels…“ anklicken und
- Das langweiligste/ermüdendste: Unter „Services“ Feinarbeit durchführen (siehe Bildschirmfoto): Hier werden die „Service Names“ („AXN HD“) zu „Channel Names“ („AXN HD“) gemapped. Klingt nach überflüssiger Arbeit – und ist es in dem Falle auch – hat aber u.a. den Hintergrund, dass verschiedene Receiver (z.B. ein DVB-C, ein DVB-T und ein DVB-S) verschiedene Servicebezeichnungen haben. Durch die Zuordnung weiss dann TVHeadend, welcher Kanal welchem Service auf welchem Receiver zugeordnet ist. Hier habe ich auch die mich nicht betreffenden Services (Analoges Kabel, Sky..) deaktiviert. Hinweis: hier mögliches häufig speichern – wenn der Adapter nämlich einen neuen Service entdeckt oder aktualisert, sind sämtliche Änderungen nach dem letzten Speichern flöten, das hat mich auch einige Nerven gekostet.
Zum Glück geht die Zurordnung Service/Channel – wenn sie einmal durchgeführt wurde – abei den nächsten Adaptern schneller, weil es dann in den Feldern Autovervollständigung gibt.

2.3 XBMC und TVHeadend
Leider funktioniert die Koppelung zwischen XBMC und TVHeadend unter Gentoo nicht ganz out-of-the-box – die entsprechenden PVR-Plugins fehlen nämlich leider.
Die Nachinstallation ist aber kein großer Akt, hier ist eine Anleitung zum Bauen der Plugins – in ein entsprechendes Verzeichnis gehen und:
git clone https://github.com/fetzerch/xbmc-pvr-addons.git
cd xbmc-pvr-addons/
git checkout frodo
./bootstrap
./configure
make zip
ausführen.
Danach das pvr-hts-Zip in XBMC zufügen und konfigurieren. Danach funktioniert LiveTV, siehe den Screenshot der Kanalliste:

3. OSCam
OSCam dient zum Ansprechen der SmartCard und der Entschlüsselung der PayTV-Sender (bzw. der Grundverschlüsselung).. Es gibt leider kein vernünftiges Paket für Gentoo – ich weiss nicht mehr genau, welches ebuild ich wo auch immer aufgetrieben habe – auch in Overlays sind eher unbefriedigende ebuilds. Eventuell ist es (Gentoo) einfacher, das manuell zu compilieren, hier ist eine gute Anleitung (inklusive init-Skript).. Neben den zutreffenden Reader-Optionen (u.a. VideoGuard bei Kabel Deutschland, am einfachsten: alles auswählen) ist bei meiner Hardware das „Phoenix“-Protokoll wichtig (auch im Zweifelsfall ruhig alles auswählen).
Für die Konfiguration gibt es auch auf diversen Seiten und Foren Beispiele für die Dateien oscam.conf, oscam.server und oscam.user, so dass ich es mir mal erspare den Inhalt dieser Konfigurationsfiles hier ‚reinzustellen 🙂 Ist aber wirklich recht einfach und tut es dann auch tadellos.
3.1 OSCam und TVHeadend
Die Einbindung von OSCam in TVHeadend ist recht einfach. Abhängig von der Version unter „CSA“ den lokalen OSCam-Server einstellen, fertig (siehe Screenshot)

Fazit
Die Installation war ein wenig fummlig und erforderte ein wenig Zeit und Geduld (inklusive Experimentieren), aber wenn es einmal eingerichtet ist, läuft es sauber und tadellos. Im nächsten Teil gehe ich auf die Steuerung von XBMC und TVHeadend ein.
Hi, danke für die tolle Beschreibung. Du schreibst unter „2.2 Konfiguration“ man soll mit dem tool w_scan einmal durchscannen Lassen und unter „/usr/share/dvb/dvb-c/“ die erstellte Datei speichern. Gibt es dieses Verzeichnis nur bei Gentoo, oder muss ich es erst erstellen? Ich benutze Openelec und da gibt es das Verzeichnis nicht. Mein Problem ist, das es mein Kabelanbieter in der Liste von tvheadend nicht gibt. Oder gibt es einen anderen Weg wie ich nicht vorhandene Kabelanbieter hinzufügen kann?
Vielen Dank für die Mühe.
Hallo Willbo, gute Frage – ich kann nur von Gentoo ausgehen. Dort gab es das Verzeichnis schon, aber mit vollkommen veralterten Daten, deshalb musste ich das Tool bemühen.
Ok, danke für die Antwort. Ich habe erstmal per w_scan gescannt und die Muxes per Hand hinzugefügt. Kannst du vielleicht meinen Namen anpassen? Das war die blöde autovervollständigung 😉