Hi Leute, Was ich gerade versuche ist ein System für meinen Grasshopper selbst zu bauen. Hardware: http://www.embedded-projects.net/index.php?page_id=237" Ich habe mir einen crosscompiler gebaut und damit dann einen Kernel kompiliert. Der stirbt allerdings recht schnell. Ich erhalte diese Ausgabe: http://pastie.org/private/one6wjlcuognt6dxzzwioq" Das Problem ist, dass ich zu dumm bin, die Kernel-Meldungen zu interpretieren. MMU - ist klar, aber wüsste jetzt nicht, an welcher Schraube ich stellen müsste. Auch verstehe ich den Entry Point nicht. Mein RAM liegt bei 10 00 00 00 und ist 64mB groß. Sprich 0x 4 00 00 00, müsste also bei 14 00 00 00 zuende sein. Das heißt ein Entry Point bei 90 00 00 00 existiert ja gar nicht. Aber der Kernel setzt das automatisch in die Kconfig rein und mkimage übernimmt das dann und auch im ursprünglichen (oben verlinkten) System war der EP 90 00 00 00. Wär echt cool, wenn mir jemand zumindest eine Schubs in die richtige Richtung geben kann, weil ich drehe mich gerade im Kreis.
> Das heißt ein Entry Point bei 90 00 00 00 existiert ja gar nicht.
Je nach Toolchain kennzeichnen die oberen Bits solcher Adressen
bestimmte Speicherabschnitte z.B. Flash, SRAM etc. Diese Bits darfst du
bei der Bestimmung der Adresse nicht verwenden.
Das heißt, das bezieht sich nicht auf die phyiskalische Adresse im Speicher, sondern auf was? Mir fehlt gerade irgendwie der Ansatz, wie ich weitermachen könnte.
Markus K. schrieb: > Mir fehlt gerade irgendwie der Ansatz, wie ich weitermachen könnte. Ich würde versuchen, den Originalkernel zu laden. Dann zu verstehen, wie sich das Image des Origialkernels vom Image des Selbstbaukernels unterscheiden. Dazu wenn nötig versuchen den Originalkernel selbst zusammen zu bauen. Dazu wenn nötig mit der Originaltoolchain arbeiten. Im Prinzip also häppchenweise Änderungen machen statt alles (Bootloader, Toolchain, Kernel) auf einmal zu ändern.
U-Boot> printenv bootcmd=mtdparts default;chpart nor0,2;fsload /boot/uImage;bootm ${fileaddr} bootdelay=3 baudrate=115200 ethact=macb0 ethaddr=00:1F:E5:00:0B:AB bootargs=root=1F02 rootfstype=jffs2 mtdparts=physmap-flash.0:128k(boot)ro,64k(env)ro,-(root) serverip=192.168.2.4 ipaddr=192.168.2.10 stdin=serial stdout=serial stderr=serial Environment size: 319/65532 bytes Da sind noch die Daten des alten Systems drin, sollte aber keine Rolle spielen. Die Config vom neuen und orginalen Kernel zu vergleichen habe ich schon versucht, aber das brachte mir nicht wirklich etwas. Die Änderungen sind nicht allzu groß und mir fehlt der Ansatzpunkt in den Einstellungen, an denen ich drehen müsste.
Markus K. schrieb: > bootcmd=mtdparts default;chpart nor0,2;fsload /boot/uImage;bootm Du sagst ihm er soll /boot/uImage laden.... Dein Image scheint aber: 21 Filename '/uImage2'. zu heißen. Dann kann er uImage auch nicht finden. Das sagt er dir hier auch: 33 Wrong Image Format for bootm command
Da hatte ich mich nur verschrieben. Schau mal 2 Zeilen weiter. Ich gebe ihm ja direkt die Stelle, an der er mit dem boot einsetzen soll im Speicher. Dann beginnt er ja auch den Kernel direkt (imho korrekt) zu booten und stirbt mit einer Exception, von der ich glaube, dass sie auf eine falsche Konfig im Kernel zurückzuführen ist. Unabhängig davon: Den Entry Point hätte ich einfach gern verstanden.
Markus K. schrieb: > Da hatte ich mich nur verschrieben. ? Wo hast du dich nur verschrieben? In der Meldung von uboot oder in den environments? Das sind doch Meldungen von uboot.
ich hab 10000000 statt 10400000 geschrieben! klar, dass er mir das um die Ohren schmeißt. U-Boot> bootm 10000000 Wrong Image Format for bootm command ERROR: can't get kernel image! U-Boot> bootm 10400000 Deswegen dannach dann noch den richtigen Befehl ausgeführt. Und dann beginnt er zu booten. (siehe weiterer Quelltext)!
noch mal zum Mitschreiben: uboot möchte den File "uImage" laden. Dein File auf dem TFTP-Server heißt aber: "uImage2"
Ja, aber ich boote ja gar nicht mit der bootcmd! Genauso sind die bootargs auch hinfällig!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.