Linux系统查看模块信息的终极指南
在Linux系统管理和维护过程中,了解系统内核模块的详细信息是每个管理员必备的技能。本文将深入介绍7种查看Linux系统模块信息的方法,帮助您全面掌握系统内核的运行状态。
1. lsmod命令 - 查看已加载模块
lsmod是最简单直接的模块查看命令,它会显示当前系统中所有已加载的内核模块列表。
# lsmod
Module Size Used by
nvidia 14336000 0
uvcvideo 90112 0
videobuf2_vmalloc 16384 1 uvcvideo
输出结果包含三列信息:模块名称、占用内存大小和被依赖情况。
2. modinfo命令 - 获取模块详细信息
要查看特定模块的详细元数据,modinfo命令是最佳选择。
# modinfo nvidia
filename: /lib/modules/5.4.0-72-generic/kernel/drivers/video/nvidia.ko
version: 460.73.01
license: NVIDIA
description: NVIDIA Graphics Driver
author: NVIDIA Corporation
该命令可以显示模块的文件位置、版本号、作者、许可证等关键信息。
3. /proc/modules文件 - 系统模块状态
Linux系统的/proc/modules文件包含了所有加载模块的状态信息。
# cat /proc/modules
nvidia 14336000 0 - Live 0x0000000000000000
uvcvideo 90112 0 - Live 0x0000000000000000
格式与lsmod类似,但包含了模块的内存地址等额外信息。
4. dmesg命令 - 查看模块加载日志
dmesg命令可以显示内核环形缓冲区中的消息,包括模块加载和卸载的记录。
# dmesg | grep -i module
[ 2.804355] Loaded module nvidia
[ 2.876543] Module uvcvideo initialized
5. /sys/module目录 - 模块文件系统
Linux在/sys/module目录下为每个加载的模块创建了对应的子目录。
# ls /sys/module/nvidia
holders initsize notes refcnt sections srcversion taint uevent
这些目录中包含模块的各种属性和状态文件,可以直接查看。
6. depmod命令 - 模块依赖关系
depmod命令用于生成模块依赖关系文件,也可以用来查看模块间的依赖关系。
# depmod -n | grep nvidia
nvidia: vfio_pci
7. 内核配置中的模块信息
要查看内核编译时配置的模块信息,可以查看config文件:
# cat /boot/config-$(uname -r) | grep CONFIG_MODULES
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
实用技巧
- 使用
modprobe -c查看所有模块的配置参数 find /lib/modules -name "*.ko"查找所有可用模块文件modprobe --show-depends 模块名显示模块依赖关系
掌握这些查看Linux系统模块信息的方法,将使您能够更好地理解系统运行机制,诊断模块相关问题,并进行有效的系统维护。建议将这些命令加入您的系统管理工具箱,定期检查模块状态以确保系统稳定运行。
