modprobe各参数用法

modprobe 是 Linux 系统中用于加载和卸载内核模块的工具,它会自动处理模块的依赖关系。以下是 modprobe 的常用参数及其用法说明:


常用参数

  1. -v--verbose
    详细模式:显示命令执行过程中的详细信息(例如加载的依赖模块)。

    1
    sudo modprobe -v module_name
  2. -r--remove
    卸载模块:移除指定的模块及其依赖的未使用模块。

    1
    sudo modprobe -r module_name
  3. -l--list
    列出所有可用模块(在旧版本中有效,新版本可能已弃用,改用 find /lib/modules/$(uname -r) -name '*.ko')。

    1
    sudo modprobe -l
  4. --show-depends
    显示模块的依赖关系:列出加载该模块前需要先加载的依赖模块。

    1
    sudo modprobe --show-depends module_name
  5. -n--dry-run
    模拟执行:显示将要执行的操作,但不实际加载或卸载模块。

    1
    sudo modprobe -n -v module_name
  6. -f--force
    强制加载模块:即使模块版本与内核不匹配或存在其他问题,也尝试强制加载。

    1
    sudo modprobe -f module_name
  7. -C--config
    指定配置文件:使用自定义的配置文件代替默认的 /etc/modprobe.conf/etc/modprobe.d/

    1
    sudo modprobe -C /path/to/config.conf module_name
  8. -c
    显示当前配置:输出当前生效的配置参数。

    1
    sudo modprobe -c
  9. -q--quiet
    静默模式:忽略错误提示(例如模块未找到)。

    1
    sudo modprobe -q module_name
  10. --first-time
    检查模块是否已加载:如果模块已加载,则报错并退出。

    1
    sudo modprobe --first-time module_name

常用场景示例

  1. 加载模块

    1
    sudo modprobe ext4         # 加载 ext4 文件系统模块
  2. 卸载模块及其依赖

    1
    sudo modprobe -r nvidia    # 卸载 NVIDIA 驱动模块
  3. 查看模块依赖关系

    1
    sudo modprobe --show-depends vfat
  4. 强制加载不兼容的模块

    1
    sudo modprobe -f usb-storage
  5. 模拟加载过程(不实际执行):

    1
    sudo modprobe -n -v usbhid

配置文件

modprobe 的配置文件位于 /etc/modprobe.d/ 目录,用于定义模块的别名、黑名单或参数。

  • 黑名单模块(禁止自动加载):
    1
    echo "blacklist module_name" | sudo tee /etc/modprobe.d/blacklist.conf
  • 设置模块参数
    1
    echo "options module_name param=value" | sudo tee /etc/modprobe.d/module.conf

注意事项

  • 使用 modprobe 需要 root 权限(通过 sudo)。
  • 模块名称不需要包含 .ko 后缀。
  • 如果模块未找到,检查是否已安装对应的内核模块包(如 linux-modules-extra-$(uname -r))。
  • 相关命令:
    • lsmod:查看已加载的模块。
    • insmod/rmmod:手动加载/卸载模块(不处理依赖)。
    • modinfo:查看模块详细信息。

如果有具体问题(如模块加载失败),可以结合错误信息进一步分析!