跳转到内容
命令速查linux-kernel

modprobe:管理内核模块

按模块依赖关系加载或卸载内核模块,并在变更前预演与核对影响。

状态
已审阅
难度
进阶
风险
会改变系统
平台
linux

依据模块依赖数据库加载或卸载可加载内核模块。与直接插入模块文件相比,modprobe 会处理依赖和配置规则。

Terminal window
modprobe [选项] 模块名
modprobe -r [选项] 模块名
选项 作用
-n, --dry-run 预演操作,不实际变更内核。
-v, --verbose 显示将执行的步骤。
-r, --remove 卸载模块及不再使用的依赖。
--show-depends 显示模块依赖处理结果。
Terminal window
MODULE=module_name
if [[ -z "$MODULE" || "$MODULE" == module_name ]]; then
printf '%s\n' '请先填写并核对模块名' >&2
else
modinfo -- "$MODULE" &&
sudo modprobe --dry-run --verbose -- "$MODULE" &&
sudo modprobe -- "$MODULE"
fi

实际加载成功通常没有输出。可用 lsmod 核对模块;有些驱动编译进内核,不会作为可卸载模块出现。

加载模块会在内核态运行代码;只使用与当前内核匹配且来源可信的模块。卸载存储、网络、控制台或正在使用的驱动可能立即中断系统,不要把模块名占位符直接执行,也不要使用 --force 绕过版本或使用状态检查。

确认模块不承载当前存储、网络、控制台且没有使用者后再卸载:

Terminal window
sudo modprobe -r -- "$MODULE"

若卸载返回“in use”,停止并查明依赖,不要强制移除。关键设备驱动应通过重启恢复到已知启动配置,而不是冒险在线卸载。

可用模块由内核配置、架构、签名策略及 /lib/modules/$(uname -r) 内容决定;只含内建驱动的精简嵌入式系统可能不提供模块加载能力。