HTPC mit Debian

Aus DebianforumWiki

Wechseln zu: Navigation, Suche
WikiMultimedia und Spiele ‹ HTPC mit Debian

Baustelle.png Baustelle: Dieser Artikel ist eine Baustelle. Das heißt, jemand hat sich dieses Artikels angenommen und überarbeitet ihn gerade.

Getestet.png Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.

Als HTPC (Home Theather Personal Computer) bezeichnet man allerwelts einen PC der möglicht das komplette Audio Video Equipment im heimischen Wohnzimmer ersetzt.
HD-TV inklusive Recorder, DVD/CD-Player sowie auch Gaming sollte damit alles in einem leisen Wohnzimmertauglichen HTPC-Gehäuse integriert werden.
Wie das geht möchte ich in dieser Anleitung erklären.

Inhaltsverzeichnis

Stromverbrauch und Mainboard

Es ist möglich, einen HDTV tauglichen HTPC zu bauen, der mit einem Stromverbrauch von ca 60Watt und darunter! zu betreiben ist, hier wird es aber sehr schwer bis unmöglich darauf auch Spiele laufen zu lassen.
Als Beispiel sei hier z.B Nvidias ION-Plattformen genannt. Dies sind Mini-ITX Mainboards mit fest integrierter Atom-CPU und GeForce 9400 GPU.
Dies in Verbindung mit einem Low-Profile Gehäuse, einer Wandlerplatine ala PICO-PSU sowie einem externen Netzteil sind dafür schonmal gute Ansatzpunkte.
Soll es ein "Vollwertiger" HTPC mit Spieletauglichkeit werden, sollte man sich bei der Hardwareauswahl auch vorranig an dieser orientieren.
Einzig bei der Auswahl der Grafikkarte sollte man hier auf Nvidia setzten, da diese die notwendige Funktion VDPAU für HDTV mitbringt.

Gehäuse mit LCD oder VFD

Am allerwichtigsten ist natürlich erstmal ein gutes Gehäuse mit einem kleinen Display für Informationen wie Sendernahme,Titel usw.
Wenn man im Internet nach "HTPC Gehäuse" sucht wird man feststellen, das es da schon doch eine gute Auswahl gibt.


Ein wichtiges Kriterium ist die Art des Displays.
Da gibt es zum einen das VFD (Vakuum-Fluoreszenz-Display)
Zum anderen das warscheinlich vom Namen her bekanntere LCD (Liquid-Crystal-Display)
Die Vor und Nachteile dieser beiden Varianten aus Sicht des "draufschauenden" sind schnell zu sehen. VFDs haben einen schwarzen Hintergrund wobei nur die Segmenete leuchten und nur Schrift, sowie Symbole anzeigen können ..... sind aber dabei absolut Blickwinkelstabil. LCDs haben eine Hintergrundbeleuchtung und sorgen so also immer für eine wenig mehr Licht im Raum, haben aber widerum kaum Begrenzungen der Anzeigemöglichkeiten,da hier das ganze Feld individuell genutzt werden kann. Leider sind sie nicht sehr Blickwinkelstabil und verfärben sich schnell.
Hier sollte man am besten vor dem Erwerb eines Gehäuses mal direkt bei einem, Händler vorbeischauen und sich die Sache mal aus der Nähe betrachten, da leider sämtliche Bilder vom allermeist verbauten Imon-LCD eine wenig "geschönt" sind.
Beide Varianten kommen je nach Gehäusetyp allermeist mit einem Bedienfeld und Drehknöpfen daher, wie es man vom HiFi-Garäten kennt.
Eine recht neue dritte Variante sind Touch-Screens, welche auch derzeit die Preisintensivste Variante darstellen. 500€ und aufwärts sind hier keine Besonderheit
Leider ist die Linux-Unterstützung solcher Gehäuse derzeit noch nicht sehr fortgeschritten, weshalb ich hier auch nicht weiter darauf eingehen möchte
Derzeit gibt es eigentlich je nur eine Variante jeden Typs.(VFD oder LCD) Beide Typen basieren auf Soundgraphs IMON-Displays je nach dem mit unterschiedlichen Bedienelementen von den Gehäuseherstellern angepasst.
Bekannte Hersteller solcher HTPC-Gehäuse in alphabetischer Reihenfolge.

  • Antec (verbaut vorrangig LCD)
  • AOpen (verbaut LCD)
  • Chieftec (verbaut nur schönes ;) VFD)
  • OriginAE(verbaute eine weile eigene VFDs und nun auch das überall eingesetzte VFD)
  • Silverstone (verbaut beides)
  • Thermaltake (verbaut vorrangig LCD)
  • Zalman (verbaute in älteren Geräten VFD und in neueren nur LCD, haben aber ein Umfangreiches Bedienfeld

Grafikkarten für VDPAU

Wie weiter oben schon angesprochen ist VDPAU eine Technik bei der Videodecoding über die Grafikkarte erledigt, und damit die CPU massiv entlastet wird. Auch zb. bei Verabeitung von DVB-S2 HDTV-Streams wird diese Technik angewandt.
Für Linux sind da die Grafikkarten von Nvidia, wo VDPAU auch entwickelt wurde, derzeit also die 1. Wahl.
Andere Herstellen arbeiten aber auch an gleichartigen Techniken und werden da bestimmt auch bald Alternatien in petto haben. Bei Erwerb einer solcher VDPAU-tauglichen Grafikkarte muß man lediglich auf den Schriftzug "PureVideoHD" achten. Dies gibt an, das diese Grafikkarte diese Technik unterstützt. Ab GeForce 9400 unterstützen die Karten diese Technik. Dabei muß man aber beachten, das die 9400er Serie noch etwas schwachbrüstig daher kommt und somit leider ein paar Engpässe beim Scaling in verbindung mit Deinterlacing hat. Das heißt im klartext, das die Ausgabe hier am besten in 720p oder 1080p funktioniert. 1080i (interlaced) ist zu rechenintensiv und es kann eben in Verbindung mit manchen Deinterlacertechniken zu ruckelnden Bildern kommen.
Für HTPC's mit mittelmäßiger Spieletauglichkeit kann man hier eine Geforce GT240 mit 1Gb/GDDR5! empfehlen.

Die richtige TV Karte

DVB-C DVB-S2 oder DVB-T?
DVB-C ist die Bezeichnung für digitales Kabel-TV
DVB-S2 bezeichnet selbiges per Sat Und DVB-T ist die Terestrische Variante des Digitalen TV's Diese Seite LinuxTV beschäftigt sich mit diesem Thema und hält hier eine Übersicht über supportete DVB Karten bereit.
Heißt also, das für eine als "supported" bezeichnete Karte, die Treiber im Linuxkernel integriert sind und also "Out of the Box" funktionieren sollten
Für die Karten im experimental Bereich gibt es liplianin.
Dort arbeitet man kräftig an den Treibern, die dann irgendwann mal in's offizielle V4L integriert werden, bzw. gibt es da auch Treiber, die eventuell auch aus rechtlichen Gründen nicht ins offizielle V4L Paket integriert werden können.
Um diese zu nutzen muß man sich "mercurial" sowie eine Buildumgebung installieren da diese zwar sehr einfach aber trotzdem vor Ort gebaut werden müssen.

Der VDR

VDR ist eine Software die als Backend die Arbeit eines "Händlers" für TV/Radio Signale übernimmt. Durch die Funktion als Backend ist es möglich die Ausgabe des Bildes/Tones über mehrere beliebige Frontends zu gestalten.

Die Frontends

  • Xine-UI .. der bestimmt jedem bekannte Xine Player
  • Xineliboutput basiert auf Xine und ist die spartanichste aber DVB-Reciever naheste Variante der Ausgabe. Einfach nur eine Oberfläche wie bei einem DVB-Reciever bzw. TV. (welche aber auch durch klasse Skins aufgepeppt werden kann und dann schon bald so edel aussieht wie xbmc. (nächster Eintrag)

Sozusagen spielt der VDR hier als Mediacenter die erste Geige und kann dann durch Plugins erweitert werden um einfach so gut wie alles über den VDR laufen zu lassen.

  • xbmc Ist eine Software die mal für die Xbox 1 geschrieben wurden und seit langem aber auch als Mediacenter auf dem PC eine sehr gute Entwicklung hinter sich hat. Sogar eine Auszeichnung konnten die Leute schon einheimsen.

Hier wird der xbmc also als Frontend für den VDR genutzt während xbmc dabei die erste Geige als Mediacenter spielt, und den VDR benutzt um TV zu integrieren.

  • enna ist wie xbmc ebenso ein Mediacenter das sich für die TV Funktion beim VDR bedient. Derzeit ist diese Funktion aber noch in Entwicklung.


Die Installation

Nun also erstmal die grundlegende Installation des jeweiligen Stable


TIP: Ich empfehle immer nur eine grundlegendste Basis zu installieren. Das heißt, ich wähle bei der Installation alle Tasks ab.

Dann, nach dem 1.Reboot sollte die erste Handlung die Einrichtung des Default-Releases in der der apt/apt.conf.d. sein. Hierzu erstelle ich also erstmal die Datei "02defaultrelease" in /etc/apt/apt.conf.d mit folgendem Inhalt

APT::Default-Release "Name des aktuellen Stable";

Da der HD-TV taugliche VDR zwar schon absolut "produktiv" benutzbar ist, aber noch nicht offiziell als Stabil released wurde, gibt es diesen derzeit auch noch nicht im Standard-Repo und muß daher vom Maintainer direkt bezogen werden. Des weiteren benötigt man noch die Backports sowie das Debian-Multimedia Repository

deb http://e-tobi.net/vdr-experimental Name_des_aktuellen_Stable backports base addons vdr-multipatch
deb http://debian-mirrors.sdinet.de/debian-multimedia Name_des_aktuellen_Stable main
deb-src http://debian-mirrors.sdinet.de/debian-multimedia Name_des_aktuellen_Stable main

Für Debian-Multimedia sollte gibt es eine Übersicht über die Repository-Adressen , hier sollte man sich eventuell noch eine passendere raussuchen

Ich lege mir dazu jeweile eine sources.list unter /etc/apt/source.list.d an, aber man kann das auch in die Hauptliste in /etc/apt/sources.list eintragen

Kernel


Je nachdem welches DVB-Device man sich zugelegt hat, geht es dann eventuell NUN mit dem Austausch des Stable-Standard Kernel gegen den neuesten Kernel vom Backports-Team bzw selbst kompiliert vom offiziellen Repository des Linux-Kernels. Auch wenn man für das DVB-Device eine neues V4L oder liplianin Treiber Paket benötigt, sollte das jetzt tun. Wichtig auch hier, sich beim Eigenbau auch gleich die passsenden Headers bauen zu lassen, da diese dann später zb. für den Nvidia-Treiber benötigt werden

X und Co

Tip zum Desktop

Prinzipiell ist der Desktop eigentlich relativ egal, wenn man aber einen Start des Systems haben möchte, bei dem man eigentlich garnicht mehr merkt, das hier ein PC und kein DVB-Reciever am Fernseher steckt, dann ist es förderlich, sich hier für einen WM wie Fluxbox oder Openbox in Verbindung mit NoDM zu entscheiden.



Da ja der Nvidia Treiber benutzt werden MUSS, braucht es also auch keinen anderen Treiber, sondern nur das Paket "xserver-xorg-video-dummy" , die zum Kernel passenden "linux-headers-(uname -r)" sowie "build-essential" und bei einem 64bit System noch die "ia32-libs" sowie eventuell die "ia-32-libs-gtk" für das nvidia-settings Tool und andere.
Weiterhin "nodm" und den jeweiligen WM wie z.B.Fluxbox oder Openbox.
Diesen also nun mit dem bevorzugtem Tool (apt-get/aptitude) einspielen


Anbei noch der Hinweis, immermal wieder die Empfehlungn genau zu "studieren". Einiges was eigentlich wichtig ist, und eventuell doch eher in die Kategorie der Abhänigkeiten sollte, wird als Empfehlung eingestuft, und damit nicht installiert.
Tip: xfonts-100dpi und eventuell noch die scalable.


Am Ende der Installation von nodm , kommt eine Warnung, die besagt das man den Start dessen erst aktivieren muß.
Dazu editiert man per Root die Datei "nodm" unter /etc/default/ wie folgt.

# nodm configuration
# Set NODM_ENABLED to something different than 'false' to enable nodm
NODM_ENABLED=true
# User to autologin for
NODM_USER=username  <-- Hier den Name des zu startenden Benutzers

Wichtig an dieser Stelle,hier NICHT neu zu starten! da nodm ständig versuchen würde den X-Server zu starten, welcher ja aber noch garnicht eingerichtet ist.


Ist das beendet, kommt nun der Download des Treibers von NVidia.
Wenn die Möglichkeit besteht, mit einem 2. System ins Internet zu gehen, kann man hierüber auf die Downloadseite des Nvidia-Treibers gehen, korrekterweise die Lizenz bestätigen und dann den Treiber mit wget vom HTPC-System zu holen. (die Adresse ist ja am 2. System sichtbar) Oder aber man installiert sich einen Konsolenbasierten Browser wie "Lynx" und holt darüber die NVidia-Treiber von der offiziellen Nvidia-Treiber-Download-Seite. Diese Variante ist aus meiner Sicht die bessere, da ein X-unabhäniger Browser , für den Notfall immer ganz nützlich ist und man so wie eben gerade in diesen Fall auch bei X-Ausfall auf Internetseiten gelangen kann.


Ist der Treiber downloaded wechselt man per Root mit dem Befehl

"init 1" 

in einen "tieferen" Runlevel loggt sich hier wieder mit dem Root Passwort ein und startet die Installation des Nvidia-Treiber mit

sh /Pfad/zum/Treiber

und folgt der Anweisung zum installieren.


Tip: Am letzten Punkt der Nvidia-Treiber Installation wird man gefragt ob eine xorg.conf angelegt werden soll. HIER UNBEDINGT zustimmen, da man so gleich eine korrekte xorg.conf hat.


Ist alles glatt gelaufen, dann gibt man nun

"init 3" 

ein, wodurch man nun wieder in einen höheren Runlevel "steigt" und nun automatisch der jeweile Desktop bzw. WM starten sollte.


Nun, wo das hauptsächliche System steht, kommt die Installation des VDR und des Xinliboutputplugins an die Reihe.

Die Installation des VDR mit Xineliboutput-plugin

Das Xineliboutput-Plugin ist die gebräuchlichste Art den VDR "anzuzapfen" und das Bild auf eine Art auf den TV zu bringen, die der eines Recievers gleichkommt. Dieses basiert, (wie der Name schon vermuten lässt) auf Xine und integriert auch gleich Funktionen zum abspielen von CD,DVD,Videoddateien und Fotos.

Hierzu einfach folgende Pakete installieren "libxine1-vdpau-plugins" "libxineliboutput-sxfe" "xineliboutputplugin-sxfe" "vdr" (Version von e-tobi) "nvidia-libvdpau1-driver" sowie bei 64bit noch "nvidia-libvdpau1-driver-ia32"

Die Versionen der Paketnamen können und werden sich natürlich ändern, hier dann also jeweils die derzeit aktuelle Version von VDR etc installieren.

Der erste Start

Bevor der VDR automatisch gestartet werden kann, sollte man hier erstmal testen.
Dazu einfach mal

vdr-sxfe 

in die Konsole tippen. Läuft das, ist zumindest mit dem VDR schonmal alles in Butter.

TIP: Bei meiner letzten Installation ist der VDR sowie die Einrichtungroutine der Tastatursteuerung automatisch gestartet, was aber ach keine Problem darstellt. Einfach alle Fragen beantworten und der VDR ist eben schonmal Grundkonfiguriert

Nun sollte man die VDPAU Unterstützung testen
Dazu

vdr-sxfe --video=vdpau

in der Konsole befehligen.

Startet auch das, ist warscheinlich alles OK
Es kann nämlich auch passieren, das der aktuell benutzte Nvidia-Treiber sich nicht 100% mit den vdpau-libarys aus dem Repository des Debian-Maintainers verträgt.

Nun kann man den VDR-Start automatisieren sodas beim Start des PC's gleich ein (natürlich Rahmenloses)Vollbid des VDR erscheint .... wie bei einem DVB-Reciever eben.

Hierzu

vdr-sxfe --video=vdpau --audio=alsa:iec958 --fullscreen &

in das jeweilige Autostartscript (.fluxbox/startup) bzw (.config/openbox/autostart.sh) integrieren.
Der Eintrag "--audio=alsa:iec958" sorgt dafür, das der Ton direkt über SPDIF (optischer Ausgang) ausgegeben wird, was man natürlich an sein Systemanpassen muß.

Hierzu per "aplay -l" den Ausgang ausfindig machen und dann beispielsweise "--audio=alsa:hw0,0" festlegen.

TIP: Man kann diese Einstellungen theoretisch auch über das GUI des VDR machen, was aber derzeit allermeist zu problemen führt ... also lieber auf die Beschriebene Weise. Wie geschrieben ist der VDR und involvierte Software in dieser Version zwar schon produktiv nutzbar, aber noch von ein paar kleinen Macken beheimatet

Hat nun alles bisher geklappt, kann man nun erstmal das neue Stück Software per Tastaturbedienung erkunden Hierzu kann man sich, nach dieser Arbeit eventuell eine verdiente Tasse Kaffee genehmigen :D und dabei das

Einrichtung: Display und Fernbedienung

Hat man sich beim einrichten eines HTPC's nicht auf Standard PC-Tower beschränkt, und sich eines der netten HTPC-Cases mit Display und Infrarotsensor entschieden, so gilt es dieses nun einzurichten. Wie eingangs schon erläutert sind derzeit überall LCD's oder VFD's eingebaut die alle auf der gleichen Basis aufbauen, nur eben dann vom jeweiligen Herstellen in die Gehäuse integriert wurden. Das hat aber natürlich den großen Vorteil, das man es hier nicht sonderlich schwer hat, da es nicht zig verschiedene Routinen zur Einrichtung braucht. Es gibt daher nur je eine Herangehensweise pro Display-Typ

Das VFD

Da die in Lenny vorhandenen, benötigten Programme (lcdproc, lirc) leider beide noch keine Unterstützung für die allermeist verbauten imon-VFD's/LCD's mitbringen müssen diese jeweils kompiliert werden.

Zuerst muß mal das aktuelle lirc geholt werden. Dazu benötigt man "cvs" , welches nun erstmal installiert werden muß. Ist das geschehen erstellt man sich (am besten im Homeverzeichnis) ein Ordner. Zum Beispiel "Displaybuilding" Um möglicher Verwirrung entgegenzuwirken folgender Hinweis Auch wenn das Display EIN Gerät ist, müssen das Anzeigefeld sowie der Infrarotsensor unabhänig voneinander angesteuert werden. Ist "cvs" nun installiert, der Ordner erstellt, dann per Konsole in den Ordner "springen"

cd ~/Displaybuildling/

Nun die Sourcen hohlen

cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login

Hier erstmal einfach Enter drücken. (Dabei wird wohl warscheinlich eine Art kurzzeitiger Account erstellt? ) Als nächstes

cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc

wodurch nun die Sourcen geholt und entpackt werden. Hierbei entsteht der Ordner lirc, in welchen nun zu wechseln ist.

cd lirc

Dort nun

./autogen.sh

Sollte hier etwas fehlen wird nun drauf aufmerksam gemacht und es sollten die fehlenden, zum build benötigten Teile nachinstalliert werden. Wichtig ist auf jeden Fall libtool sowie automake (hier am besten die 1.9, da die 10er Version wohl manchmal Probleme bereitet) Als nächstes

./setup.sh

woraufhin eine ncurses-Style Oberfläche(wie beim Kernelbau) erscheint in der man nun USB-Devices sowie Imon/VFD auswählt, sowie dann mit "Save Setup and Run Configure" beendet und der configure Prozess eingeleitet wird. Ist dieser beendet folgt das übliche

make

An dieser Stelle empfehle ich,checkinstall zu installieren und per checkinstall ein .deb bauen und installieren zu lassen, da 1. so ein sauberes System gewahrt bleibt und 2. so eventuelle Abhängigkeiten besser aufgelößt werden können. (wird später bei vdr-plugin-lcdproc so sein) ... also

checkinstall

hier die Anforderungen erfüllen und fertig.

Nun das aktuelle lcdproc kommt noch


Das LCD Kommt auch noch

Funktionserweiterungen per Plugins

Man kann den VDR mit verschiedensten Plugin erweitern eine Übersicht gibt es hier ALLE Plugins bekommt man warscheinlich nur in dem man das eine oder andere selber kompiliert, aber es gibt auch eine gute Auswahl über das Repository

Ein von mir persönlich immer benutztes ist das "vdr-plugin-epgsearch" , was das epg um immense Funktionen erweitert. Suchfunktion Suchfunktion nach Zeit (von-bis) sowie nur von-bis bestimmte Sender aus der Kanalliste Man kann sich eine solche Suche von-bis (Sender/Zeit/Suchbegriff) als Favoriten in die reguläre EPG-Übersicht integrieren sodas man dann im EPG die Übersicht über "Gerade laufende Sendungen" "als nächstes laufende Sendungen" "um bestimmte Zeit laufende Sendungen" sowie die "Favoriten" hat.

Ansonsten gilt hier einfach mal zu schauen, was es so im Repo gibt, und dann über die Plugin-Seite im VDR-Wiki an weitere Informationen zu gelangen.

Spielen mit WINE

Hier vorab erstmal der Hinweis, das es derzeit für Debian kaum aktuelle WINE Pakete gibt. ABER .... die Distribution Mepis, welche auf der jeweiligen Debian/Stable basiert,baut jeweils aktuelle Pakete, welche bei mir bisher immer absolut problemlos installierbar und benutzbar waren. Wie gesagt, basiert Mepis ja auch auf Debian/Stable, wodurch das eigentlich auch nicht sonderlich verwunderlich ist. Wichtig ist noch, das man sich die jeweiligen .debs irgendwo "bunkert" , da es im Community-Repository immer wieder neue Versionen gibt, und ich nicht genaus sagen kann ob die irgendwo archiviert werden, so das man z.B. jetzt noch an die 1.2 Stable kommen kann

Hardwarekomponenten Beispiele


Gehäuse: Chieftec HM-01 mit VFD
Netzteil: Silverstone Nightjar 400Watt Lüfterlos
Grafikkarte: Zotac GeForce GT240 1024Mb/GDDR5 (erweitert mit Sythe Shuriken VGA-Cooler) ACHTUNG Garantieverlust!
Mainboard: ASRock P45DE
RAM: Kingston Hyper-X 1066 DDR2 (2x2Gb)
CPU: Intel Core 2 Duo E7500 mit Artic Freezer Lüfter

Meine Werkzeuge