Forum: PC-Programmierung Problem beim Booten von einem Linux-System


von Hägar der Schreckliche (Gast)


Angehängte Dateien:

Lesenswert?

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?

von dummschwaetzer (Gast)


Lesenswert?

crc falsch: datei beschädigt! das warum währe da ehr die frage( defektes 
speichermedium, defekter ram, defekter prozessor, ...)

von Rene H. (Gast)


Lesenswert?

Defektes Kernel Image! Beim Download etwas schiefgegangen?

Grüsse,
René

von Hägar der Schreckliche (Gast)


Lesenswert?

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?

von Ossi L. (losskopp)


Lesenswert?

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.

von Mr Bean (Gast)


Lesenswert?

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

von Hägar der Schreckliche (Gast)


Lesenswert?

So ein neues fertiges Image, dass muss ich mir erst selber neu 
compilieren, oder? Oder gibt es so eins auch fertig irgendwo zum 
Herunterladen?

von Mr Bean (Gast)


Lesenswert?

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

von Hägar der Schreckliche (Gast)


Lesenswert?

Also, ich hab versucht, diese Anleitung hier zu verstehen:

http://www.mikrocontroller.net/articles/AVR32_Grasshopper#Flashen_des_JFFS2-Dateisystems_unter_Linux

Ich habe also auf meinem Board die Software uboot laufen, das scheint 
also eine Art Bootmanager zu sein.

Nun muss ich mir ein neues Image besorgen und dass dann irgendwie auf 
das Board überspielen?

von PittyJ (Gast)


Lesenswert?

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.

von Hägar der Schreckliche (Gast)


Lesenswert?

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.

von Hägar der Schreckliche (Gast)


Angehängte Dateien:

Lesenswert?

so sieht dass dan aus (siehe Bild) - das bleibt bei loading stehen und 
geht nicht weiter.

von Εrnst B. (ernst)


Lesenswert?

Du musst einen NFS-Server einrichten. Mit SMB/CIFS (der "normalen" 
Windows-Dateifreigabe) kann der Bootloader nix anfangen.

von Hägar der Schreckliche (Gast)


Lesenswert?

also unter win7 krieg ich es nicht hin, einen nfs-Server einzurichten, 
geht das nur unter Linux?

von Hägar der Schreckliche (Gast)


Lesenswert?

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?

von Axel K. (Gast)


Lesenswert?

Nimm nen TFTP-Server!

von kopkratzer (Gast)


Lesenswert?

kopfkratz
Hast Du die Möglichkeit an einen JTAG heranzukommen, dann wäre das wohl 
die sinnvollste Variante.
Lies Dir auch mal z.B. das hier durch:
http://elk.informatik.fh-augsburg.de/hhweb/elinux/ngw100/grasshopper-notes.html

von Hägar der Schreckliche (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Linux4Ever (Gast)


Lesenswert?

Kann es sein, dass Du ein Live Image bootest?

Dann kannst Du nicht kappen. Wenn der  Kernel weg ist, geht nichts mehr.

von Hägar der Schreckliche (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Hägar der Schreckliche (Gast)


Angehängte Dateien:

Lesenswert?

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).

von Hägar der Schreckliche (Gast)


Lesenswert?

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.

von Hägar der Schreckliche (Gast)


Lesenswert?

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?

von Hägar der Schreckliche (Gast)


Angehängte Dateien:

Lesenswert?

ich hab mal den Befehl Printenv ausprobiert und das, was man auf dem 
Bild sieht, kam heraus

von Hägar der Schreckliche (Gast)


Lesenswert?

Wie kann man denn rauskriegen, ob an dem Board hardwareseitig etwas 
kaputt ist oder einfach nur ein Softwarefehler vorliegt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.