向冀博大神学习:
module.c文本
#ifndef __KERNEL__
# define __KERNEL__
#endif
#ifndef MODULE
# define MODULE
#endif
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "hello,I am edsionte\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "goodbye,kelnel\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile:
obj-m := 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
1> 在 all 和 clean 下面的一行,即 make 之前必须用 Table 符隔开,不能用空 格隔开,否则编译错误 。
2> 其中 -C 后指定的是 Linux 内核源代码的目录,而 M= 后指定的是 hello.c 和 Makefile 所在的目录
l另参考:http://blog.csdn.net /fulinus/article/details/8634813