完整的 Hello World 内核模块 hello.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); return 0; }
static void hello_exit(void) { printk(KERN_ALERT "Goodbye, cruel world\n"); }
module_init(hello_init); module_exit(hello_exit);
|
Makefile
1 2 3 4 5 6 7 8 9
| obj-m +=hello.o
KDIR = /usr/src/linux-headers-3.19.0-21-generic
all: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean: rm -rf *.o *.ko *.mod.* *.symvers *.order
|
To run the code
1 2 3 4 5
| $sudo insmod hello.ko $dmesg u will get the output $sudo rmmod hello.ko $dmesg
|