完整的 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
 
  |