[Linux - C] Ungültiges Kernel Modul

Diskutiere [Linux - C] Ungültiges Kernel Modul im Developer Network Forum im Bereich Hardware & Software Forum; Ich stehe mal wieder vor einem Rätsel: Ich hab unter Ubuntu 6.06, Kernel 2.6.15-23-386 ein Kernelmodul programmiert. Dazu zuerst die...
  • [Linux - C] Ungültiges Kernel Modul Beitrag #1
MR.Q

MR.Q

Bekanntes Mitglied
Dabei seit
17.11.2005
Beiträge
1.359
Reaktionspunkte
0
Ich stehe mal wieder vor einem Rätsel:

Ich hab unter Ubuntu 6.06, Kernel 2.6.15-23-386 ein Kernelmodul programmiert. Dazu zuerst die Kernel-Source (die 386er) nach /usr/src/ installiert und das Verzeichnis in "linux" umbenannt.

Dannach habe ich versucht das ganze zu kompilieren -> Die Dateien "irq_vectors.h" und "irq_vectors_limits.h" wurden im Verzeichnis include/asm/ nicht gefunden. Also hab ich mal einen Link von include/asm/mach-default, wo ich sie gefunden habe, in das gewünschte Verzeichnis gesetzt.

So, kompilieren ging mit einer Warnung "Zeigerziele bei Übergabe des Arguments 1 von 'csum_and_copy_from_user' unterscheiden sich im Vorzeichenbesitz" (include/linux/skbuff.h:1128).

Aber was bei weitem schlimmer ist, und meine eigentliche Frage:
Beim Versuch das Modul in den Kernel zu laden ($ sudo insmod drop.o) kommt es zum Fehler "-1 Invalid module format"

Woran kann das liegen? Ich hab das (wenn ich mich nicht sehr täusche) mit den richtigen Kernel Headern kompiliert.

Kann es sein das ich falsche Parameter beim Kompilieren angegeben habe oder eine falsche Kompiler Version nutze?


Makefile:
KERNELDIR = /usr/src/linux
CFLAGS = -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include -O -Wall
ifdef CONFIG_SMP
CFLAGS += -D__SMP__ -DSMP
endif
all: drop.o
clean:
rm -f *.o *˜ core

$ cat /proc/version:
Linux version 2.6.15-23-386 (buildd@rothera) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #1 PREEMPT Tue May 23 13:49:40 UTC 2006

PS: Makefile ist nicht von mir, da ich mich nicht damit auskenne.
 
  • [Linux - C] Ungültiges Kernel Modul Beitrag #2
MR.Q

MR.Q

Bekanntes Mitglied
Dabei seit
17.11.2005
Beiträge
1.359
Reaktionspunkte
0
Hab die Lösung: das Makefile ist vollkommen falsch.

Nach Überarbeitung funktioniert alles prima.

Makefile für Interessierte:
obj-m := drop.o

all:
make -C /usr/src/linux SUBDIRS=$(PWD) mudules
 
Thema:

[Linux - C] Ungültiges Kernel Modul

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben