Forum: Mikrocontroller und Digitale Elektronik NGW100-Buildroot erstellt falsche Module


von Jasper (Gast)


Lesenswert?

Guten Abend

Ich bschäftige mich schon etwas länger mit dem NGW100 um Linux und die 
AVR32'iger besser zu verstehen.
Doch seit zwei Tagen komme ich einfach nicht mehr weiter und hoffe ihr 
könnt mir dabei helfen. Mein Problem ist, dass ich es nicht schaffe ein 
Build zu erstellen, bei dem ich die von Buildroot kompilierten Module 
laden kann.
Meine bisherigen versuche ein Modul zu laden, endeten immer mit der 
Meldung:

"insmod: cannot insert 'Name_des_Moduls': invalid module formate"

Daraufhin habe ich ein Makefile gefunden, mit dem es mir möglich ist die 
Module einzeln zu kompilieren. Aber das muss doch auch direkt mit 
Buildroot funktionieren?!

Mein bisheriges Vorgehen:

make atngw100_defconfig
make
make linux26-menukonfig (Module auswählen)
make

Gruß Jasper

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ist denn der richtige Kernel auf dem NGW100? Also einer, der auch mit 
genau dieser Buildroot erstellt worden ist?

Grüße,

Peter

von Jasper (Gast)


Lesenswert?

Hi

Klar ich hab das vom Buildroot erstellte Archiv auf die SD-Card entpackt 
und dann gebootet. Die Module die da drinnen sind müssten ja auch zum 
kernel passen.

Jasper

von ... (Gast)


Lesenswert?

vielleicht ne dumme Frage, aber bist du dir sicher, dass du auch von der 
SD-Karte gebootet hast?

von Jasper (Gast)


Lesenswert?

Guten Morgen

Dass ich vom falschen Medium boote, kann ich ausschliesen, da ich:

1. alle Einstellungen auf der SD-Card vornehme und diese auch wirksam 
sind, und ich

2. Uboot auf SD umgestellt habe.

Trotzdem danke für deine Antwort

Jasper

von ... (Gast)


Lesenswert?

ich sitz jetzt nicht vor meinem Linux-Rechner, aber da ist in der 
Kernel-Config eine Einstellung die aktiviert sein muss um Module laden 
zu können.Sorry, aber auswendig hab ich die nicht mehr.

von Jasper (Gast)


Lesenswert?

Hi

Ich hab ja im ersten Post schon geschrieben, dass ich von Hand 
kompilierte Module laden kann aber die vom Buildroot erstellten nicht. 
Das heißt ich prinzipiell ist es mir möglich Module zu laden, aber es 
sieht so aus, als würde Buildroot vielleicht gegen einen anderen Kernel 
(hab aber keinen anderen Installiert) kompilieren.

Jasper

von ... (Gast)


Lesenswert?

Jasper schrieb:
> Ich hab ja im ersten Post schon geschrieben, dass ich von Hand
> kompilierte Module laden kann

Jasper schrieb:
> Daraufhin habe ich ein Makefile gefunden, mit dem es mir möglich ist die
> Module einzeln zu kompilieren.

mmh, sorry, das konnte ich daraus nicht entnehmen.

Welche Buildroot-Version nimmst du denn?

von Jasper (Gast)


Lesenswert?

Die von Atmel v2.3.0

hab jetzt mal die offizielle Buildroot am laufen mal schauen was die 
macht.

Jasper

von ... (Gast)


Lesenswert?

in der Buildroot mailing list wurde das Problem schon besprochen:
http://lists.busybox.net/pipermail/buildroot/2010-March/032517.html

von ... (Gast)


Lesenswert?

Jasper schrieb:
> Die von Atmel v2.3.0

Die Version machte eigentlich keine Probleme.
Auf welchem Host arbeitest du?

von Jasper (Gast)


Lesenswert?

... schrieb:
> Auf welchem Host arbeitest du?

Ich hab Ubuntu 9.04 (32 Bit) am laufen und arbeite auf einem Notebook

von Jasper (Gast)


Lesenswert?

Hey

Ich wollte jetzt mal fragen, ob es euch wirklich möglich ist durch dass 
folgende Vorgehen einen Kernel und die dazugehörigen Module zu 
erstellen.

1. make atngw100_defconfig
2. make
3. make linux26-menuconfig (dort Module auswählen)
4. make
5. binaries/atngw100/rootfs.tar.bz2 auf SD-Card entpacken, fstab 
anpassen und booten
6. modprobe oder insmod für ein mitkompiliertes Module ausführen


Wenn ja dann müsste es doch bei mir am Host-System liegen, oder irre ich 
mich?

Viele Grüße
Jasper

von Thilo H. (thaala)


Lesenswert?

Ich habe ebenfalls Probleme damit einzelne Module hizuzunehmen, ob die 
nun statisch dazu gelinkt werden oder per Insmod. Die Buildroot 
menu/makefile funktionieren m.E. nur korrekt wenn Du den Mainstream 
nimmst.

Man kann dem OS aber einen Debuglevel mitgeben der detaillierte Ausgaben 
macht wenn Insmod aufgerufen wird. Den Befehl dazu habe ich aber im 
Moment nicht parat. Evtl. googlest Du mal danach Stichword Linux kernel 
debug level..

Gruß THaala

von Jasper (Gast)


Lesenswert?

Hey

Danke für deine Antwort, ich werd mal sehn was sich da finden lässt

Jasper

von Thilo H. (thaala)


Lesenswert?

So - ich bin fündig gweorden.

Bei dem Output um den es mir geht handelt es sich um Ausgaben, die um 
Treiber - Modul mit printk getätigt werden.

Damit diese im Moment wenn Insmod funktionen des Treibers aufruft auch 
auf der Konsole erscheinen mußt due den Debug - Level des kernel 
erhöhen.

Das eght über folgende Zeile
 echo "5 4 1 7" > proc/sys/kernel/printk

Die Debug Level sind:
     #define KERN_EMERG   "<0>" /* system is unusable               */
     #define KERN_ALERT   "<1>" /* action must be taken immediately */
     #define KERN_CRIT    "<2>" /* critical conditions              */
     #define KERN_ERR     "<3>" /* error conditions                 */
     #define KERN_WARNING "<4>" /* warning conditions               */
     #define KERN_NOTICE  "<5>" /* normal but significant condition */
     #define KERN_INFO    "<6>" /* informational                    */
     #define KERN_DEBUG   "<7>" /* debug-level messages             */

Du musst jetzt noch (mindestens im Init - Aufruf deines Moduls)
nach printk scannen - und wenn keins vorhanden ist evtl selbst welche 
einsetzen.

Wenn das alles nichts nutzt ist der Output nicht interpretierbar für 
insmod. Evtl kein ELF - format oder so was...?

Hier noch ne weiter Hilfe zum Debugging :
http://www.xml.com/ldd/chapter/book/ch04.html

Gruß THaala

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.