Forum: Mikrocontroller und Digitale Elektronik ICnova ap7000oemplus, Buildroot, Boot-SD-Karte


von Thomas S. (fluse)


Angehängte Dateien:

Lesenswert?

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
von Werner B. (werner-b)


Lesenswert?

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

von Thomas S. (fluse)


Angehängte Dateien:

Lesenswert?

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

von Thomas S. (fluse)


Angehängte Dateien:

Lesenswert?

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

von Werner B. (werner-b)


Lesenswert?

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

von Thomas S. (fluse)


Lesenswert?

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

von Werner B. (werner-b)


Lesenswert?

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

von Thomas S. (fluse)


Lesenswert?

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
Noch kein Account? Hier anmelden.