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
Wieso funktioniert mein Linux Kernel Modul nicht mehr, wenn ich device management auf "udev" umstell
Re: Wieso funktioniert mein Linux Kernel Modul nicht mehr, wenn ich device management auf "udev" ums
Hat der Tip mit - udev requires inotify support - von stackoverflow nicht geholfen? http://www.gentoo.org/doc/de/udev-guide.xml -> Punkt 2.2
Re: Wieso funktioniert mein Linux Kernel Modul nicht mehr, wenn ich device management auf "udev" ums
(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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.