module.c
#define MODULE //一定要定义此宏
#include <linux/kmod.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
static int __init hello_init(void)
{
printk("***************\n");
return 0;
}
static void __exit hello_exit(void)
{
return;
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
Makefile:
CC=gcc
VERSION := $(shell uname -r)
CFLAG := -I/usr/src/linux-$(VERSION)/include -D__KERNEL__ -D__MODULE -O -Wall
OBJ=module
$(OBJ).o:$(OBJ).c
$(CC) $(CFLAG) -c $(OBJ).c -o module.o
编译生成的是module.o 注意和2.6的ko的区别
然后insmod module.o就可以将内核模块加载上