Linux 内核模块载入参数

6/18/2022 Linux 内核

linux 内核模块可以使用 module_param API声明一些参数,在载入时由用户填写

# module_param

module_param(name, type, prem)
1

name 变量名,需要事先定义 type 类型的同名变量

type 类型 int、char 等

prem 类似 linux 的文件权限

  • S_IRUSR 00400 所有者可读
  • S_IWUSR 00200 所有者可写
  • S_IXUSR 00100 所有者可执行
  • S_IRGRP 00100 所有者所在组可读
  • S_IROTH 00100 其他可读
  • S_IRUGO S_IRUSR|S_IRGRP|S_IROTH

# 示例

+ // 定义变量
+ static int debug = 0;

+ static int __init module_init(void) {
+     if (debug == 1) {
+         printk("fried_chicken module init with debug");
+     } 
+     return 0;
+ }

+ // 注册 int 类型参数 debug 
+ module_param(debug, int, S_IRUGO);
1
2
3
4
5
6
7
8
9
10
11
12

# 使用

insmod fried_chicken.ko debug=1
1
Last Updated: 6/2/2023, 7:17:11 AM