最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux 如何使用 modprobe 手动加载指定的内核模块
时间:2026-08-07 11:36:49 编辑:袖梨 来源:一聚教程网
modprobe 是最常用且安全的内核模块加载方式,自动处理依赖、路径查找和签名验证;需确保模块已安装于 /lib/modules/$(uname -r)/kernel/ 下,可用 modprobe -n -v 或 ls 命令确认存在;加载时省略 .ko 后缀,支持传入参数(需与 modinfo 输出一致),成功后通过 lsmod 和 dmesg | tail -10 验证。
直接用 modprobe 加载指定内核模块是最常用也最稳妥的方式,它会自动处理依赖、查找路径、验证签名(如启用),比 insmod 更安全可靠。
确认模块是否存在且可用
模块必须已安装在标准路径下(通常是 /lib/modules/$(uname -r)/kernel/),否则 modprobe 找不到它:
- 运行
ls /lib/modules/$(uname -r)/kernel/ | grep -i 模块名,比如grep -i fuse - 或用
modprobe -n -v 模块名(-n表示模拟执行,-v显示详细路径)查看是否能定位到模块文件 - 若提示
Module xxx not found in directory,说明模块未安装或内核版本不匹配
基础加载命令
加载单个模块,只需模块名(不含 .ko 后缀):
-
sudo modprobe fuse—— 加载 FUSE 文件系统支持 -
sudo modprobe br_netfilter—— 加载网桥 netfilter 支持 - 成功后不会输出任何信息,可立即用
lsmod | grep fuse验证是否在列表中
带参数加载模块
很多驱动或功能模块支持运行时参数,可在加载时一并传入:
-
sudo modprobe usb_storage delay_use=1—— 设置 USB 存储设备延迟识别时间 -
sudo modprobe igb InterruptThrottleRate=1500—— 调整 Intel 网卡中断节流率 - 参数名和取值需与模块的
modinfo -F parm 模块名输出一致,否则会被忽略或报错
验证加载结果
仅看 lsmod 不够,有些模块加载失败但残留条目,应结合内核日志判断真实状态:
- 加载后立刻执行
dmesg | tail -10,查找类似fuse: init (API version 7.34)或br_netfilter: loaded的成功提示 - 若出现
Unknown symbol或Failed to load,说明依赖缺失或符号版本不匹配 - 也可用
modinfo 模块名查看模块签名、许可证、作者等元信息,辅助排查