阅读量:0
在Linux内核模块中,module_param
宏用于定义模块参数
- 首先,在模块源代码中包含必要的头文件:
#include<linux/module.h> #include<linux/kernel.h>
- 定义一个变量,该变量将存储模块参数的值。例如,我们可以定义一个名为
my_param
的整数变量,并为其分配一个默认值:
static int my_param = 42;
- 使用
module_param
宏将此变量导出为模块参数。为了设置默认值,我们已经在第2步中为变量分配了一个值。module_param
宏的第一个参数是变量名,第二个参数是变量类型,第三个参数是权限(通常为S_IRUGO
,表示只读):
module_param(my_param, int, S_IRUGO);
编译并加载模块。现在,当模块加载时,
my_param
将具有默认值42。若要在加载模块时更改
my_param
的值,可以在insmod
命令后面添加my_param=<new_value>
。例如,要将my_param
设置为100,可以运行以下命令:
sudo insmod your_module.ko my_param=100
这样,在模块加载时,my_param
将具有值100,而不是默认值42。