Image von USB booten

Aus DreamboxWIKI
Wechseln zu: Navigation, Suche

Intro

Diese kleine Anleitung beschreibt, wie Sie ein Image so auf den USB-Stick bringen, dass Sie es mit der DM800 booten können. Alle Schritte können mit der DM800 durchgeführt werden. Sie benötigen Ihren PC nur, um sich an der DM800 per Telnet/FTP einzuloggen. Keine Angst, alle Schritte werden so beschrieben, dass auch mit wenig/keinen Linux-Kenntnissen alles gemacht werden kann.

Übersicht: Wie funktioniert das Booten vom Stick bei der DM800?

Das 64MB große Flash der DM800 besteht aus drei Teilen:

1.  0,25MB  Second-Stage-Bootloader (256KB)
2.  3,75MB  /boot (eine jffs2-Partition mit  3,75MB)
3. 60,00MB  /root (eine jffs2-Partition mit 60,00MB)

Der First-Stage Bootloader

Der First-Stage Bootloader befindet sich in einem gesonderten, geschützten Flashbaustein. Er lädt den Second-Stage Bootloader ins RAM und startet ihn.

Der Second Stage Bootloader

Der Second Stage Bootloader ist ein 'Hi-Tec' Bootloader mit

  • Webinterface zum Flashen von Images
  • Setup-Menu zur Auswahl der Bootquelle (bspw. "/usb/autorun.bat")
  • Verarbeitung einer Startdatei (Textdatei mit einem Programmaufruf in jeder Zeile)
  • Fähigkeit vom Flash zu booten (lesen des jffs2-Dateisystems im Flash).
  • Fähigkeit von USB zu booten (Kann Dateisystem FAT lesen (eigentlich FAT16), wenn 1.Partition).
  • Fähigkeit vom Netzwerk zu booten (tftp, Kernel lädt Rest über TFTP nach)

Er ist in den rund 32MB großen Images mit enthalten, d.g. er wird i.d.R. mitgeflasht! Die derzeit aktuelle Version ist v61. Der noch verbreitete Vorgänger v60 hat im Setup nicht die Option "USB Support enabled/disabled".

Der Second-Stage-Bootloader wird vom First-Stage-Bootloader aufgerufen. Der dient als Notreserve: Wenn bei Flashen eines Images etwas schief ging, so kann man immer noch mit einem seriellen Nullmodemkabel mit DreamUp ein neues Image flashen.

Damit der Secondstage-Bootloader in Erscheinung tritt, müssen Sie beim Einschalten/Hochfahren den Powerknopf der DM800 gedrückt halten. Im Display der DM800 steht dann *stop* und darüber - falls ein Netzwerk mit DHCP-Server (bspw. ein DSL-Router) vorhanden ist - die Netzwerk-Adresse, bspw. "192.168.1.101".

Flashmenu-Webinterface des Second-Stage-Bootloaders

Wenn Sie an Ihrem PC im Webbrowser nun die angezeigte IP (bspw. "192.168.1.101") eingeben, erhalten Sie eine Website, wo Sie über den Link "Image flashen" bequem ein neues Image in das interne Flash der Box hochladen können.

Setup-Menu für Boot-Konfig

Dieses ähnelt dem BIOS-Setup des PC. Es erscheint aber nicht auf dem angeschlossenen Fernseher!

Sie haben 2 Möglichkeiten es anzuzeigen:

  1. Telnet zur angezeigten IP-Adresse
  2. Ein Nullmodemkabel zur Box und ein Terminalprogramm mit 115200 Baud (8N1)

Doch dazu später mehr.

Telnet-Verbindung zur DM800

Aber erstmal der Reihe nach:

  • Verbinden Sie Ihre DM800 über ein Netzwerkkabel mit Ihrem DSL-Router und starten Sie die DM800 neu. Der DSL-Router wird per DHCP der DM800 eine IP-Adresse geben. Diese wird im Display der DM800 angezeigt, wenn Sie beim Einschalten der Box den Powerknopf am Gerät gedrückt halten. Notieren Sie sich diese!
  • Öffnen Sie nun eine Telnet-Verbindung zur DM800 (ich empfehle die Putty, indem Sie bei Putty die IP der DM800 eingeben und verbinden.

USB-Stick partitionieren

Da der Second-Stage-Loader nur FAT lesen kann, brauchen wir eine kleine FAT-Partition. Dort werden wir von jedem Image den Kernel ("vmlinux.gz") und eine angepasste "autorunN.bat") unterbringen. Die root jedes Images (das "Haupt-Dateiverzeichnis" eines Linux-Sytems) wird in einer eigenen ext3-Partition liegen.

Prüfen Sie, ob der USB-Stick von der DM800 erkannt wurde: Geben Sie /dev/scsi ein und drücken Sie mehrmals die TAB-Taste.

  • a) Er bleibt bei /dev/scsi/host0/lun0/disc stehen, dann haben Sie einen unpartitionierten (absolut leeren) USB-Stick.
  • b) Er bleibt bei /dev/scsi/host0/lun0/ stehen und schreibt nach doppel-klick auf TAB-Taste
 disc part1 part2 ...

Dann ist der Stick bereits partitioniert und enthält vermutlich (wichtige?) Daten. In dieser Anleitung wird der Stick komplett gelöscht!!!!!

  • c) Er bleibt noch vor lun0 stehen, dann wurde der Stick nicht erkannt! Geben Sie folgende zwei Befehle ein:
  modprobe usb-storage
  modprobe std... (ich weiss grad nicht mehr den parameter, bitte ergänzen, falls bekannt)
Hinweis
Falls Sie zum Aufzeichnen Ihrer Filme eine SATA-Festplatte am internen/externen eSATA Anschluss verwenden, wird diese unter /dev/ide/... zu finden sein. Falls Sie jedoch eine USB-Festplatte verwenden, wird Sie wie der USB-Stick unter /dev/scsi/.. stehen. Ich empfehle, bis Sie mit diesem How-To fertig sind, andere USB-Festplatten abzustöpseln :-)

So, sorry, aber ich werde später hier weiterschreiben.