在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。