内核模块参数设置

内核模块参数设置

通过宏 module_param 来指定模块参数,模块参数用于在加载模块时传递参数给内核模块.

定义如下 module_param(name,type,perm)

name 是模块参数的名称.
type 是这个参数的类型.
perm 是模块参数的访问权限

type常见值

bool布尔 int整型 charp字符串型

perm常见值

S_IRUGO:任何用户都对/sys/module中出现的该参数具有读权限
S_IWUSR:允许root用户修改/sys/module中出现的该参数

例子

#include <linux/module.h>
#include <linux/init.h>

MODULE_LICENSE("GPL");


static char *name  = "Fengzhihao";
static int age = 28;


module_param(age, int, S_IRUGO);
module_param(name, charp, S_IRUGO);


static int __init hello_init()
{
  printk(KERN_EMERG" Name : %s\n",name);
  printk(KERN_EMERG" Age : %d\n",age);
  return 0;
} 

static int __exit hello_exit()
{
  printk(KERN_INFO"Module Exit!\n");
}

module_init( hello_init);
module_exit( hello_exit); 

假如此模块的名字为 param.ko
加载模块并给模块内传输数值
insmod param.ko age=40 name=caonima