Ich habe einen kleinen Testcomputerboard (
http://www.mikrocontroller.net/articles/AVR32_Grasshopper#Flashen_des_JFFS2-Dateisystems_unter_Linux
), auf dem früher alles gut lief. Jetzt kommt beim Starten diese
Fehlermeldung:
Bad Data CRC
Ich weis momentan keinen Rat, wie ich das Problem lösen kann. Bedeutet
das vielleicht, dass das filesystem kaputt ist oder der Kernel futsch
und neu draufgespielt werden müsste?
dummschwaetzer schrieb:> crc falsch: datei beschädigt! das warum währe da ehr die frage( defektes> speichermedium, defekter ram, defekter prozessor, ...)
gibt es eine Möglichkeit, defektes ram/speichermedium festzustellen?
Hägar der Schreckliche schrieb:> dummschwaetzer schrieb:>> crc falsch: datei beschädigt! das warum währe da ehr die frage( defektes>> speichermedium, defekter ram, defekter prozessor, ...)>> gibt es eine Möglichkeit, defektes ram/speichermedium festzustellen?
Klar, mit einem CRC.
Hallo
Wird das Kernel Image aus einem NAND Flash gebootet? Wenn hier keine
ordentliche Speicherverwaltung (Stichwort BadBlocks) stattfindet, können
solche Probleme mit der Zeit auftreten (NAND altert).
Eine mögliche Lösung wäre einen Kernel über Netzwerk oder USB zu booten,
und dann mit den mtd-utils den Kernel wieder in die entsprechende
Partition zu schreiben.
Gruß
Bean
Kommt auf die Hardware an. Normalerweise bekommt man die Images
"precompiled" Zumindest bei den Produkten mit Marvell chip (PogoPlug
etc.)
Wenn Du den Kernel erst selber compilieren musst wird es etwas
aufwändiger. Da brauchst dann auch noch die passende Toolchain. Außerdem
kann es sein dass Dein Betriebssystem mit einem anderen Kernel nichtmehr
läuft. Oder zumindest Kernelmodule deines Betriebssystems. Diese müssen
nämlich zu dem passenden Kernel compiliert werden. Und je nach
aktiviertem Kernelparameter müssen auch die Zeitstempel passen...
Gruß
Bean
Laut der Anleitung kannst du auch über NFS booten.
Also einfach den Kernel auf einem PC liegen haben, und dieser wird dann
über Netzwerk geladen.
Also braucht auch nichts auf das Board überspielt werden.
Wenn ich jetzt das Image habe, muss ich dann auf meinem PC extra einen
NFS-Server einrichten oder reicht es aus, wenn ich ein Verzeichnis
einfach freigegeben hab?
Ich habe jetzt auf meinem Win7-Rechner ein Verzeichnis im Netz
freigeben. Gehe ich in einen anderen DAteimanager von einem anderen
Rechner, so kann ich mit der IP-Adresse auf das Verzeichnis zugreifen.
Ich habe das Image in das freigegebene Verzeichnis kopiert und auf dem
Board (mit dem kommuniziere ich zur Zeit mit putty) diese Befehe
eingetippt:
setenv ipaddr192.168.1.25
setenv serverip 192.168.1.31
nfs 11000000 192.168.1.31:/free/image.bin
ich hatte so gehofft, dass sich das Board dann so über das Netzwerk von
dem Computer das Image ziehen würde, aber es passiert nichts.
gibt es denn irgendwie eine Chance, mittels Win7-Rechner und Zugriff auf
das AP7000-base mit putty das Board irgendwie wieder in Gang zu setzen,
dass ich wie am Anfang einen Webserver hab, mit dem ich auf das Board
zugreifen kann?
Ich hab jetzt auf Win7 einen TFTP-Server installiert und kann nun mit
putty von uboot aus über tftp von dem Windows-System Dateien auf das
AP7000base übertragen.
Ich habe mir ein Image aus dem Internet heruntergeladen. Das
funktionierte auch am Anfang recht gut. Es war dann ein openWRT-System
halt ohne Webserver, aber ich konnte mit telnet auch auf das System
drauf zugreifen und es bekam automatisch eine IP-Adresse über den
DHCP-Server im Netzwerk.
Dann hab ich das Teil vom Rechner getrennt (Stromzufurh mit USB
unterbrochen) und es am Netzteil angeschlossen. Plötzlich war das Image
weg, es kam lauter blödsinn beim Booten, lauter lange Zahlenkolonnen.
Dann hab ich das Image wieder neu draufgeladen, und zwar immer mit den
Befehlen
tftp 11000000 openwrt.img
erase 30000 7fffff
cp.b 11000000 7d0000
boot
am Anfang funktionierte das auch ein paar mal, dann hat es 1-2 min
gedauert, das Teil hat irgendwas gemacht und es klappte dann.
Dann vom USB getrennt, dann war alles wieder weg.
Nun funktioniert selbst das mit dem neuen draufladen nicht mehr
Es kommt zum Schluss die Fehlermeldung: could not find kernel entry
point.
Heisst das jetzt, dass vielleicht der Speicher auf dem Board kaputt
gegangen sein könnte?
Hier sind nochmal zwei Bilder. Eins mit den Zahlenkolonnen, ein anderes,
wo es in der oberen Hälfte klappte, dann Reset gedrückt, dann klappte es
nicht mehr.
Linux4Ever schrieb:> Kann es sein, dass Du ein Live Image bootest?>> Dann kannst Du nicht kappen. Wenn der Kernel weg ist, geht nichts mehr.
eigentlich nicht, ich habe dies Image genommen (siehe Bild):
openwrt-avr32-jffs2-64k-uimage.img (ich habs dann nur in openwrt.img
umbenannt, damit der Name nicht mehr so lang ist).
das komische ist, mit diesem Kernel hat das ca. 10mal geklappt, aber
beim Steckerrausziehen war das Image dann manchmal wieder weg, dann hab
ich es wieder neu draufgeladen und dieses Erase-Dingen gemacht und binär
mit cp.b umkopiert, aber nun klappt es garnicht mehr, jetzt kommt die
Fehlermeldung, dass kein Kernel-Einhänge-Punkt vorhanden ist (could not
found kernel entry point).
Ist denn jetzt vielleicht hardwaremässig was kaputt, vielleicht ein
Speicherbaustein oder sowas? Oder ist es einfach nur ein
Softwareproblem? Könnte es z.B. sein, da dieses Image etwas kleiner ist
als das frührere, dass es da Probleme geben könnte? Aber dann hätte es
ja am Anfang nicht funktionieren dürfen.
Könnte es auch ein anderes Problem sein?
Beim Booten steht:
JFFS2 load complete: 886409 bytes loaded to 0x1040000000
...
Entry Point: 900000000
Könnte es sein, dass das Kernel-Image an die Stelle 10400000 geladen
wird, das Uboot aber an der Speicherstelle 900000000 den Kernel sucht
und da noch keiner ist, sondern erst ab der Stelle 104000?