Dreambox:Howto:Netzwerkboot
Inhaltsverzeichnis
Einleitung
Dieser Artikel beschreibt, wie man eine Dreambox über LAN (per NFS) booten lässt. Im diesem Artikel wird der Vorgang auf Basis einer Openembedded Build-Umgebung für eine DM7020 erklärt (passt zu 99,9% auch bei DM7025 ff.). Prinzipiell kan man mit jeder Dreambox über einen entsprechenden Kernel aus dem Netz per bootp/tftp booten und auch jedes beliebige (zum Boxmodell passende) root Dateisystem kann verwendet werden, es müssen nur jeweils die Pfade entsprechend angepasst werden.
Annahmen
Folgende Annahmen werden getroffen:
- IP-Adresse der Dreambox: 192.168.0.99
- IP-Adresse des Servers: 192.168.0.2
- Pfad zu OpenEmbedded: /srv/oe/dm7020/build/tmp/rootfs/boot
Diese Daten sind an die lokalen Gegebenheiten anzupassen. Die Befehle in diesem Howto sind auf ein Debian-System ausgelegt, bei anderen Distributionen können die Dateien an anderer Stelle liegen.
Voraussetzungen
Benötigt werden:
- ein lauffähiges Openembedded auf dem Server
- Ein TFTP-Server
- Ein DHCP-Server
- Die MAC-Adresse der Dreambox
- Ein Terminalprogramm (minicom, Hyperterminal, Tera Term Pro)
- Eine Verbindung vom PC zur Box per LAN und Nullmodem-Kabel
Konfiguration
/etc/hosts
Zunächst muss der Server wissen, unter welchem Namen er die Dreambox erreichen kann. Dafür benötigt man einen Eintrag in der Datei /etc/hosts auf dem Server. Dort wird die IP-Adresse für die Box und der gewünschte Hostname eingetragen, z.B.
192.168.0.99 dm7020
TFTP-Server
In der Datei /etc/inetd.conf wird folgendes eingetragen:
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /srv/oe/dm7020/build/tmp/rootfs/boot
TCPD muss natürlich vorhanden sein
Der inetd wird neu gestartet
/etc/init.d/inetd restart
DHCP-Server
Ein DHCP-Server muss installiert sein. In der /etc/dhcpd.conf werden folgende Einträge vorgenommen
{ fixed-address 192.168.0.99; hardware ethernet xx:xx:xx:xx:xx:xx; <<- Die MAC-Adresse der Dreambox allow bootp; server-name "192.168.0.2"; option root-path "/srv/oe/build/tmp/rootfs,rsize=1024"; }
Der dhcpd wird neu gestartet:
/etc/init.d/dhcp3-server restart
NFS-Server
Auf dem Server muss ein NFS-Server laufen. Die /etc/exports wird folgendermaßen ergänzt
/srv/oe/ 192.168.0.0/255.255.0.0(rw,no_root_squash,sync)
Der NFS-Server wird neu gestartet:
/etc/init.d/nfs-kernel-server restart
Alternativ kann man auch durch
exportfs -a
die Exports aktualisieren.
Dateien von Box kopieren
Es werden 3 Dateien aus dem Flash-Image der Box benötigt. Im Verzeichnis /boot liegen die Dateien
- backdrop.mvi
- bootlogo.mvi
- bootlogo_wait.mvi
Diese werden ins OE-Verzeichnis auf dem Server kopiert, und zwar nach
/srv/oe/build/tmp/rootfs/boot
Außerdem noch die Datei
- /etc/network/interfaces
aus dem Flash nach
/srv/oe/build/tmp/rootfs/etc
kopieren und folgendermaßen anpassen:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface auto lo iface lo inet loopback # Ethernet auto eth0 iface eth0 inet static address 192.168.0.99 broadcast 192.168.0.255 gateway 192.168.0.1 (Euer lokales Gateway) netmask 255.255.255.0
Ohne diese Dateien wird die Box nicht booten.
DHCP ausschalten
Wichtig: Im Dreambox-Setup (Einstellungen, Experten, Kommunikation) muss DHCP ausgeschaltet werden und eine IP-Adresse von Hand vergeben werden. In unserem Falle die 192.168.0.99.
Box starten
Bevor die Box gebootet wird, wird das Terminalprogramm der Wahl gestartet. Alternativ kann man auch vor dem Einschalten der Box die Pfeil-Nach-Unten-Taste drücken. Als Kernel-Commandline wird nun folgendes eingegeben:
console=ttyS0,115200 root=/dev/nfs ip=dhcp rw
Bestätigen und die Box sollte vom Netzwerk booten.
Anpassungen
Will man, dass die Box grundsätzlich von NFS bootet und gar nicht erst aus dem Flash, ist folgendes zu tun:
Man begibt sich ins BIOS der Box (beim Booten im Terminalfenster sofort "S" drücken oder mit "Pfeil-Runter-Taste" einschalten und ins Setup gehen. Hier stellt man den Parameter
Kernel Command Line Override
auf "enabled" und trägt in der nächsten Zeile die command line fürs Booten aus dem Netz ein:
console=ttyS0,115200 root=/dev/nfs ip=dhcp rw
Dann speichern und rebooten.
Grundlagen - Installation - Debug-Mode - Hardware - CDK/Development
LCars - Neutrino - Enigma - Plugins - Spiele - Software - Tools - Howto - FAQ - Images
Hauptseite - News - Alle Artikel - Bewertungen - Gewünschte Seiten - Index - Neue Artikel - Impressum - Team
Hilfeportal - Seite bearbeiten - Bilder - Links - Tabellen - Textgestaltung