Hardware:CST:Anleitungen:Recovery UART USB
Inhaltsverzeichnis
Anleitung
Anleitung um Apollo Boards (Tank, Trinity) per UART und USB wieder herzustellen:
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: Apollo/Kronos - Recovery von Kernel und Image via USB (ab NG 2.6 oder CST 2.13)
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:
- Passendes Paket aus dem Anhang laden (hängt vom Boxtyp und vom Image bzw. dem Kernel im Image ab das ihr danach flashen wollt)
Schritt 1
- Auf einen FAT32 formatierten USB Stick kopiert man folgende Files: uldr.bin, u-boot.bin und optional vmlinux.ub.gz, rootfs.arm.jffs2.nand (umbenanntes NG Image).
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 das 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 die Datei "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 muß das Mainboard resetten und vom Schritt 2 wieder beginnen.
Schritt 4
- Stecke den vorbereiteten FAT32 USB Stick in den Front USB Anschluß des Gerätes.
- Folgende Kommandos (Befehle) ausführen:
usb start
-> wenn der USB Stick nicht erkannt wird, wiederhole den Befehl
fatload usb 0 $loadaddr uldr.bin sfc erase uldr
-> erase (löschen) und write (schreiben) dauert eine Weile, also nur die Ruhe !
sfc write uldr fatload usb 0 $loadaddr u-boot.bin sfc erase u-boot sfc write u-boot saveenv
-> speichert die Variablen
Hinweis: Wer sich ab hier für das einfachere Emergency Restore via USB entscheidet (-> empfohlen!),
kann nun zu Schritt 5 springen und danach mit folgendem HowTo weitermachen: Apollo/Kronos - Recovery von Kernel und Image via USB (ab NG 2.6 oder CST 2.13)
fatload usb 0 $loadaddr vmlinux.ub.gz sfc erase kernel sfc write kernel nand erase
-> NAND Flash wird gelöscht, dauert eine Weile !
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!
nand write.jffs2 root0 <Größe des ROOT Image in HEX>
Schritt 5
- Schalte Box aus, stecke den Jumper JP1 aus, baue die Box wieder zusammen.
Schritt 6
- Nun sollte die Box wieder korrekt funktionieren.
Quelle
Vielen Dank an das NG-Return Board für die Freigabe dieses Artikels.