AA_exit_123rf-4709566_PabloScapinachisArmstrong.jpg

© Pablo Scapinachis Armstrong, 123rf.com

Minimalistisch

Minimyth – ein Diskless Client für MythTV

11.02.2011
Mit wenig Aufwand lassen sich auch kostengünstige, plattenlose Barebones als vollwertiger MythTV-Client einsetzen. So bleibt's im Wohnzimmer aufgeräumt und leise.

Der MythTV-Grundlagenartikel in der Dezember-Ausgabe von LinuxUser [1] hat die Installation und Konfiguration eines MythTV-Backends und des passenden PC-Frontends vorgestellt. Der vorliegenden Teil der losen Serie zeigt eine kostengünstige Möglichkeit, ein vorhandenes MythTV-Backend-System um ein separates Frontend zu erweitern. Dabei dient einen preiswerter Barebone-PC ohne Festplatte als Client fürs Wohnzimmer. Das Betriebssystem bezieht er via Netzwerk vom selben Server, der auch als MythTV-Backend im Keller oder einer Abstellkammer seinen Dienst versieht.

Serie MythTV

Basis-Installation LU 12/2010, S. 30 http://www.linux-community.de/22109
Diskless Client LU 03/2011, S. 54

Hardware

Als Hardware für den Abspiel-Client taugt im Prinzip jede Linux-fähige PC-Hardware, sofern sie eine Netzwerkkarte mitbringt, die über das LAN booten kann. Über diese Fähigkeit verfügen heute die meisten NICs. Für das Wohnzimmer eignen sich aus naheliegenden Gründen vor allem kompakte und in einem schicken Gehäuse verpackte Barebone-Systeme.

In dem System sollte eine Grafikkarte mit Nvidia-Chipsatz zum Einsatz kommen: Sie kann die HDTV-Dekodierung auf dem Grafikchip vornehmen. Diese vom Nvidia-Linux-Treiber unterstützte Erweiterung nennt sich VDPAU ("Video Decode and Presentation API for Unix", [2]). Eine Liste von Grafikchips, die diese Methode unterstützen, hält die englischsprachige Wikipedia vor [3]. Falls Sie planen, HDTV oder in H.246 kodierte Videodateien wiederzugeben und eine Grafikkarte einsetzen, die diesen Standard nicht unterstützt, fällt eine entsprechende höhere CPU-Belastung an.

Als Speicherausstattung für den Barebone genügt 1 GByte RAM, ein DVD-Laufwerk sollte zur Wiedergabe entsprechender Medien nicht fehlen. Für die Ausgabe zum Fernseher oder AV-Receiver (falls vorhanden) verwenden Sie ein HDTV-Kabel. Falls der Barebone nicht über einen HDTV-Ausgang verfügt, können Sie auch mittels eines entsprechenden Kabels von DVI auf HDTV umsetzen.

Die Audio-Ausgabe (sofern von der Hardware unterstützt) lässt sich via HDMI-Kabel übertragen. Besteht seitens der Hardware diese Möglichkeit nicht, empfiehlt es sich, die Tonausgabe per digitalem S/PDIF-Kabel an einen passenden Verstärker anzuschließen. Falls keine separaten Boxen vorhanden sind, sollten Sie den Line-Out-Anschluss mittels eines normalen Audiokabels an den Line-In-Eingang des Fernsehers anschließen.

Zur Bedienung des MythTV-Frontends empfiehlt sich eine Fernbedienung mit Infrarot-Empfänger: Zwar erfüllt eine Tastatur prinzipiell den selben Zweck, lässt sich aber von der Wohnzimmercouch aus nur etwas umständlich nutzen. Eine mögliche Alternative bieten Bluetooth-Tastaturen mit entsprechender Reichweite. Für die Ansteuerung per Infrarot benötigen Sie einen vom LIRC-Projekt ("Linux Infrared Remote Control") unterstützten serieller oder USB-Empfänger – eine Liste solcher Geräte finden Sie auf der Website des Projekts [4].

Als einfacher und funktioneller Empfänger hat sich beispielsweise das "Windows Media Center Remote" bewährt, das es im Elektronikgroßmarkt oder bei eBay günstig zu erwerben gibt. Von seriellen Empfängern sollte Sie besser die Finger lassen: Die meisten neueren PCs verfügen über keinen seriellen Anschluss, und den Betrieb an einem USB-Seriell-Adapter unterstützt LIRC nicht.

Software-Komponenten

Es erfordert einige Netzwerkdienste, um einen PC via PXE übers Netzwerk zu booten. Deren Installation und Konfiguration erklären wir im Folgenden am Beispiel von OpenSuse, bei anderen Distributionen verläuft sie aber analog. Die für den Netzwerkstart notwendigen Komponenten hängen von der gewählten Boot-Methode und der Distribution ab, die Sie über das Netzwerk starten wollen.

Die folgenden Ausführungen beschreiben den Netzwerkstart mittels PXELINUX [5] via DHCP und TFTP), die Bereitstellung der Linux-Systemdateien und MythTV-Programmdateien mittels NFS und der Konfigurationsdateien über HTTP. Der Startprozess über Netzwerk stellt sich hier wie folgt dar (Abbildung 1):

  • Das BIOS des PCs sendet eine BOOTP-Anfrage an den DHCP-Server.
  • Der DHCP-Server teilt dem BIOS die IP-Adresse des TFTP-Servers mit sowie die Stelle, an welcher der PXELINUX-Bootloader auf dem TFTP-Server liegt. Anschließend lädt das BIOS den PXELINUX-Bootloader vom TFTP-Server.
  • Der PXELINUX-Bootloader wiederum lädt die zugehörige Konfigurationsdatei. Aus dieser erfährt er dem zu ladenden Linux-Kernel und fordert diesen bei TFTP-Server an.
  • Daneben umfasst die Konfigurationsdatei auch die Lokation des Root-Laufwerks, das der Client zu guter Letzt per NFS einbindet.
Abbildung 1: So sieht der Ablauf beim Booten via PXE aus.

Zunächst gilt es die notwendigen Softwarepakete installieren. In OpenSuse erledigen Sie das am zügigsten über das Kommandozeilentool Zypper mithilfe des Befehls

# zypper in dhcp-server yast2-tftp-server tftp yast2-nfs-server

Um über den DHCP-Server die entsprechenden Parameter zum Netzwerkstart bereitzustellen, passen Sie dessen Konfigurationsdatei /etc/dhcpd.conf so an, wie in Listing 1 zusehen. In OpenSuse müssen Sie zusätzlich noch in der Datei /etc/sysconfig/dhcpd den Parameter DHCPD_INTERFACE auf das interne Netzwerk-Interface setzen, meist also:

DHCPD_INTERFACE="eth0".

Nun konfigurieren Sie den DHCP-Server noch mittels des Kommandos chkconfig dhcpd on für den automatischen Start. Da Sie nur einen DHCP-Server im Netzwerk betreiben können, müssen Sie eventuell vorhandene weitere DHCP-Server nun deaktivieren (etwa jenen des Internet-Routers) und die Optionen für das LAN im neuen DHCP-Server konfigurieren (/etc/dhcpd.conf).

Listing 1

# Default-Domain des LANs (ermittelt per "dnsdomainname")
option domain-name "mynetwork.net";
# DNS-Server (im LAN oder extern)
option domain-name-servers 10.10.10.1;
# Default-Router im LAN (Gateway ins Internet)
option routers 10.10.10.1;
# Timeserver (im LAN oder extern  - zwingend notwendig!)
option ntp-servers 10.10.10.1;
# Korrekte Zeitzonenübermittlung sicherstellen
option tcode code 101 = text;
option tcode "Europe/Berlin";
# BOOTP-Protokoll erlauben
allow bootp;
# Bereitgestelltes Subnetz (hier: 10.10.10.0)
netmask 255.255.255.0 {
  # Netzwerkbereich per DHCP
  range 10.10.10.100 10.10.10.200;
  default-lease-time 14400;
  max-lease-time 172800;
}
# Parameter für den Netzwerkstart
group {
# Hostname für den Client bereitstellen
  use-host-decl-names on;
  host mythclient1 {
#   Hostname
    option host-name "mythclient1";
#   MAC-Adresse
    hardware ethernet 00:30:1b:81:7a:5d;
#   DHCP/TFTP Server
    next-server 10.10.10.1;
#   fixe IP Adresse vorgeben
    fixed-address 10.10.10.50;
#   Dateiname für den Bootloader
    filename "PXEClient/pxelinux.0";
  }
}

Als nächstes aktivieren Sie den TFTP-Server, der die notwendigen Bootdateien im Netzwerk bereitstellt. Das erledigen Sie in YaST unter Network Services | TFTP Server. Als Boot Image Directory: geben Sie hier /tftpboot an.

Nun laden Sie vom SYSLINUX-Projekt [5] das aktuelle Programmarchiv (zu Redaktionsschluss syslinux-4.03.tar.gz) herunter, das auch PXELINUX enthält. Legen Sie im Verzeichnis /tftpboot das Verzeichnis PXEClient an und kopieren sie aus dem SYSLINUX-Tarball die beiden Dateien core/pxelinux.0 und com32/menu/menu.c32 dorthin. Außerdem legen Sie in PXEClient je ein Verzeichnis für die Konfigurationsdatei des Bootloaders (PXEClient/pxelinux.cfg) und für den Kernel (PXEClient/kernel) an. Unter pxelinux.cfg erstellen Sie eine Textdatei default mit dem Inhalt aus Listing 2. Am der selben Stelle können Sie bei Bedarf auch verschiedene Konfigurationsdateien für unterschiedliche Linux-Systeme anlegen [6].

Listing 2

# pxelinux.cfg/default
PROMPT 1
DEFAULT minimyth-nfs
DISPLAY messages
TIMEOUT 5
label minimyth-nfs
  KERNEL kernel/kernel
  APPEND ro root=/dev/nfs ip=dhcp nfsroot=10.10.10.1:/minimyth/minimyth-fs/rootfs

Für den Client müssen Sie außerdem einen NTP-Zeitserver zur Synchronisation bereitstellen. Dazu wählen Sie in YaST Network Services | NTP Konfiguration: "Now and On Boot" und bestätigen mit OK.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.
Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 5 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...