在麒麟OS中,使用modinfo -p命令可查看内核模块支持的可配置参数;结合grep可精确提取特定参数说明;通过/sys/module/目录验证已加载模块参数是否生效;用modinfo -F filename定位模块路径以确保参数查询准确。

如果您需要在麒麟OS中获取某个内核模块所支持的可配置参数,以便进行驱动调优、故障排查或模块加载控制,则需借助modinfo命令提取模块元数据中的参数字段。以下是执行该操作的具体方法:
一、使用 modinfo -p 查看模块支持的参数列表
modinfo -p 选项专门用于输出模块定义的所有可加载参数(parameters),这些参数在使用 modprobe 或 insmod 加载模块时可通过 key=value 形式传入,影响模块运行时行为。
1、打开终端,输入以下命令查询指定模块(例如 e1000e 网卡驱动)的参数:
modinfo -p e1000e
2、若模块位于非标准路径,需提供完整.ko文件路径:
modinfo -p /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
3、观察输出格式:每行以参数名开头,后接冒号及类型说明(如 "int", "bool", "charp")和可选描述,例如:InterruptThrottleRate: Interrupt throttling rate (array of int)
二、结合 -F 参数精确提取单个参数说明
当需脚本化解析或仅关注某一特定参数的文档描述时,可配合 -F 与 grep 组合使用,从模块元数据中定向抽取字段内容,避免人工筛选干扰信息。
1、提取 ext4 模块中 “journal_async_commit” 参数的完整说明行:
modinfo -p ext4 | grep "journal_async_commit"
2、若模块未内置参数字段,输出为空,表明该模块不接受用户级运行时配置。
3、对含多值数组参数(如 "rx_ring_size"),注意其后标注的 "(array of uint)" 提示需按索引方式传入多个值,例如:rx_ring_size=512,1024,256
三、验证参数是否已在运行中生效
已加载模块的当前参数值并不直接由 modinfo 显示,需通过 /sys/module/ 目录下的对应子系统读取实时状态。此步骤用于确认 modprobe 加载时传入的参数是否被内核正确接收并应用。
1、确认目标模块是否已加载:
lsmod | grep ^e1000e
2、进入该模块的 sysfs 接口目录:
cd /sys/module/e1000e/parameters/
3、列出所有可读参数文件并查看其当前值:
ls -1 | xargs -I{} sh -c 'echo "{} = $(cat {} 2>/dev/null)"'
4、若某参数文件返回 “Input/output error”,说明该参数为只写型或仅在初始化阶段有效,无法在运行时读回
四、使用 modinfo -F filename 定位模块物理路径后交叉校验
部分模块可能因别名或符号链接导致名称与实际文件不一致,先确定准确的.ko路径,再对其执行 -p 查询,可规避因模块名误判导致的参数遗漏问题。
1、获取模块对应文件路径:
modinfo -F filename i915
2、若输出为 "(builtin)",表示该模块已编译进内核镜像,不支持运行时参数配置
3、对输出为具体路径的结果,再次执行 modinfo -p 调用该路径:
modinfo -p $(modinfo -F filename i915 2>/dev/null)
4、若路径不存在或权限拒绝,检查当前内核版本是否匹配模块所在目录:/lib/modules/$(uname -r)/















