Jádro, ze kterého sestavujete modul jádra a do kterého modul vkládáte, by mělo být stejné verze. Pokud se o to nechcete starat, můžete použít následující Makefile.
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
Nyní můžete sestavit a zkusit vložit modul.
Navrhuji, abyste se stali rootem, pokud je to možné, před tímto řádkem
$sudo cp /boot/config-2.6.38-8-generic ./.config
$su
#cp /boot/config-2.6.38-8-generic ./.config
#insmod hello_world.ko
Případně můžete také použít následující soubor make
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
Pipes, dup2 a exec()
ID vlákna vrácené pthread_self() není totéž jako ID vlákna jádra vrácené voláním gettid(2)