Howto:Bootlog

Aus DreamboxWIKI
Wechseln zu: Navigation, Suche



Allgemeines

Wenn Probleme beim Start der Box auftreten, kann es unter Umständen hilfreich sein, wenn man ein Bootlog erstellt. Durch das Protokollieren der Ausgaben auf der seriellen Konsole mit Hilfe eines Nullmodemkabels und eines Terminalprogramms wie z.B. Minicom oder Hyperterminal wird ein solches Bootlog erstellt.

Vorgehensweise bei der Erstellung eines Bootlogs

Bevor ein Bootlog erstellt werden kann, muss die so genannte "Kernel Command Line" der Dreambox überschrieben werden. Dies ist notwendig, um die Ausgaben des Systems auf die serielle Konsole umzuleiten – normalerweise werden diese einfach verworfen (/dev/null). Bei den Modellen DM7020 und DM7025 kann dies über den Second Stage Bootloader (das BIOS der Dreambox) geschehen. Bei allen anderen Modellen muss die manuelle Methode angewandt werden.

Danach kann z.B. mit Hilfe des Microsoft Terminal Programms "Hyperterminal" und einem Nullmodemkabel ein Bootlog erstellt werden.

Hyperterminal einrichten (Windows)

Hypterterminal ist bei jeder Standardinstallation von Windows XP direkt dabei.
Man findet es unter Start -> Programme -> Zubehör -> Kommunikation -> Hyperterminal

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden

Gebt nun einen Namen für die Verbindung ein und bestätigt mit OK, im Beispiel nenne ich die Verbindung "Dreambox".

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden

Hier muss der COM-Port ausgewählt werden, über den die Dreambox am PC angeschlossen ist – im Beispiel ist dies COM1.

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden

Hier müsst ihr die Baud-Rate noch auf 115200 stellen, die restlichen Einstellungen sind standardmäßig korrekt und sollten denen im Screenshot entsprechen.
Ruft jetzt den Dialog Datei -> Eigenschaften auf.

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden

Hier sollte man die Terminalerkennung auf Auto-Erkenn. stellen, ansonsten ist das BIOS Schwarzweiss und nicht farbig, wie es sein sollte.

Verbindung speichern

Vergesst nicht die neu angelegte Verbindung über Datei -> Speichern zu sichern, sonst muss sie beim nächsten Mal wieder neu angelegt werden. Gespeicherte Verbindungen für Hyperterminal findet ihr standardmäßig (wenn ihr beim Speichern den Pfad nicht verändert) unter Start -> Programme -> Zubehör -> Hyperterminal -> "Namederverbindung.ht"

Minicom einrichten (Linux)

Minicom starten mit: minicom -con -w

  • -con für eine farbige Konsole (beim Secondstage)
  • -w damit lange zeilen gewrappt werden


Die Einstellungen in Minicom erfolgen menübasiert mit Strg+A O. Unter "Serial port setup" muss man die korrekte Gerätedatei (z.B. /dev/ttyS0 für den ersten seriellen Anschluss oder /dev/ttyUSB0 bei einem USB-Port-Adapter) angeben und die Parameter des seriellen Ports auf 115200 8N1 einstellen:

   +-----------------------------------------------------------------------+                                         
   | A -    Serial Device      : /dev/ttyUSB0                              |                                         
   | B - Lockfile Location     : /var/lock                                 |                                         
   | C -   Callin Program      :                                           |                                         
   | D -  Callout Program      :                                           |                                         
   | E -    Bps/Par/Bits       : 115200 8N1                                |                                         
   | F - Hardware Flow Control : Yes                                       |                                         
   | G - Software Flow Control : No                                        |                                         
   |                                                                       |                                         
   |    Change which setting?                                              |                                         
   +-----------------------------------------------------------------------+  

Kernel Command Line manuell überschreiben


Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
An dieser Stelle muss noch Text rein.

Kernel Command Line durch das Bios überschreiben lassen (Alle Modelle >= DM7020 ohne USB Service-Port)

HINWEIS: Bei sämtlichen Dreamboxen mit USB Service-Port (DM500hd, DM800SE und DM7020HD) ist das Logging bereits werksseitig aktiviert! Eine Änderung der Kernel Command Line ist bei diesen Geräten nicht notwendig wenn ein Bootlog erstellt werden soll!

Bevor man auf das BIOS der Box zugreifen kann, muss diese dazu gebracht werden beim Bootvorgang anzuhalten. Dies geschieht, indem man beim Einschalten die Pfeil-nach-Unten-Taste an der Box (nicht an der Fernbedienung!) gedrückt hält. Auf dem LCD erscheint nun *** STOP ***. Sofern sich im Netzwerk ein DHCP-Server befindet, wird die Box von diesem eine IP beziehen, diese ist über *** STOP *** zu sehen – beispielhaft wird in diesem Howto die IP 192.168.0.20 verwendet. Nun auf Start -> Ausführen gehen und Folgendes eingeben: telnet 192.168.0.20 192.168.0.20 ist dabei durch die IP zu ersetzen, die auf dem Display der Box erscheint.

Ist dies nicht der Fall und über *** STOP *** steht nur dhcp..., so muss zuerst über die serielle Schnittstelle auf das BIOS zugegriffen werden.

Mit DHCP-Server im Netzwerk

  1. Box mit gedrückter Pfeil-nach-Unten-Taste (die der Box, nicht die der Fernbedienung!) einschalten
  2. IP am Display der Box ablesen (z.B. 192.168.0.20)
  3. Start -> Ausführen
  4. telnet 192.168.0.20
    1. ACHTUNG: 192.168.0.20 ist durch die IP zu ersetzen, die auf dem Display der Box steht, steht hier nur dhcp... verwendet bitte die Methode Ohne DHCP-Server im Netz

Ohne DHCP-Server im Netzwerk

  1. Terminalprogramm mit den Verbindungseinstellungen für die Dreambox starten
  2. Box mit gedrückter Pfeil-nach-Unten-Taste (die der Box, nicht die der Fernbedienung!) einschalten
  3. Wenn *** STOP *** am LCD erscheint, sollte das BIOS im seriellen Terminal sichtbar sein!

Alternative Kernel Command Line einstellen

HINWEIS: Bei sämtlichen Dreamboxen mit USB Service-Port (DM500hd, DM800SE und DM7020HD) ist das Logging bereits werksseitig aktiviert! Eine Änderung der Kernel Command Line ist bei diesen Geräten nicht notwendig wenn ein Bootlog erstellt werden soll!

Wenn ihr euch im BIOS der Box befindet, navigiert mit den Pfeiltasten auf das Menü "Boot"

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden

Folgende Schritte sind hier vorzunehmen:

  1. Change Command Line -> Enabled (auswählen und mit Eingabetaste ändern)
  2. Kernel Command Line:
DM7025:
console=ttyS0,115200 root=/dev/mtdblock2 rootfstype=jffs2 ro

ACHTUNG In Opendreambox 2.0 basierten Firmwareimages für die DM8000 und DM7020HD wurde ab 2013-03-02 ein neues Flash-Dateisystem namens UBIFS eingeführt welches das bisher benutzte JFFS2 bei diesen Geräten ersetzt. Bitte beim Ändern der Kernel-Commandline unbedingt darauf achten, dass der korrekte Befehl für das jeweilige Dateisystem benutzt wird. Alte Kernel-Commandlines müssen ZWINGEND vor dem flashen einer solchen Firmware, z.B. durch zurücksetzen des 2nd-Stage Bootloaders gelöscht werden!

Wer sicher gehen möchte kann das zu Grunde liegende Dateisystem manuell ermitteln

DM800 / DM8000 (JFFS2):
console=ttyS0,115200 root=/dev/mtdblock3 rootfstype=jffs2 rw
DM8000 (UBIFS)
console=ttyS0,115200 ubi.mtd=root root=ubi0:rootfs rootfstype=ubifs rw

Die gelb markierten Zeichen dienen nur zur Kennzeichnung der Unterschiede der Command Line der DM 7025 und der DM 800/8000.

ACHTUNG: Achtet auf Groß-/Kleinschreibung!

3. Menü Exit wählen (Links/Rechts)

4. Menüpunkt Save Settings wählen

Dateisystem manuell ermitteln

Nach einem login auf der Konsole via telnet oder ssh muss der Befehl 'mount' ausgeführt werden.

Auf Geräten mit UBIFS sollte das ganze in etwa wie folgt aussehen:

root@dm7020hd:~# mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw,relatime)

Auf Geräten mit JFFS2 fehlt der offensichtliche "ubi0:rootfs on /" Eintrag. Stattdessen sollte dort jedoch folgendes zu finden sein

/dev/mtdblock3 on / type jffs2 (rw,relatime)

Der Eintrag

/dev/mtdblock2 on /boot type jffs2 (rw,relatime)

existiert in beiden Fällen gleichermaßen.

Bootlog erstellen

Nachdem eine Verbindung mit dem Terminalprogramm eingerichtet und das BIOS korrekt eingestellt wurde, kann nun ein Bootlog erstellt werden.

  1. Terminalprogramm mit den Verbindungseinstellungen für die Dreambox starten
  2. und Meldungen protokollieren (z.B. Menü: Übertragung -> Text aufzeichnen)
  3. Dreambox einschalten
  4. Nach Abschluss des Bootvorganges oder wenn die Box hängt und nichts mehr macht, könnt Ihr die Verbindung zwischen dem Terminalprogramm und Dreambox entweder trennen oder das Terminalprogramm beenden, das Bootlog findet ihr dann in der Datei, die ihr ausgewählt habt.