条件:必须有编译好的内核源码
基本框架
#include <linux/kernel.h>
#include <linux/module.h>
//建议写上
MODULE_LICENSE("BSD/GPL");
//可选
MODULE_AUTHOR("by dong");
static int 函数名A(void)
{
//do something here
return 0;
}
static void 函数名B(void)
{
//do something here
}
module_init(函数名A);
module_exit(函数名B);
源码:
#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("BSD/GPL");
MODULE_AUTHOR("by dong");
static int hello_init(void)
{
printk(KERN_ALERT"Hello by dong\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye, by dong\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile:
obj-m :=hello.o
//自己编译内核源码所在的位置
KERNELDIR := /home/dong/210/linux-2.6.35.7-gec-v3.0
//当前路径
PWD := $(shell pwd)
all:
make -C $(KERNELDIR) M=$(PWD) modules
clean:
make -C $(KERNELDIR) M=$(PWD) clean