-------------------------------------------
Da keiner meiner USB Stick mit meiner Box zusammenarbeiten will, habe ich das Image kurzerhand per TFTP in die Box geladen.
Hier mal eine Schritt für Schritt Anleitung, wie man das Dateisystem über den Bootloader per TFTP wieder einspielen kann. Hierbei geht es ausschließlich um das Dateisystem. Für den Linux-Kernel sind die im folgenden angegebenen Adressen falsch.
Voraussetzungen:
- PC ist per Nullmodemkabel und per Netzwerk, z. B. über einen Switch, mit der Box verbunden
- Auf dem PC läuft ein Terminalprogramm, wie z. B. Putty, mit den Parametern 115200 Baud, 8 Datenbits, 1 Stopbit, keine Parität, kein Handshake
- Auf dem PC läuft ein TFTP Server wie z. B. Tftpd32
- Im Wurzelverzeichnis des TFTP Servers befindet sich das zu flashende Image in entpackter Form (kein zip, gz, 7u oder sonstiges)
Und so geht's:
Schritt 1:
Box einschalten und sofort nach der Hardwareausgabe des Bootloaders im Terminalprogramm eine Taste drücken, so das der Startvorgang unterbrochen wird.
Die Anzeige im Terminalprogramm sollte z.B. so aussehen:
Code: Alles auswählen
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º U-Boot 2009.03-svn1556 (Mai 27 2010 - 01:23:56) Coolstream HDx º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º Chipset information º
º Vendor: Conexant Type: CX2450x (Nevis) Revision: D0 Fuses: 7EFE6D24 º
º Option: 00010000 max. clock: 600 MHzCore voltage: high º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º Clock information º
º MPG0: 594.000 MHz MPG1: 594.000 MHz HD : 593.407 MHz AUD : 491.520 MHz º
º PLL0: 432.000 MHz PLL1: 594.000 MHz PLL2: 533.333 MHz º
º CPU : 594.000 MHz from PLL1 º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º Memory configuration º
º Start³ End ³ Type ³ Description º
ºÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĺ
º 00000000 ³ 0FFFFFFF ³ RAM ³ System main memory bank #0 º
º 10000000 ³ 17FFFFFF ³ RAM ³ System main memory bank #1 º
º F0000000 ³ F1FFFFFF ³ FLASH ³ Spansion S29GL256P (256 Mbit / 16M x 16) º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º Serial number: 008-00002689 (08-000A81) º
º *** Warning - bad CRC, using default environment *** º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º Network configuration º
º MAC: Conexant VMAC rev. 07 address: 00-C5-5C-00-0A-81 º
º PHY: IC Plus IP101 address: 09 º
Error: Bad gzipped data
Error: no valid bmp or bmp.gz image at f0060000
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Hit any key to stop autoboot: 0
HDx>
Netzwerk Parameter der Box überprüfen indem man im Terminaprogramm folgendes eintippt:
Code: Alles auswählen
printenv
Code: Alles auswählen
bootargs=console=ttyRI0 mtdparts=cx2450xflash:384k(U-Boot)ro,128k(Splash),4096k(kernel),28160k(systemFS) root=mtd3 rootfstype=jffs2 rw mem=384M
bootcm[COLOR=red][B]<x>[/B][/COLOR]d=bootm 0xF0080000
bootdelay=1
baudrate=115200
ipaddr=192.168.1.100
serverip=192.168.1.16
netmask=255.255.255.0
bootfile="uImage"
splashimage=f0060000
stdin=serial
stdout=serial
stderr=serial
Environment size: 342/131068 bytes
ipaddr = Die IP Adresse der Box
netmask = Die Subnetmask des lokalen Netzwerkes
serverip = Die IP Adresse des TFTP Servers, in unserem Falle der PC von dem aus wir arbeiten
Ändern der Parameter geht mit folgender Eingabe:
Code: Alles auswählen
set ipaddr x.x.x.x
set netmask x.x.x.x
set serverip x.x.x.x
Die Eingabe in die Konsole gibt keine Rückmeldung. Die Parameter werden auch nicht permanent gespeichert, beim nächsten Reset sind sie wieder wie vorher. Überprüfen kann man die Eingabe erneut mit "printenv".
Wenn alles passt, kann es auch schon losgehen. Bitte vom PC aus einen Ping auf die Box machen, ob die Verbindung besteht. Dies geht über "Start" -> "Ausführen" -> "cmd" und Enter, es öffnet sich die Eingabeaufforderung auf dem PC, dort dann bitte "ping x.x.x.x" eingeben, wobei x.x.x.x die IP Adresse der Box ist. Manchmal gibt es keinen Ping zurück, es sollte dann aber zumindest als Ergebnis stehen "Zielhost nicht erreichbar".
Schritt 3:
Image vom PC in die Box laden per TFTP
Mit folgendem Befehl laden wir das Image in die Box:
Code: Alles auswählen
tftp 0x0E000000 image.img
Code: Alles auswählen
TFTP from server 192.168.1.2; our IP address is 192.168.1.40
Filename 'image.img'.
Load address: 0xe000000
Loading:#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######
done
T Bytes transferred = 23932636 (16d2edc hex)
Nun haben wir das Image in den Arbeitsspeicher der Box geladen.
Schritt 4:
Löschen des für das Image vorgesehenen Bereiches im Flash. Dazu dient diese Eingabe:
Code: Alles auswählen
erase 0xF0480000 0xF1FFFFFF
Code: Alles auswählen
..................................................................................
..................................................................................
........................................................
Erased 220 sectors
Die oben beim Lesen der Imagedatei notierte Größenangabe ( 23932636 Byte ) durch 4 teilen. Sollte dabei ein Rest übriegbleiben oder das Ergebnis ungerade sein, muß das Ergebnis aufgerundet werden, damit es durch 2 teilbar ist. 23932636 / 4 = 5983159 -> 5983160. Diese Dezimalzahl muß nun noch in die hexadezimale Darstellung umgerechnet werden. Dazu kann man z.B. den Windows-Rechner im Wissenschaftlichen Modus benutzen. 5983160 dezimal sind 0x5B4BB8 hexadezimal. Dieser Wert wird für den nun folgenden letzten Schritt benötigt.
Schritt 6:
Jetzt wird geflasht. Dazu folgendes im Terminalprogramm eingeben:
Code: Alles auswählen
cp 0x0E000000 0xF0480000 0x5B4BB8
Code: Alles auswählen
Copy to Flash.....................................................
..................................................................
..............................
done
Manchmal muss zweimal geflasht werden, ich habe bisher nicht verstanden wieso, aber U-Boot ist manchmal etwas zickig.
Befehle werden manchmal nicht beim ersten mal angenommen, dann einfach nochmal eingeben. Also nicht gleich nach dem ersten Versuch aufgeben
Danke an die Anleitung von Coolstreamer, wovon ich einiges verwendet habe.
Das Flashen geschieht auf EIGENE GEFAHR, ihr könnt euch eure Box bei Verwendung von falschen Parametern kaputt flashen! Also bitte lieber alles genau zweimal durchlesen, nochmal die Eingaben überprüfen und genau nachrechnen. Wenn ihr unsicher seid, meldet euch, BEVOR ihr einfach etwas ausprobiert, auch wenn ihr eine Weile auf die Antwort warten müsst! Besser alle Zweifel sind beseitigt als das ihr am Ende eine tote Box habt. Es droht der Verlust der Garantie bei falscher Verwendung und ich übernehme keine Haftung oder Verantwortung für euer Handeln!
Viel Erfolg beim "Reviven" euerer Box!
Anleitung geschrieben von Gandharva,