在Linux下用vi建立一HelloParam.c文件,其内容书写如下:
//HelloParam.c start///
#include <linux/init.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
MODULE_LECENSE(“Dual BSD/GPL”);
static char *whom = “world”;
static int howmany = 5;
module_param(howmany, int, S_IRUGO);
module_param(whom, charp, S_IRUGO);
static int hello_init(void)
{
int i;
for(i=0; i<howmany; i++)
{
printk(KERN_ALERT “%d Hello, %s!/n”,i,whom);
}
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT “Goodbye, cruel world!/n”);
}
module_init(hello_init);
module_exit(hello_exit);
//HelloParam.c end///
需要注意的有如下三点:
1、 必须包含头文件linux/moduleparam.h;
2、 变量whom和howmany必须是全局变量;
3、 调用module_param(whom, charp, S_IRUGO)和module_param(howmany, int, S_IRUGO)来对两个变量进行声明;
其Makefile文件的书写如“
Linux设备驱动程序学习笔记1——模块加载和卸载”中所描述。
编译完毕后,该模块的加载如下:
insmod HelloParam howmany=10 whom=”Mon”