源文件
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int example_init(void) {
printk("<1>EXAMPLE: init\n");
return 0;
}
static void example_exit(void) {
printk("<1>EXAMPLE: exit\n");
}
module_init(example_init);
module_exit(example_exit);
makefile
ifneq ($(KERNELRELEASE),)
obj-m := example.o
else
EXTRA_CFLAGS += -DDEBUG
KDIR := /home/tftpboot/kernel/linux-5.10.99
ARCH_ARGS := ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
all:
make $(ARCH_ARGS) -C $(KDIR) M=$(PWD) modules
clean:
make $(ARCH_ARGS) -C $(KDIR) M=$(PWD) modules clean
endif
make
insmod example.ko
rmmod example.ko