KernelNewbies:

How do I compile a Linux kernel module?

You have to write a Makefile. The Makefile is a standard one and depends on the kernel version.

Standard Makefile for 2.6 kernels

obj-m := name_of_module.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

Standard Makefile for 2.4 (and <=) kernels

TARGET := module_name
INCLUDE := -I/lib/modules/`uname -r`/build/include
CFLAGS := -O2 -Wall -DMODULE -D__KERNEL__ -DLINUX
CC := gcc

${TARGET}.o: ${TARGET}.c
        $(CC) $(CFLAGS) ${INCLUDE} -c ${TARGET}.c

Once the module is compiled, you can load it with the following command :

insmod module.[ko|o]

KernelNewbies: FAQ/LinuxKernelModuleCompile (last edited 2006-04-24 15:33:46 by ARennes-356-1-125-77)