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 模块名 查看模块签名、许可证、作者等元信息,辅助排查