logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
      Anzeige

Erschienen in LinuxUser 11/2008   »   Ausgabe bestellen

Multimedia-Center im Eigenbau

Das 30-Euro-Wunder


Mit My Media System, VDR und einigen kleinen Tricks verwandeln Sie die S100 in ein unschlagbar preisgünstiges Mediacenter für Ihr Wohnzimmer.   Michael Kleinhenz

README

Mit einer auf 733 MHz getakteten Celeron-CPU, 128 MByte RAM, Sound, Ethernet, USB und WLAN eignet sich die Streaming-Box T-Online Vision S100 ideal als Mediacenter.

Miniserie: Streaming-Box S100
Teil 1 − S100 mit Debian einrichtenLU 10/2008, S. 71
Teil 2 − S100 als DVB- und Media-CenterLU 11/2008, S. 64

Im ersten Teil des Artikels haben wir eine ausgemusterte T-Online-Streamingbox in einen vollständigen Linux-Rechner verwandelt [1]. Nun soll die S100 zur Multimedia-Settop-Box mit DVB-T und Abspielmöglichkeit für Filme und Musik mutieren. Wir nutzen dazu die Mediacenter-Software My Media System (MMS, [2]) und VDR ([3], [4]) als Videorekorder für DVB-T. Da sich Installation und Konfiguration der beiden Pakete fast ebenso wie auf einem Standard-PC abspielen, beschränken wir uns hier auf die Besonderheiten im Zusammenhang mit der S100 und weisen, wo nötig, auf spezielle Workarounds hin.

Als DVB-Hardware lässt sich ein einfacher DVB-Stick an die S100 anschließen − allerdings sollte man auch dabei auf die im ersten Teil des Artikels bereits beschriebenen Probleme mit der Stromversorgung achten. Bestimmte Varianten der S100 verfügen auch über einen bestückten PCI-Steckplatz. Ist der vorhanden, so können Sie über eine entsprechende Riser-Karte auch eine DVB-PCI-Karte liegend einbauen. Auch Boxen "ohne" PCI-Steckplatz verfügen über die Anschlüsse, auf die lediglich keine PCI-Steckerleiste aufgelötet ist (Abbildung ((1))). Mutige mit guten Kenntnissen im Feinlöten können versuchen, diese nachzurüsten.

((1)) Die S100 verfügt über prinzipiell einen PCI-Steckplatz (Bildmitte, rot markiert), der jedoch nicht immer mit einer Steckerleiste ausgestattet ist.

Fernbedienung

Bei der Fernbedienung der S100 handelt es sich nicht um eine IR-Fernbedienung im üblichen Sinn − also mit einem internen Anschluss an beispielsweise den seriellen Port − sondern um eine Tastaturemulation: Das Frontdisplay der Box emuliert eine einfache PS/2-Tastatur, die Tasten der Fernbedienung schicken Standard-Tastaturcodes ans Betriebssystem.

Eine Ausnahme stellt hier die Power-Taste dar. Sie signalisiert dem Frontpanel der Box, dass der Benutzer das System ausschalten möchte. Das schickt daraufhin über eine Steuerleitung ein ACPI-Signal zum Herunterfahren ans Betriebssystem. Allerdings wartet das Frontpanel nicht darauf, dass das System ordentlich herunterfährt, sondern klemmt nach rund vier Sekunden dem Mainboard einfach den Strom ab − ob das Betriebssystem nun beendet wurde oder nicht. Selbst ein optimiertes Linux lässt sich in so kurzer Zeit nicht ordnungsgemäß anhalten.

Für dieses Problem gibt es zwei mögliche Lösungen: So könnte man beispielsweise mit dem Einschleifen eines Bauteils in eines der Kabel des ATX-Power-Connectors die Zeit bis zur Stromabschaltung verlängern. Dies erfordert aber Fingerspitzengefühl und Erfahrung mit dem Lötkolben.

Eine mögliche Alternative ist es, sofort auf das ACPI-Signal zu reagieren, die Dateisysteme read-only zu remounten, alle wichtigen Prozesse zu beenden und erst dann den normalen Shutdown fortzusetzen. Der hat dann zwar immer noch keine Chance, bis zu Ende zu laufen, aber das Remounten der Dateisysteme minimiert das Risiko, dass das System in einen inkonsistenten Zustand gerät und vielleicht nicht mehr bootet. Dieser kleine "Hack" funktioniert problemlos. Um ihn einzubauen, ändern Sie in der Datei /etc/acpi/powerbtn.sh die Shutdown-Prozedur wie in Listing 1 gezeigt.

Listing 1
# schneller "Shutdown"
sync
sync
mount -o remount,ro /boot
mount -o remount,ro /
# weitere Dateisysteme
# read-only remounten
[...]
# dann normaler Shutdown
shutdown -h now

Kommt die Box als Server zum Einsatz, sollten Sie sie grundsätzlich über den normalen Konsolen-Shutdown herunterfahren. Allerdings kann das Betriebssystem dann die Box nach dem Halt nicht vollständig ausschalten − das erledigen Sie mit einem Druck entweder auf den Power-Button der Fernbedienung oder des Frontpanels. Die dann im Standby befindliche Box schalten Sie gegebenenfalls über den Kippschalter an der Rückseite ganz aus. Das spart einige Watt Stromverbrauch, unterbindet jedoch die Reaktivierung des Systems über die Fernbedienung.

TIPP

Bei Verwendung der S100 als Surfstation am LCD-TV hat sich der Einsatz einer Mediacenter-Tastatur mit eingebautem Trackball als sinnvolle Alternative zur Fernbedienung erwiesen.

LIRC-Emulator

Die meisten Applikationen unterstützen LIRC als Quelle für Signale von Fernbedienung. Der Standard-LIRCd lässt sich hier allerdings nicht nutzen, weil es dafür keine Anpassungen an das etwas andere Konzept der S100-Fernbedienung gibt. Nach Diskussionen im Zenega-User-Forum [5] entstand aber eine Art LIRC-Emulator: ein Daemon, der die Eingaben der Fernbedienung respektive des Frontpanels ins LIRC-Protokoll umsetzt. Damit kann man alle LIRC-fähigen Applikationen über die S100-Fernbedienung steuern.

Der Daemon selbst, zenegalircd, lässt sich problemlos aus den Quellen [6] bauen. Sie laden ihn beim Systemstart beispielsweise über ein Initskript, er benötigt keine weitere Konfiguration − dazu später mehr. Läuft der Daemon, prüfen Sie sein korrektes Funktionieren mittels irw. Dieses kleine Tool aus den LIRC-Standardwerkzeugen gibt die Kommandos aus, die der laufende LIRC-Server liefert − in unserem Fall also die Kommandos von Zenegalircd.

Media-Desktop

Bevor Sie nun die erste Applikation tatsächlich an die Signale der Fernbedienung koppeln, installieren Sie zunächst die benötigten Sooftwarekomponenten. Im einzelnen benötigen Sie MMS als Oberfläche des Systems, VDR als DVB-Applikation und MPlayer als Multimedia-Abspieler. MMS lässt sich nach Aufnahme der APT-Quelle

deb http://www.prodeia.de/mms/etch binary/

durch das Einrichten der Pakete mms und mms-input-lirc installieren. Alle Konfigurationsdateien von MMS lagern im /etc/mms, die Datei Config enthält die zentralen Parameter. Die fallen schon im Auslieferungsstand recht vollständig aus; damit aber Fernbedienung und Ausgabe auf dem X-Server problemlos funktionieren, sollten Sie trotzdem sicherstellen, dass sich die Einstellungen aus Listing 2 finden. Diese definieren SDL als Kanal für die Bildschirmausgabe und stellen die Auflösung im Vollbildmodus auf 800 mal 600 Pixel ein. Als Eingabegerät dient der LIRC-Daemon.

Listing 2
outdev = sdl
fullscreen = true
h_res = 800
v_res = 600
input = lirc

Prinzipiell funktioniert MMS nun bereits, allerdings müssen Sie für eine vernünftige Benutzung die einzelnen Funktionsgruppen noch weiter konfigurieren. Dazu gibt es für jede Funktion eine eigene Konfigurationsdatei. Beispielsweise steuert MovieConfig das Abspielen von Filmen über einen externen Player. Die wichtigste Angabe ist dort die des Pfads zu den Medien:

mov_dir = /mnt/network/video/

Als Quelle für Mediendateien kann hier ein eingebundenes Netzwerklaufwerk ebenso dienen wie angeschlossene USB-Festplatten (Abbildung ((2))).

((2)) MMS hält nicht nur Audio- und Videodateien vor, sondern besorgt auch das Cover-Art und die Beschreibungen aus den einschlägigen Internet-Datenbanken.

Videoplayer

Standardmäßig verwendet MMS als Abspieler für Videodateien MPlayer. Der im Debian-Repository vorhandene MPlayer reicht für die meisten Einsatzzwecke aus, allerdings müssen Sie auch ihn über eine eigene MMS-Konfigurationsdatei MplayerConfig für MMS einrichten. Die Möglichkeit, MPlayer hier beim Start eigene Kommandozeilenparameter mitzugeben, nutzen Sie, um ihn mit der S100-Fernbedienung zu verbinden:

mplayer_opts = -cache 8192 -vo xv -lircconf /etc/mms/lirc-mplayer.conf

Als Ausgabetreiber für MPlayer dient hier Xv. Die Datei /etc/mms/lirc-mplayer.conf enthält die LIRC-Konfiguration für MPlayer und beschreibt, welche Tasten der Fernbedienung welchen Funktionen des MPlayers steuern. Diese neu zu erstellende Datei enthält Definitionen nach folgendem Muster:

begin
   button = MENU
   prog = mplayer
   config = osd
   repeat = 0
end

Unter button nennen Sie die Taste der Fernbedienung, die Sie der Funktion unter config (hier ist es osd) des MPlayers zuordnen. Eine vollständige Liste der verfügbaren MPlayer-Kommandos erhalten Sie mit mplayer -input cmdlist. Zum Ermitteln der Tastencodes, die Sie für button eintragen müssen, nutzen Sie wieder irw: Es gibt ja bei einem Tastendruck auf der Fernbedienung den entsprechende Code auf der Konsole aus.

Haben Sie die Konfiguration vom MPlayer abgeschlossen, können Sie per MMS bequem durch ein Filmarchiv browsen und Videos im MPlayer abspielen. Durch Beenden von MPlayer gelangen Sie wieder in den MMS-Desktop zurück.

Die Konfiguration für die anderen MMS-Komponenten erfolgt analog. Mit einem vollständig konfigurierten MMS spielen Sie auch Audiodateien ab, empfangen Internet-Radiosender und betrachten Bilder. Weiterhin gibt es die Möglichkeit, aus MMS heraus direkt Emulatoren für Videospielkonsolen wie SNES oder Sega Mega Drive zu starten (Abbildung ((3))). Möchten Sie dies nutzen, sehen Sie sich sich nach drahtlosen USB-Gamecontrollern umsehen: Mit aktuellen Kernels lassen sich etwa die günstigen Controller der XBox 1 für diesen Zweck nutzen. Weitere Informationen dazu und zur Konfiguration der anderen MMS-Module finden sich im Zenega-Wiki [7].

((3)) Aus MMS heraus starten Sie via Emulator auch Videospiele für SNES, Sega Mega Drive oder andere Konsolen.

TV mit der S100

Ein bestimmtes MMS-Modul benötigt aber noch eine etwas aufwendigere Konfiguration: Die TV-Funktion von MMS (Abbildung ((4))) soll mit einem im Hintergrund laufenden VDR zusammenarbeiten. Dazu installieren Sie zunächst VDR als Serverdienst, der ständig als Daemon läuft. Nur so funktionieren die Aufnahmetimer korrekt funktionieren und Sie können TV-Sendungen im Hintergrund aufzunehmen.

((4)) Über die S100 können Sie nicht nur mit MMS fernsehen, sondern die Sendungen auch per VDR aufzeichnen.

Die in Debian "Etch" enthaltene VDR-Version ist recht alt, eine aktuelle Version erhalten Sie als Debian-Paket über e-TOBI.net. Dazu nehmen Sie die folgende Zeile in /etc/apt/sources.list auf:

deb http://e-tobi.net/vdr-experimental etch base backports addons vdr-multipatch vdr-standard

Als Gegenstück zum VDR-Server-Backend dient das Xine-Frontend für VDR, vdr-sxfe. Es verbindet sich mit einem entsprechend konfigurierten VDR-Server und spielt dessen DVB-Stream ab. Vdr-sxfe findet sich im VDR-Paket xineliboutput-sxfe, das Sie aus einer der VDR-Paketquellen einrichten.

Prinzipiell können Sie Vdr-sxfe von jedem Rechner im Netzwerk aus benutzen, um sich auf dem auf der S100 laufenden VDR zu verbinden. Damit mutiert die S100 zum universellen TV-Server im Heimnetz. Wir beschränken uns hier aber zunächst auf die Nutzung direkt auf der S100 und der Ausgabe über den X-Server auf dem Scart-Ausgang.

Fliegender Wechsel

Nach der Installation von VDR müssen Sie MMS zunächst so konfigurieren, dass es bei Auswahl der TV-Option den VDR-Client startet. Dazu setzen Sie in der Datei /etc/mms/TVConfig folgende Option:

tv_path = /etc/mms/xinevdr.sh

Das Shell-Skript xinevdr.sh (Listing 3) ist ein "Switching-Skript": Beim ersten Aufruf startet es den VDR-Client, beim zweiten beendet es ihn wieder. So wechseln Sie aus dem Client wieder in die MMS-Oberfläche.

Listing 3
#!/bin/bash
if pidof vdr-sxfe; then
  killall -HUP vdr-sxfe
  if pidof vdr-sxfe; then
    killall -9 vdr-sxfe
  fi
else
   vdr-sxfe --fullscreen > /dev/null 2>&1
fi

Um ein laufendes Vdr-sxfe zu verlassen, nutzen wir einen Kunstgriff in Zusammenhang mit dem Switching-Skript. Das Programm irexec (aus dem Paket lirc) ist ein kleiner LIRC-Client, der bei Tasteneingaben über LIRC beliebige Programme startet. Es stößt in unserem Fall bei Druck auf die T-Online-Taste der Fernbedienung das Skript xinevdr.sh an und wechselt so bei jedem Tastendruck zwischen MMS und dem VDR-Client. Dazu benötigen Sie zusätzlich zum Switching-Skript noch eine Konfiguration für Irexec (Listing 4). Diese legen Sie in /etc/lirc.conf ab und starten beim Hochfahren des Systems Irexec damit:

/usr/bin/irexec -d /etc/lirc.conf
Listing 4
01 begin
02   button = TONLINE
03   prog   = irexec
04   repeat = 0
05   config = /etc/mms/xinevdr.sh
06 end

Wollen Sie wie oben beschrieben von anderen Rechnern im Netz auf den VDR-Server zugreifen, dann fügen Sie in /etc/vdr/svdrphosts.conf einfach weitere Rechner oder Netze hinzu. Diese dürfen dann auf den VDR zugreifen und Sie können dann über Vdr-sxfe die TV-Streams betrachten.

Endspurt: der Systemstart

Damit ist die Konfiguration fast komplett, als letztes führen Sie nun alle Komponenten zusammen. Damit das System schneller startet und der Speicherbedarf der laufenden Programme gering bleibt, installieren Sie keinen Display-Manager wie GDM oder XDM, sondern starten nach dem Booten den X-Server und MMS direkt über ein Xinit-Skript. Das legen Sie in /etc/X11/xinit/xinitrc.mms ab.

Listing 5
# stop blinking
/bin/stty 38400 cs8 -parenb -cstopb < /dev/ttyS1 > /dev/ttyS1
echo -e '\xa2\xb2\xa2\xb2\xa2\xb2' > /dev/ttyS1

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps
if [ -f $sysresources ]; then
  xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
  xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
  xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
  xmodmap $usermodmap
fi

# irexec starten um spezielle Tasten auf Funktionen zu legen
/usr/bin/irexec -d /etc/lirc.conf

# MMS aus einem Terminal starten, um Probleme mit dem Focus zu vermeiden
xterm -font 12x24 -bg black -fg green -geometry 800x600+0+0 -e /etc/mms/runmms.sh

Wie Listing 5 zeigt, kann das Skript auch das Blinken des Frontpanels abschalten. Hier ist auch der richtige Ort, um den Irexec-Prozess für den Wechsel zwischen MMS und VDR zu starten. Am Ende öffnet das Skript ein Terminal, in dem dann ein weiteres Skript den eigentlichen Start von MMS übernimmt. Das (eigentlich nicht unbedingt nötige) Terminal reduziert Probleme mit einem verlorenen Fenster-Fokus beim Wechsel zwischen MMS und VDR. Ohne diesen Trick kann es dazu kommen, dass sich MMS nach dem Beenden des VDR-Clients nicht mehr steuern lässt, weil das MMS-Fenster den Fokus verloren hat.

Schlussendlich übernimmt /etc/mms/runmms.sh den Start von MMS und sorgt dafür, dass dieses sich beim Beenden (oder einem unfreiwilligen Crash) selbstständig wieder neu startet (Listing 6).

Listing 6
01 #!/bin/sh
02 function respawn()
03 {
04   while /bin/true
05   do
06       $*
07    done
08 }
09 
10 export LANG="de_DE.UTF-8"
11 respawn /usr/bin/mms

Jetzt müssen Sie nur noch dafür sorgen, dass xinitrc beim Booten automatisch anläuft. Das erledigt ein Eintrag in /etc/inittab:

MMS:23:respawn:xinit /etc/X11/xinit/xinitrc.mms -- -ignoreABI

Er sorgt auch dafür, dass nach einem etwaigen Crash des X-Servers dieser wieder neu anläuft. Die Option --ignoreABI benötigt der (veraltete) Intel-Treiber für die X.org-Version in Debian "Etch". Damit ist die Installation komplett.

Fazit

Mit der für 30 Euro oder weniger bei Ebay erworbenen S100 steht Ihnen jetzt ein für den Preis unschlagbares Wohnzimmer-Multimediagerät zur Verfügung. Damit muss das Bastelprojekt aber noch nicht am Ende sein: Es gibt noch unzählige weitere Möglichkeiten, die S100 zu erweitern und funktional aufzurüsten.

So könnten Sie etwa versuchen, OpenGL-Hardwareunterstützung zum Laufen zu bekommen und dann die Linux-Version des verbreiteten Xbox Media Centers auf der S100 laufen zu lassen − sicherlich eine Killerapplikation und weit leistungsfähiger (und schicker) als MMS. Wir wünschen Ihnen auf jeden Fall viel Spaß mit Ihrer neuen Multimedia-Zentrale und weiterhin viel Erfolg bei der Erweiterung. (jlu)

Infos
[1] S100 mit Debian: Michael Kleinhenz, "Der Home-Server", LinuxUser 10/2008, S. 71, http://www.linux-user.de/ausgabe/2008/10/071/
[2] My Media System: http://mymediasystem.org
[3] Video Disk Recorder: http://www.cadsoft.de/vdr/
[4] VDR bedienen: Mirko Dölle, "Von der Rolle", LinuxUser 02/2006, S. 34, http://www.linux-user.de/ausgabe/2006/02/034-vdr/
[5] Zenega-Forum: http://forum.zenega-user.de
[6] Zenegalircd-Quellpaket: http://zen.htpc-forum.de/page5/page5.html
[7] Zenega-Wiki: http://wiki.zenega-user.de

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2014 Medialinx AG

[Linux-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Ubuntu User] [Linux Technical Review] [Smart Developer] [Linux Magazine] [Linux Pro Magazine] [Ubuntu User]
[Smart Developer] [EasyLinux Poland] [Linux Magazine Poland] [Linux Magazine Brasil] [EasyLinux Brasil] [Linux Magazine Spain]