Linux内核模块编程入门-2

在Linux 2.4内核中,已经可以自己重命名模块的init和cleanup函数,不再必须调用init_module()和cleanup_module()。这是通过使用module_init()和module_exit()宏实现的。这些宏定义在linux/init.h文件中,唯一主要注意的是在调用宏之前必须先定义自己的init和cleanup函数,否则将会出现编译错误,如下是一个例子

/*
 * Hello-2.c - Demostrating the module_int() and module_exit() macros.
 * This is preferred over using init_module() and cleanup_module().
 */

#include <linux/module.h>	// Needed by all modules
#include <linux/kernel.h>	// Needed for KERN_INFO
#include <linux/init.h>		// Needed for the macros

static int __init hello_2_init(void)
{
	printk(KERN_INFO "Hello, World 2\n");
	return 0;
}

static void __exit hello_2_exit(void)
{
	printk(KERN_INFO "Goodbye, world 2\n");
}

module_init(hello_2_init);
module_exit(hello_2_exit);

Makefile如下:

obj-m += hello_2.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

模块的编译,安装,卸载和日志查看
见http://blog.csdn.net/fantasy_wxe/article/details/12379647



你可能感兴趣的:(Linux内核模块编程入门-2)