1、示例源码hello.c如下
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
MODULE_LICENSE("GPL");
static int __init drv_init(void)
{
printk(KERN_INFO "Hello World!\n");
return 0;
}
static void __exit drv_exit(void)
{
printk(KERN_INFO "Bye World!\n");
}
module_init(drv_init);
module_exit(drv_exit);
MODULE_AUTHOR("heyutao");
MODULE_DESCRIPTION("hello");
2、Makefile编写如下
obj-m := hello.o
KERNELBUILD :=/lib/modules/$(shell uname -r)/build
default:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
make -C $(KERNELBUILD) M=$(shell pwd) modules clean
3、直接用make指令产生太多垃圾文件,可以再写个脚本,用来编译成功时删除多余的文件,脚本到内容如下
make
if [ $? = 0 ]
then
rm -rf *.o *.mod.c .*.cmd *.markers *.order *.symvers .tmp_versions
fi