Le noyau à partir duquel vous construisez votre module de noyau et dans lequel vous insérez le module doit être de la même version. Si vous ne voulez pas vous occuper de cette chose, vous pouvez utiliser le Makefile suivant.
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
Vous pouvez maintenant créer et essayer d'insérer le module.
Je vous conseille de devenir root si possible avant cette ligne
$sudo cp /boot/config-2.6.38-8-generic ./.config
$su
#cp /boot/config-2.6.38-8-generic ./.config
#insmod hello_world.ko
Alternativement, vous pouvez également utiliser le fichier make suivant
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