Der Kernel, aus dem Sie Ihr Kernelmodul erstellen und in das Sie ein Modul einfügen, sollte dieselbe Version haben. Wenn Sie sich nicht darum kümmern wollen, können Sie folgendes Makefile verwenden.
obj−m += hello−world.o
all:
make −C /lib/modules/$(shell uname −r)/build M=$(PWD) modules
clean:
make −C /lib/modules/$(shell uname −r)/build M=$(PWD) clean
Jetzt können Sie das Modul erstellen und versuchen, es einzufügen.
Ich schlage vor, dass Sie möglichst vor dieser Zeile
root werden$sudo cp /boot/config-2.6.38-8-generic ./.config
$su
#cp /boot/config-2.6.38-8-generic ./.config
#insmod hello_world.ko
Alternativ können Sie auch folgende Make-Datei verwenden
TARGET := hello-world
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC := gcc-3.0
${TARGET}.o: ${TARGET}.c
.PHONY: clean
clean:
rm -rf ${TARGET}.o