需使用lsmod、modinfo、find、cat /proc/modules和modprobe -n -v等命令:lsmod列已加载模块基本信息;modinfo查指定模块元数据;find配合modinfo分析未加载模块文件;cat /proc/modules读原始列表;modprobe -n -v模拟加载并解析依赖。

如果您需要了解当前Linux系统中已加载的内核模块及其详细信息,则需借助系统内置的专用命令工具。以下是完成该任务的具体操作步骤:
一、使用lsmod列出已加载的内核模块
lsmod命令通过读取/proc/modules文件,以表格形式展示当前内核中所有已成功加载的模块名称、大小及被引用次数等基本信息,是快速掌握模块运行状态的首选方式。
1、打开终端,输入以下命令并回车执行:lsmod
2、观察输出结果中的第一列,即为模块名称;第二列为模块占用内存字节数;第三列为当前被其他模块或内核组件引用的次数。
3、如需筛选特定模块,可结合grep过滤,例如查看是否加载了nvidia驱动:lsmod | grep nvidia
二、使用modinfo查看指定模块的详细信息
modinfo命令用于读取内核模块的元数据,包括作者、许可证、参数说明、依赖关系、版本号及描述等内容,适用于深入分析模块功能与兼容性。
1、确认目标模块名称(可通过lsmod获取),例如模块名为e1000e
2、在终端中执行:modinfo e1000e
3、输出内容中,filename字段指示模块在文件系统中的实际路径;alias字段显示该模块支持的设备ID别名;parm字段列出所有可配置参数及其默认值和说明。
三、结合find与modinfo定位并检查未加载模块文件
当模块尚未加载但存在于系统中时,可通过查找.ko文件并调用modinfo获取其静态信息,有助于预判加载可行性与参数设置需求。
1、在/lib/modules/$(uname -r)/目录下搜索目标模块文件:find /lib/modules/$(uname -r) -name "usbhid.ko"
2、对查得的完整路径执行modinfo:modinfo /lib/modules/$(uname -r)/kernel/drivers/hid/usbhid.ko
3、重点检查输出中的license字段是否为“GPL”或兼容许可;若为“proprietary”,则可能受限于签名验证机制。
四、使用cat /proc/modules直接读取原始模块列表
/proc/modules是内核提供的虚拟文件接口,其内容格式与lsmod输出一致,但无格式化处理,适合脚本解析或排除命令行工具异常干扰。
1、直接输出原始模块列表:cat /proc/modules
2、若需按模块大小降序排列,可使用awk提取第二列后排序:awk '{print $2, $1}' /proc/modules | sort -nr
3、注意该文件仅反映当前实时状态,任何模块卸载或加载操作将立即在此文件中体现变化。
五、通过modprobe -n -v模拟模块加载过程
modprobe -n -v可在不实际加载模块的情况下,输出完整的依赖解析路径与预期加载顺序,辅助诊断模块缺失或版本冲突问题。
1、执行模拟加载命令,例如针对i915模块:modprobe -n -v i915
2、观察输出中每行以install开头的指令,表示系统计划调用的加载动作;以insmod开头的行显示将要插入的具体.ko文件路径。
3、若某依赖模块未找到,对应行会提示FATAL: Module xxx not found in directory /lib/modules/$(uname -r)。











