Hallöle zusammen ich habe mir vor einiger Zeit das ICnova ADB1000 StarterKit mit ap7000oemplus besorgt um mich etwas mit dem Thema embedded linux zu befassen. Durch ein paar Experimente, habe ich mir nun das Linux auf dem ap7000oemplus zerstört... Ich schaffe es aber nicht ein neues Image mit den Tools der Support-CD zu erstellen, und es per SD-Karte zu booten? Ich verwende für das Make die unveränderte Konfiguration "oemplus.config" von der Support-CD. Meine SystemKonfiguration: Win7 PC mit VMware 4.01 und Ubuntu 8.04 Image (jars). Gemäß Anleitung habe ich alle Dev-Tools installiert. Make: Der Make-Prozess "buildroot v2009.2" startet mit den Prüfungen und endet nach ca. 90 Minuten mit einem erstellten Boot-Image im Verzeichnis: jars@jars-desktop:~/ICnova/project_build_avr32/oemplus/root$ Warnungen: Die Fehlerausgabe mit make 2> mkerr.log erzeugt eine relative große Datei mit vielen Warnungen? Sie Datei "mkerr.log" Boot mit SD-Karte: Meine U-Boot-Konfiguration ist in der Datei "putty.log" zu sehen. Der Bootvorgang startet, bleibt aber dann stehen..? Siehe Datei "putty.log" Meine Fragen: - Ist meine Entwicklungsumgebung (Ubuntu 8.04) richtig konfiguriert? - Sind die vielen Warnungen beim "make" normal? - Ist das erstellte Image o.k.? - Ist der Boot über die SD-Karte richtig konfiguriert? Wie gehe ich nun am Besten vor, um mögliche Fehlerquellen nacheinander zu beseitigen? Kann mir evtl. jemand ein funktionierendes Boot-Image für SD-Karte und ICnova-Modul zur Verfügung stellen? Checking build system dependencies: BUILDROOT_DL_DIR clean: Ok CC clean: Ok CXX clean: Ok CPP clean: Ok CFLAGS clean: Ok INCLUDES clean: Ok CXXFLAGS clean: Ok which installed: Ok sed works: Ok (/bin/sed) GNU make version '3.81': Ok C compiler '/usr/bin/gcc' C compiler version '4.2.4': Ok C++ compiler '/usr/bin/g++' C++ compiler version '4.2.4': Ok awk installed: Ok bash installed: Ok bison installed: Ok flex installed: Ok gettext installed: Ok makeinfo installed: Ok Build system dependencies: Ok ...
:
Verschoben durch User
Im Moment kann ich nicht nachsehen, aber ich würde eher etwas in dieser Form erwarten... bootargs=console=ttyS0 root=/dev/mmcblk0p1 rootfstype=ext2 rootwait Die Unterstützung für das Filesystem muss aber fest in den Kernel kompiliert sein ('*' bei ext2, kein 'm').
Hallo Werner, danke für die Tipps... - Habe die Buildroot-Einstellung geprüft: [*] ist und war für ext2-File-System bereits eingestellt. - Die Anpassung der U-Boot-Konfiguration "bootargs" hat eine kleine Veränderung bewirkt. Der Bootvorgang stoppt nun etwas später und nach einer Pause von ca. 2-3 Minuten gibt das Modul folgende Fehlermeldung aus: (Siehe auch putty_1.log) Der erstellte Kernel ist wohl -viele Warnungen während des make- irgendwie nicht i.o - oder? BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] Modules linked in: PC is at __do_softirq+0x24/0x9c LR is at do_softirq+0x20/0x3c pc : [<90022c64>] lr : [<90022db0>] Not tainted sp : 90229f18 r12: 00000000 r11: 90230e74 r10: 90254520 r9 : 00000100 r8 : 00000000 r7 : 00810002 r6 : 90259720 r5 : 00000002 r4 : 00000000 r3 : 902544c0 r2 : 0000000a r1 : 90254520 r0 : 00000000 Flags: qvnzC Mode bits: hjmde....g CPU Mode: Interrupt level 0 Process: swapper [0] (task: 9022e2c0 thread: 90228000) Call trace: [<90022db0>] do_softirq+0x20/0x3c [<90022e78>] irq_exit+0x20/0x2c [<90016b5c>] do_IRQ+0x3e/0x52 [<9001541e>] irq_level0+0x18/0x5c [<9000f4d8>] boot_command_line+0x0/0x100 [<900100b4>] command_line+0x0/0x100 [<90018ed6>] cpu_idle+0xe/0x34 [<901a1c10>] schedule+0x1c0/0x1e0 [<9000f4d8>] boot_command_line+0x0/0x100 [<900100b4>] command_line+c>] rest_init+0x38/0x4c [<9000f4d8>] boot_command_line+0x0/0x1
Hallöle, bin weiter auf Ursachenforschung und habe mal probiert über NFS zu booten. Das System bootet ähnlich wie über die SD-Karte bis zu einem bestimmten Punkt. Dann 2-3 Minuten Pause und dann gleiche Fehlermeldung: Das Problem ist wohl doch mein "buildroot". Aber was kann ich da machen? BUG: soft lockup - CPU#0 stuck for 61s! [swapper:0] Modules linked in: PC is at __do_softirq+0x24/0x9c LR is at do_softirq+0x20/0x3c pc : [<90022c64>] lr : [<90022db0>] Not tainted sp : 90229f18 r12: 00000000 r11: 90230e74 r10: 90254520 r9 : 00000100 r8 : 00000000 r7 : 00810002 r6 : 90259720 r5 : 00000002 r4 : 00000000 r3 : 902544c0 r2 : 0000000a r1 : 90254520 r0 : 00000000 Flags: qvnzC Mode bits: hjmde....g CPU Mode: Interrupt level 0 Process: swapper [0] (task: 9022e2c0 thread: 90228000) Call trace: [<90022db0>] do_softirq+0x20/0x3c [<90022e78>] irq_exit+0x20/0x2c [<90016b5c>] do_IRQ+0x3e/0x52 [<9001541e>] irq_level0+0x18/0x5c [<9000f4d8>] boot_command_line+0x0/0x100 [<900100b4>] command_line+0x0/0x100 [<90018ede>] cpu_idle+0x16/0x34 [<901a1c10>] schedule+0x1c0/0x1e0 [<9000f4d8>] boot_command_line+0x0/0x100 [<900100b4>] command_line+0x0/0x100 [<901a073c>] rest_init+0x38/0x4c [<9000f4d8>] boot_command_line+0x0/0x100 [<9000054c>] start_kernel+0x1b0/0x1c8 [<900100b4>] command_line+0x0/0x100
Es gab auch Kernerversionen die das rootwait nicht kennen. Dann sollte aber mindestens rootdelay=.. funktionieren. Ich verwende immer noch rootdelay=2 Ausprobieren kann nicht schaden. rootdelay= [KNL] Delay (in seconds) to pause before attempting to mount the root filesystem rootwait [KNL] Wait (indefinitely) for root device to show up. Useful for devices that are detected asynchronously (e.g. USB and MMC devices).
Hi Werner, habe mal bootdelay=3 probiert - leider ohne Erfolg... Das Modul wartet jetzt schön 3 Sekunden bis die SD-Karte gemountet wird und meldet sich dann nach 2-3 Minuten mit der bekannten Fehlermeldung für immer ab!? Da ich davon ausgehe, dass die Dateien und die Konfiguration auf der ICNova-Support-CD o.k. sind, werde ich mal mein Ubuntu 8.04 und die notwendigen Tools einer kritischen Prüfung unterziehen. Das Thema Buildroot ist für mich im Moment ein Buch mit sieben Siegeln... Habe in diversen Beiträgen zum Thema Buildroot gelesen, dass eine zu neue Version des C-Compilers ein kritischer Punkt sein soll! Mit welcher Umgebung arbeitest du? Meine Ubuntu-Umgebung: jars@jars-desktop:~/ICnova$ make Checking build system dependencies: BUILDROOT_DL_DIR clean: Ok CC clean: Ok CXX clean: Ok CPP clean: Ok CFLAGS clean: Ok INCLUDES clean: Ok CXXFLAGS clean: Ok which installed: Ok sed works: Ok (/bin/sed) GNU make version '3.81': Ok C compiler '/usr/bin/gcc' C compiler version '4.2.4': Ok C++ compiler '/usr/bin/g++' C++ compiler version '4.2.4': Ok awk installed: Ok bash installed: Ok bison installed: Ok flex installed: Ok gettext installed: Ok makeinfo installed: Ok Build system dependencies: Ok
So wirklich glaube ich nicht an ein Problem mit der build Umgebung. Ich tippe auf ein SD-Karten Problem. Davon gab es schon genügend. Wie erstellst du die Karte? Meine Methode war, in menueconfig - 'target filesystem options' eine ext2-Image erzeugen lassen. Als root: Das ext2 Image "loop" mounten. z.B. nach /mnt Auf der SD-Karte ein ext2 dateisystem anlegen. SD-Karte entnehmen und neu enlegen -> mountet nach /media/xyz Das ext2-Image auf die SD-Karte kopieren. Karte auswerfen mke2fs /dev/sdXN # X = a,b,c,d,e,f,...; N = 1,2,3,4 entsprechend [Karte nach /media/xyz] mounten] [ext2 Image mounten] mount -o loop rootfs.ext2 /mnt [Kopieren] cp -a /mnt/* /media/xyz/ ... umount /media
Hallo Werner, guter - nein - sehr guter Tipp!!! Bin deiner Anleitung bezüglich SD-Karten-Erstellung gefolgt und siehe da "es funktioniert"!!! Jetzt muss ich das Image noch kurz testen und ins Flash brennen... Ich hatte die SD-Karte mit "gparted" initialisiert und anschließend mit cp -a die Dateien übertragen! Jetzt wird Silvester gefeiert... Ich wünsche dir eine "Guten Rutsch" und ein gesundes und erfolgreiches 2012. Gruß Thomas
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.