假定这个模块的名称为foo,那么这个模块的代码框架:
//foo_core.c:
#include <linux/module.h>
#include <linux/init.h>
static int __init foo_init(void)
{
printk("hello kernel!");
return 0;
}
static void __exit foo_exit(void)
{
}
MODULE_LICENSE("GPL");
module_init(foo_init);
module_exit(foo_exit);
# Makefile
foo-objs :=foo_core.o
obj-m +=foo.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
如果知道Linux内核的源码目录,另一种Makefile的写法是:
#Makefile
foo-objs :=foo_core.o
obj-m +=foo.o
all:
make –C /YOUR_LINUX_KERNEL_SOURCE_PATH M=`pwd` modules
make项目即可编译出ko文件。