Seite 1 von 1

HD2 (Alle Boxen!) - Recovery via UART und USB

Verfasst: Fr 8. Apr 2016, 12:33
von gandharva
Dieses HOWTO ist nur für äußerste Notfälle und sollte normalerweise nicht benötigt werden!

In 99% der Fälle sollte folgende Recoverymethode ausreichen: HD2 (Alle Boxen!) - Recovery von Kernel und Image via USB


Vorbereitung:
  • Tera Term Download: http://en.sourceforge.jp/projects/ttssh2/releases/
  • In Tera Term müssen die Einstellungen der seriellen Schnittstelle (Setup -> Serial port) folgendermaßen gesetzt sein: Log erstellen
  • Passendes Paket aus dem Anhang laden und entpacken -> WICHTIG! Genau darauf achten, welches Paket ihr ladet!
Schritt 1: Schritt 2:
  • Gerät ausschalten und öffnen.
  • Jumper JP1 (Apollo) oder JP5 (Kronos) auf dem Mainboard stecken. Falls ihr keinen Jumper zur Hand habt, geht auch ein Stück Draht oder eine Heftklammer aus Metall.
  • Box und PC mit Nullmodem Kabel verbinden. Dabei sollten beide Geräte ausgeschaltet sein.
Schritt 3:
  • Benutze ein serielles Terminal Programm (Tera Term oder minicom) welches das Y-Modem Protokoll versteht. Download von Tera Term siehe Einleitung.
  • Gerät einschalten.
  • Das Terminal sollte nun ein 'C' Zeichen zeigen. Das bedeutet, dass das Mainboard nun bereit ist zum Laden von bootloader und u-boot.
  • Sende nun vom Terminal "uldr.bin.uartboot_img" zum Mainboard (-> Tera Term: File -> Transfer -> YMODEM -> send)
    Danach siehst du wie nach u-boot gefragt wird und es wird wieder das 'C' Zeichen gezeigt.
  • Sende nun vom Terminal "u-boot.bin" und drücke schnell "Enter" nach dem Übertragen des Files, noch bevor der Kernel startet!
    Wenn man zu langsam ist, crashed der Boot-Prozess. Man muss dann das Mainboard resetten und wieder von Schritt 2 beginnen.
Schritt 4:
  • Stecke den vorbereiteten FAT32 USB Stick in den Front USB Anschluß des Gerätes.
  • Folgende Kommandos (Befehle) ausführen:

Code: Alles auswählen

usb start
-> wenn der USB Stick nicht erkannt wird, wiederhole den Befehl

Code: Alles auswählen

fatload usb 0 $loadaddr uldr.bin

Code: Alles auswählen

sfc erase uldr
-> erase (löschen) und write (schreiben) dauert eine Weile, also nur die Ruhe!

Code: Alles auswählen

sfc write uldr

Code: Alles auswählen

fatload usb 0 $loadaddr u-boot.bin

Code: Alles auswählen

sfc erase u-boot

Code: Alles auswählen

sfc write u-boot

Code: Alles auswählen

saveenv
-> speichert die Variablen

EMPFOHLEN: Wer sich ab hier für das einfachere Emergency Restore via USB entscheidet,
kann nun zu Schritt 5 springen und danach mit folgendem HowTo weitermachen: HD2 (Alle Boxen!) - Recovery von Kernel und Image via USB

Code: Alles auswählen

fatload usb 0 $loadaddr vmlinux.ub.gz

Code: Alles auswählen

sfc erase kernel

Code: Alles auswählen

sfc write kernel

Code: Alles auswählen

nand erase
-> NAND Flash wird gelöscht, dauert eine Weile!

Code: Alles auswählen

fatload usb 0 $loadaddr rootfs.arm.jffs2.nand
-> Konvertiere in HEX (z.B. in Windows den Rechner des PC verwenden) die angezeigte dezimale Größe in Bytes und verwende den HEX Wert im nächsten Befehl!

Code: Alles auswählen

nand write.jffs2 root0 <Größe des ROOT Image in HEX>

Schritt 5: Schalte die Box aus und entferne den Jumper (JP1 oder JP5). Baue die Box wieder zusammen.

Nun sollte die Box wieder korrekt funktionieren.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hier noch Bilder der Jumper:

Tank
CST-Tank_JP1.jpg
CST-Tank_JP1.jpg (30.34 KiB) 3849 mal betrachtet
Trinity
trinity_jumper.png
Kronos
kronos_jumper.jpg

Re: HD2 (Alle Boxen!) - Recovery via UART und USB

Verfasst: So 19. Apr 2020, 16:57
von Don de Deckelwech
Hi,
wer bei Schritt 3 Probleme hat, weil die Übertragung der Datei "uldr.bin.uartboot_img" nicht klappt, sondern nur weiterhin die C's im Log erscheinen, dem hilft vllt folgendes:
das Übertragen der Datei in TeraTerm schon anstossen bevor die C's im Log erscheinen. Das Timing ist halt manchmal kritisch...

Ciao,
DdD.