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:
$ cat /proc/version:
PS: Makefile ist nicht von mir, da ich mich nicht damit auskenne.
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.