Dreambox: Der Linux-Satelliten-Receiver als Windows-Server

17.10.2005 von Albert Lauchner
Durch das frei konfigurierbare Linux-Betriebssystem der Dreambox und den Netzwerkanschluss lässt sich der Dreambox-Satelliten-Receiver zum zentralen Multimedia- und Fileserver upgraden. Im zweiten Teil unserer Serie beschreiben wir Linux-Konfigurations-Tools und die Installation des Samba-Fileservers.

Im ersten Teil unserer Serie zur Dreambox 7020 S der deutschen Firma Dream-Multimedia-TV haben wir das prinzipielle Konzept des Linux-Satelliten-Receivers vorgestellt. Dabei wurde abschließend auch die IP-Adresse des Netzwerkanschlusses über die Fernbedienung konfiguriert. Ab jetzt ist die Dreambox über das Netzwerk erreichbar und kann mit klassischen PC-Tools wie telnet und FTP angesprochen werden.

Im Folgenden gehen wir zunächst auf die prinzipiellen Konfigurationsmöglichkeiten der Set-Top-Box und die dafür empfehlenswerten Hilfsprogramme ein. Dabei erläutern wir auch die wenigen nötigen Linux-Befehle, so dass auch Windows-User problemlos mit der Konfiguration unter Linux zurechtkommen. Anschließend geht es direkt zur ersten Erweiterung der DM 7020 mit einem Samba-Server. Nach dessen Installation stellt die Dreambox das Dateisystem ihrer Festplatte Windows- und Linux-PCs im Netzwerk als zentralen Speicherort bereit.

Serie: Die Dreambox als Mediaserver im Netzwerk

Teil 1

Überblick und Netzwerkkonfiguration

Teil 2

Dreambox: Der Linux-Satelliten-Receiver als Samba-Server

Teil 3

Audio- und Video-Streaming mit der Dreambox

Fernzugriff mit telnet und FTP

In unserem Workshop haben wir der Dreambox noch per Fernbedienung die IP-Adresse 192.178.178.10 gegeben. Ob der physikalische Zugriff über das Netzwerk funktioniert, lässt sich auf der Kommandozeile mit einem ping 192.168.178.10 feststellen. Gelingt der Ping, lässt sich die Dreambox auch per Windows-PC managen.

Dazu kommt das Programm telnet zum Einsatz. Mit telnet kann man sich die Kommandozeile eines entfernten Rechners auf den lokalen Arbeitsplatz holen. Es stellt somit die textorientierte Version des Remote Desktops von Windows dar.

telnet ist unter fast jedem Betriebssystem lauffähig. Nach der Eingabe von telnet 192.168.178.10 in einem Commandline-Fenster von Windows fragt die Dreambox nach dem Login-Account. Als User wählen wir „root“. Je nach Software-Stand benötigt die Dreambox entweder kein Passwort oder „dreambox“ als Zugangsberechtigung.

Nach dem Login landet man im Home-Verzeichnis des Systemadministrators „root“. Mit ps kann man sich nun beispielsweise die Liste aller laufenden Prozesse ausgeben lassen. Im Screenshot unter der Firmware-Version vom 12.09.2005 verraten die laufenden Prozesse smbd –D und nmbd –D, dass bereits ein Samba-Server gestartet ist. Da jedoch einige der verbreiteten Images (Linux-Kernel mit diversen Erweiterungen) keinen Samba-Server enthalten, beschreiben wir im Folgenden neben der immer notwendigen Konfiguration zunächst auch die komplette Neuinstallation von Samba.

FTP oder das Dreambox Control Center

Neben der Administration über telnet müssen zur Verwaltung der Dreambox häufig neue Programme oder geänderte Konfigurations-Files auf die Dreambox kopiert werden. Hierzu bietet sich das allgemein verbreitete FTP (File Transfer Protocol) an. Zur Konfiguration der unzähligen Freeware- und kostenpflichtigen FTP-Programme sind wieder nur die IP-Adresse und die Login-Daten analog zum telnet-Zugang nötig.

Speziell für die Dreambox gibt es eine kostenlose Alternative, die das Arbeiten mit telnet und FTP erleichtert. Das Dreambox Control Center (DCC) des engagierten Entwicklers BernyR vereint telnet, FTP-Client und weitere Tools wie die Emulation der Fernbedienung unter einer Haube. Den Download dieses empfehlenswerten Programms, das wir im Weiteren nutzen, finden Sie unter www.bernyr.de. Zudem haben wir die aktuelle Version 2.5 mit in unser Samba-Software-Paket zum Downloaden integriert.

Verwaltung mit dem DCC

Der FTP-Client des DCC bietet etliche nützliche Optionen. Er kann über die rechte Maustaste die Zugriffsrechte von Dateien bequem ändern. Erfahrungsgemäß sind häufig vor allem ungenügende Rechte der Grund dafür, weshalb eine Erweiterung nicht funktioniert.

Da die Dreambox kein ideales Ziel für Attacken ist und zudem in einer freundlichen Umgebung läuft, muss man sich um die Rechte wenig Sorgen machen. Meist genügt es, die Zugriffsattribute zu verwenden, welche die anderen Dateien im Verzeichnis haben. Und auch wenn jetzt dem Administrator im Firmennetz die Haare zu Berge stehen: Die 777 (jeder darf alles mit der Datei machen) hilft immer.

Ein weiterer Vorteil des DCC ist der integrierte Editor, den man immer wieder zum Bearbeiten von Konfigurations-Files benötigt. Hier lauert eine gefährliche Tücke. Bei Textdateien unterscheidet sich das Dateiformat von DOS/Windows und Linux geringfügig.

Microsoft markiert im Hexcode einer Textdatei eine neue Zeile mit den ASCII-Zeichen 0D 0A (Carriage Return und Line Feed). Linux nutzt hingegen nur ein Line Feed (0A). Lädt man beispielsweise eine Konfigurationsdatei auf den PC und bearbeitet sie dort mit einem einfachen Windows-Editor wie Notepad, speichert dieser sie im DOS-Modus ab. Ein Großteil der Programme auf der Dreambox stolpert dann am Ende der ersten Zeile dieser Konfigurationsdatei, ohne ein klare Fehlermeldung auszugeben. Allein an diesem Problem kann man als Dreambox-Neuling ganze Tage lang verzweifeln.

Tipps für Linux-Neulinge

Hier wollen wir noch die wichtigsten Befehle und Tipps vorstellen, die dem unerfahrenen Windows-User den ersten Kontakt mit dem Linux der Dreambox erleichtern:

Den Wechsel in ein neues Verzeichnis auf dem telnet-Prompt erfolgt mit dem Kommando cd. Linux verwendet allerdings statt des Backslash „\“ bei Pfadangaben den normalen Slash „/“. Zur Erleichterung besitzt die Dreambox eine Filename Completion über die Tab-Taste. Gibt man also cd /me ein und betätigt dann den Tabulator, wird die Eingabe zu cd /media/ ergänzt.

Den Inhalt eines Verzeichnisses zeigt ls an. ls --help (zwei Mal --) zeigt die möglichen Optionen an. Achtung: Linux ist sowohl bei Dateinamen als auch bei den Optionen case sensitive.

ps zeigt die Liste aller laufenden Dienste und Programme. Wichtig ist die Angabe in der ersten Spalte, die PID. Mit dem Befehl kill xxx (xxx= PID) kann man ein Programm zwangsweise beenden. Das ist beispielsweise nützlich, wenn man bei Samba die Konfigurationsdateien abgeändert hat. Mit kill beendet man den Dienst und startet ihn dann mit der geänderten Konfiguration neu. So erspart man sich den sonst nötigen Reboot.

find sucht nach dem Speicherort einer Datei. Das Programm erwartet als ersten Parameter den Suchpfad und dann -name Dateiname. Mit find / -name smbd sucht man beispielsweise den kompletten Verzeichnisbaum nach einer Datei namens „smbd“ ab. find --help liefert alle weiteren möglichen Optionen.

chmod ändert die Zugriffsrechte von Dateien. Wir empfehlen Neulingen aber, diese über den FTP-Client im DCC zu setzen. Ebenso lassen sich über den FTP-Client Dateioperationen (kopieren, löschen) leichter und fehlersicherer durchführen als über die Commandline.

Samba mit der Dreambox

Der wichtigste Schritt, um die Dreambox als File- und Media-Server im Netzwerk zu betreiben, ist die Installation von Samba. Samba ist ein SMB-Server, der in erster Linie Verzeichnisse und Drucker eines Linux-Rechners für Windows-PCs bereitstellt. Zwar kann Samba inzwischen selbst einen zentralen Windows-Domänen-Controller im Windows-Netzwerk ersetzen und sich in das Active Directory eingliedern (siehe unseren Beitrag Linux als PDC mit Samba 3). Doch das würde den Rahmen dieses Beitrags sprengen.

Etliche für die DM 7020 angebotenen Images enthalten bereits einen Samba-Server. Die aktuelle Firmware, die hier zu finden ist, arbeitet mit einem Samba 3 Server. Für unsere Zwecke ist aber auch die schlankere Version 2 vollkommen ausreichend, da wir weder Active Directory noch einen erweiterten Drucker-Support benötigen.

Samba besteht im Wesentlichen aus zwei Programmen. nmbd ist für den Transport der Daten über NetBIOS oder TCP zuständig. smbd kümmert sich um die Anbindung von Shares an die anfragenden Clients im Netzwerk und um das Rechtemanagement.

Samba installieren

Da etliche Images bereits Samba enthalten und es nur noch konfiguriert werden muss, sollte man zunächst nach Samba auf seiner Dreambox suchen. Auf dem telnet-Prompt zeigt ein ps, ob die beiden für Samba nötigen Dienste smbd -D und nmbd -D bereits laufen. Falls nicht, kann man sein System mit find / -name smbd nach der Datei smbd abscannen.

Wird man nicht fündig, haben wir hier ein Software-Paket für Sie zusammengestellt, das neben den Programmen und Konfigurationsdateien auch das Verwaltungs-Tool DCC enthält. Kopieren Sie die beiden Dateien smbd und nmbd via FTP in das Verzeichnis /bin oder /var/bin Ihrer Dreambox. Achten Sie darauf, dass Sie die Rechte auf 755 setzen, damit die Dateien ausführbar sind.

Dann legen Sie im Pfad /lib das Unterverzeichnis codepages an und kopieren die Datei codepage.850 hinein. Setzen Sie sowohl bei dem Verzeichnis als auch bei der Datei die Rechte auf 755. Die Codepage verhindert Probleme mit deutschen Umlauten in Dateinamen. Damit ist die Grundinstallation schon abgeschlossen.

Samba konfigurieren

Die zentrale Steuerstelle von Samba ist die Datei smb.conf. Hierin wird festgelegt, welche Pfade des Dateisystems im Netzwerk zu sehen sind und wer darauf zugreifen kann. Hatte Ihre Installation bereits einen Samba-Server integriert, suchen Sie mit find / -name smb.conf nach der Konfigurationsdatei. Ansonsten nutzen Sie die in unserem Download-Paket enthaltene Datei als Vorlage und kopieren diese in das Verzeichnis /etc. Setzen Sie die Rechte mindestens auf 644.

Die Datei smb.conf gliedert sich in zwei Teile. In der [global]-Sektion gilt es zunächst, die allgemeinen Einstellungen zu treffen.

[global]
load printers = no
guest account = root
log file = /tmp/smb.log
log level=0
security = share
server string = Dreambox Samba Services
workgroup = otto
netbios name = dreambox
browseable = yes
character set = iso8859-1
case sensitive = yes
preserve case = yes
short preserve case = yes
encrypt passwords = no
wins support = no
domain master = no
local master = yes
interfaces = 192.168.178.10/24

Von Interesse sind dabei vor allem folgende Angaben:

Die anderen Einstellungen haben sich in dieser Form bewährt und sollten vorerst nicht abgeändert werden.

Shares anlegen

Im zweiten Teil der Datei smb.conf legen Sie die von der Dreambox freigegebenen Pfade fest. Aufgenommene Filme legt die Dreambox standardmäßig unter /hdd/movie ab. Nutzt man die Box auch als MP3- und Bilder-Server, so sollte man dazu eigene Unterverzeichnisse anlegen, etwa /hdd/Mp3 und /hdd/Bilder und diese dann separat freigeben.

Im Folgenden gehen wir weiterhin von einer freundlichen Umgebung aus. Deshalb legen wir keine Benutzer auf der Dreambox an und geben die Verzeichnisse für alle Netzwerknutzer mit allen Rechten frei. Wie Sie Benutzer und Benutzergruppen unter Linux anlegen und Dateifreigaben mit entsprechenden Zugangsbeschränkungen verwalten, lesen Sie in unseren Beiträgen Linux als Windows-Server mit Samba 3 und für Samba 2 in Linux als Windows-Server.

[Filme]
comment =Aufgezeichnete Filme
path = /hdd/movie
read only = no
public = yes
guest ok = yes

[Mp3]
comment = Musik
path = /hdd/Mp3
read only = no
public = yes
guest ok = yes

In dem abgebildeten Teil der smb.conf werden zwei Freigaben angelegt. Durch weitere Blöcke sind beliebig viele Shares möglich.

Die wichtigsten Parameter bei Freigaben lauten:

Samba testen

Nun ist die Konfiguration fast abgeschlossen. Jetzt müssen Sie nur noch die Datei hostname im Verzeichnis /etc ändern und dort den Namen eintragen, den Sie auch bei „netbios name“ in der smb.conf nutzen. Standardmäßig lautet der Netzwerkname der DM 7020 „dreambox“.

Ebenso muss die Datei hosts im Verzeichnis /etc um folgende Zeile erweitert werden. Ansonsten kann Samba den eigenen Host-Namen nicht in die eigene IP-Adresse umwandeln und bringt die unmöglichsten, wenig aussagekräftigen Fehlermeldungen:

192.168.178.10 dreambox

Nutzen Sie dabei die eigene IP-Adresse der Dreambox und wieder den für Ihre Dreambox gewählten Netbios-Namen. Anschließend ist ein Reboot der Box nötig.

Falls bei Ihrem Image Samba schon aktiviert war, sollten die Shares nach dem Reboot unter Windows bereitstehen. Starten Sie ansonsten Samba via telnet mit den Befehlen smbd -D und nmbd -D. Die Option -D ist nötig und lässt beide Prozesse als Daemon (Systemprozess) laufen. Ein erneuter Aufruf von ps sollte die Prozesse smbd und nmbd nun zeigen. Treten Probleme auf, prüfen Sie zunächst die in [global] angegebene Log-Datei.

Bei Änderungen in der smb.conf beenden Sie zunächst mit dem Befehl kill xxx alle smbd- und nmbd-Prozesse. Die jeweiligen Prozess-IDs für xxx erhalten Sie mit dem Befehl ps. Anschließend können Sie Samba ohne Reboot der Dreambox wie oben beschrieben mit den Änderungen neu starten.

Samba automatisch starten

Die Shares sollten jetzt im Windows-Netzwerk zur Verfügung stehen. Doch noch startet Samba nicht automatisch mit jedem Reboot der Dreambox. Dazu benötigen wir noch ein Start-Script, das smbd und nmbd nach jedem Neustart als Daemon aufruft.

Linux verwendet ein recht komplexes, jedoch mächtiges System, um Scripts automatisch beim Neustart oder Herunterfahren aufzurufen. Alle Start- und Stopp-Scripts speichert man zunächst einmal im Verzeichnis /etc/init.d zentral an einer Stelle. Legen Sie daher eine Textdatei namens samba.sh mit folgendem Inhalt an:

#!/bin/sh
/bin/nmbd -D
/bin/smbd –D

Folgende Fehlerquellen sollten Linux-Neulinge dabei beachten:

rc-Verzeichnisse

Im Verzeichnis /etc finden Sie etliche Unterverzeichnisse, die mit „rc“ beginnen. Diese Verzeichnisse sind für den Aufruf der Start- und Stopp-Scripts zuständig. Linux arbeitet sie beim Hoch- und Herunterfahren je nach Zustand ab. rc6.d wird beispielsweise beim Reboot ausgeführt.

Für uns ist aber das Verzeichnis rcS.d das richtige, denn dieses führt Linux bei jedem Bootvorgang aus. In diesem Verzeichnis legen wir nun einen so genannten symbolischen Link auf unser samba.sh-Script mit folgendem Kommando an:

ln -s /etc/init.d/samba.sh S99samba.sh

Der symbolische Link S99samba.sh zeigt analog den Verknüpfungen von Windows auf die eigentliche Datei samba.sh. Durch dieses System muss das Script nur ein Mal vorhanden sein und kann über mehrere rc-Verzeichnisse aufgerufen werden.

Wichtig ist, dass unser Link mit einem großen “S” beginnt, denn das kennzeichnet ihn als Start-Kommando. Die anschließenden Zahlen der Links im rcS.d-Verzeichnis bestimmen die Reihenfolge der Abarbeitung. Wir wählen 99, da Samba erst gestartet werden sollte, wenn die restlichen Dreambox-Dienste aktiv sind.

Rufen Sie den erzeugten symbolischen Link zum Test via telnet auf. Dann sollte Samba gestartet werden. Falls nicht, prüfen Sie zunächst die Rechte und die richtige Schreibweise. Klappt der Aufruf aus dem Verzeichnis rcS.d, so wird Samba ab sofort bei jedem Neustart der Box mitgestartet.

Fazit

Ab jetzt können Sie die Festplatte der Dreambox nutzen, um von allen PCs im Netzwerk auf gemeinsame Dateien zuzugreifen. Eine Anwendung kann ein zentrales MP3-Archiv sein. Auch die Ablage von Informationen, die man auf mehreren PCs synchron halten möchte (Favoriten des Internet-Browsers), bietet sich an. Vor allem da die Dreambox sehr sparsam mit ihrer Leistungsaufnahme ist und nur rund zehn Watt benötigt, ist es kein Problem, sie permanent als Server laufen zu lassen.

Als Datendurchsatz kann man beim Lesen über ein 100-Mbit-Netzwerk 2,5 MByte/s erwarten. Das Schreiben geht mit 1,5 MByte/s etwas langsamer. Allerdings zeigt sich die DM 7020 mit einigen Netzwerk-Switches unverträglich. Dann bricht die Transferrate auf einige 100 KByte/s ein – zu wenig, um Filme am PC zu betrachten. Die aktuelle Firmware soll hier Abhilfe schaffen und enthält eine spezielle Netzwerkoption für inkompatible Switches bereit. Falls das nicht hilft, bietet sich der Neukauf eines anderen Switches an. Der Preis ist dabei kein Funktionskriterium. Gerade die Geräte für unter 15 Euro laufen mit der Dreambox meist stressfrei.

Nachdem jeder Windows-PC durch Samba nun auf die Box zugreifen kann, ist auch eine Wiedergabe von aufgezeichneten Filmen über die Windows-Rechner im Netzwerk möglich. Wie Sie zudem den Live-Fernseh-Stream am PC mitverfolgen, behandelt der nächste Teil der Serie. (ala)

Serie: Die Dreambox als Mediaserver im Netzwerk

Teil 1

Überblick und Netzwerkkonfiguration

Teil 2

Dreambox: Der Linux-Satelliten-Receiver als Samba-Server

Teil 3

Audio- und Video-Streaming mit der Dreambox