linux内核模块管理命令介绍
·
在 Linux 系统中,内核模块(Kernel Modules)是一段可以动态加载和卸载的代码,用于扩展内核功能,而无需重新编译或重启内核。内核模块通常用于添加对硬件驱动程序、文件系统以及网络协议的支持。以下是 Linux 内核模块管理的几个重要命令:
1. lsmod — 列出当前加载的内核模块
- 功能:显示当前系统中已经加载的所有内核模块。
- 语法:
lsmod - 说明:
lsmod显示当前加载的内核模块,包括模块名、模块使用次数、以及其他模块的依赖情况。- 该命令的输出是从
/proc/modules文件读取的。
示例:
lsmod
2. modprobe — 加载或卸载内核模块
- 功能:用于加载或卸载内核模块,并处理模块的依赖关系。
- 语法:
- 加载模块:
modprobe [模块名] - 卸载模块:
modprobe -r [模块名]
- 加载模块:
- 说明:
modprobe自动解析模块依赖关系,并加载所需的依赖模块。modprobe -r用于卸载模块,同样会处理依赖关系。- 如果模块需要参数,可以通过
modprobe命令传递参数。
示例:
加载模块:
modprobe e1000
卸载模块:
modprobe -r e1000
3. insmod — 手动加载内核模块
- 功能:用于手动加载指定的内核模块文件。
- 语法:
insmod [模块文件路径] - 说明:
insmod需要指定模块的完整路径,通常位于/lib/modules/$(uname -r)/目录下。- 不会自动解析模块依赖关系,因此必须手动加载依赖模块。
示例:
insmod /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/e1000/e1000.ko
4. rmmod — 手动卸载内核模块
- 功能:从内核中卸载一个已经加载的模块。
- 语法:
rmmod [模块名] - 说明:
rmmod不会自动卸载依赖模块,因此必须确保没有其他模块依赖它,否则卸载将会失败。
示例:
rmmod e1000
5. depmod — 生成模块依赖关系文件
- 功能:扫描所有模块,生成模块之间的依赖关系文件。
- 语法:
depmod - 说明:
depmod用于更新/lib/modules/$(uname -r)/modules.dep文件,列出所有模块的依赖关系。
示例:
depmod
6. /proc/modules — 显示当前加载的模块
- 功能:这个文件可以显示当前系统中加载的内核模块信息。
- 语法:
cat /proc/modules - 说明:
/proc/modules文件包含当前内核加载的模块列表,与lsmod输出相同。
示例:
cat /proc/modules
7. modinfo — 查看模块的详细信息
- 功能:用于查看内核模块的详细信息,比如作者、许可证、描述、参数等。
- 语法:
modinfo [模块名] - 说明:
- 该命令显示模块的元数据信息,包括文件路径、依赖关系等。
示例:
modinfo e1000
常见使用场景:
-
查看当前加载的模块:
lsmod -
加载一个新的模块:
modprobe <模块名> -
卸载模块并检查是否成功:
modprobe -r <模块名> lsmod | grep <模块名> -
查看某个模块的详细信息:
modinfo <模块名>
通过这些命令,你可以灵活地管理 Linux 系统中的内核模块,动态添加或删除功能。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)