Forum: PC Hard- und Software Wieso funktioniert mein Linux Kernel Modul nicht mehr, wenn ich device management auf "udev" umstell


von embLin (Gast)


Lesenswert?

Hallo an alle,

ich bin hier langsam am verzweifeln, seit Tagen suche ich nach einer 
Lösung zu Fuß, als Workaround oder wie auch immer:

Ich habe hier ein embedded ARM9 System, wessen Images ich mit Buildroot 
2013.10 erstelle, welches wiederum auf einem Linux 2.6.39 Kernel 
basiert. Gleichzeitig habe ich ein sehr simples Kernel Modul:



    void GPIO_LED(void) {
    printk(" GPIO: set PC8: '0');
    at91_set_gpio_value(AT91_PIN_PC8, 1);

    }

    int init_module(void) {
    GPIO_LED(); return 0;

    }

    MODULE_LICENSE("GPL");


Wenn ich beispielsweise das mdev device management benutzte funktioniert 
alles wie erwartet (bei allen anderen übrigens auch, bis auf) das udev 
device management. Wenn ich also

    insmod /usr/modules/measurement_gpio.ko

eingebe, erscheint folgende Fehlermeldung

    insmod: can't insert '/usr/modules/measurement_gpio.ko': invalid 
module format


Die Einstellungen im Buildroot und im Linux (besonders der Linux Kernel) 
blieben immer identisch, bis auf eben das device management - also 
sollte eigentlich das Kernel Modul in Ordnung sein. Den Kernel ladefähig 
für Module unterschiedlicher Versionen zu machen und den Kernel zu 
zwingen ein Modul zu laden hat auch nicht funktioniert.

Hier sind die Schritte wie ich das Modul erstelle

  (1) Mit Buildroot erstelle ich ein Image, das Programm installiert ein 
Linux 2.6.39

  (2) Anschließend compiliere ich mein Modul mit dem Kernel, welcher 
Buildroot eben heruntergeladen hat

  (3) Wenn nun eben die .ko Datei erstellt wurde kopiere ich es in ein 
fs-overlay ein, damit es beim nächsten Buildroot-make mit im Image ist

  (4) Zuletzt mache ich ein weiteres "make" und ich erhalte das 
bootfähige Image mit meinem (nur unter udev) nicht ausführbaren Kernel 
Modul.


Ich kann leider nirgends einen Fehler erkennen, weiß jemand einen Tipp?

Beste Grüße

von hp-freund (Gast)


Lesenswert?

Hat der Tip mit - udev requires inotify support - von stackoverflow 
nicht geholfen?

http://www.gentoo.org/doc/de/udev-guide.xml -> Punkt 2.2

von embLin (Gast)


Lesenswert?

(a) leider nein.

(b) habe nach inotify im linux menuconfig gesucht und als Ergebnis kam 
nur "[*]   Inotify support for userspace" heraus, das "[*] Inotify file 
change notification support" konnte ich also nicht einstellen. Alles 
andere war aber schon gesetzt. Also gehts leider noch nicht.

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.