module_frame.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Yugi");
MODULE_DESCRIPTION("LKM frame, demonstrated as a sample.");
static int __init module_frame_init( void )
{
printk(KERN_ALERT "module_frame is now loaded.\n");
return 0;
}//module_frame_init()
static void __exit module_frame_exit( void )
{
printk(KERN_ALERT "module_frame is now unloaded.\n");
return;
}//module_frame_exit()
module_init( module_frame_init );
module_exit( module_frame_exit );
Makefile
####---Makefile----#####
OBJ = module_frame
obj-m := $(OBJ).o
KERNELDIR = /lib/modules/`uname -r`/build
PWD = `pwd`
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
install:
insmod $(OBJ).ko
uninstall:
rmmod $(OBJ).ko
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
第一个module其实并没有做什么,只是让我们熟悉module的初始化