如何在Linux中使用Modprobe命令?用法示例指南

2021年11月18日22:38:08 发表评论 1,781 次浏览

Linux Modprobe命令使用教程介绍

Linux如何使用Modprobe命令:Linux 内核采用模块化设计。功能可通过模块或驱动程序进行扩展。使用该modprobe命令在 Linux 上添加或删除模块。该命令可以智能地工作并自动添加任何依赖模块。

内核用于modprobe请求模块。该modprobe命令搜索标准安装的模块目录以查找必要的驱动程序。

本文解释了如何使用 modprobe 添加或删除内核模块,包括一些Linux Modprobe命令用法示例。

先决条件

  • 一个运行 Linux 的系统
  • 访问终端/命令行
  • 具有sudoroot权限的用户帐户

modprobe 命令语法解释

所有modprobe命令都需要 sudo 权限。使用的一般语法modprobe是:

sudo modprobe <options> <module name>

默认情况下,该modprobe命令添加一个模块。

对于多个模块,使用选项-a或扩展-all

sudo modprobe <options> -a <first module name> <second module name>

modprobe 命令的选项

Linux如何使用Modprobe命令:可用的modprobe命令选项根据其用例分为几类。

管理选项

使用命令插入或删除模块时,管理选项启用不同的模块处理情况modprobe

--all
-a
允许同时插入或移除多个模块。
--remove
-r
移除一个模块。也适用--remove-dependencies。用于移除损坏的模块。
--remove-dependencies删除依赖模块。
--resolve-alias
-R
查找并打印与别名匹配的所有模块名称。用于调试别名问题。
--first-time为已经插入或移除的模块打印错误。
--ignore-install
--ignore-remove
-i
插入/删除模块时忽略模块中编写的安装/删除命令。
--use-blacklist
-b
黑名单解析别名。列入黑名单的模块不会自动加载。
--force
-f
出现版本错误时强制插入或移除模块。适用于--force-modversion--force-vermagic。谨慎使用。
--force-modversion在插入或移除时忽略模块版本。谨慎使用。
--force-vermagic在插入或移除时忽略模块版本魔法。谨慎使用。

查询选项

用于modprobe显示有关配置和依赖项的信息的查询选项。

--show-depends
-D
列出具有依赖文件的模块(如果有)。与模块一起安装的依赖项具有“install”前缀。
--showconfig
--show-config
-c
打印当前配置并存在。
--show-modversions
--dump-modversions
转储模块版本依赖项。

常规选项

常规选项配置modprobe输出选项、模块位置和版本。

--dry-run
--show
-n
不要执行插入/删除,而是打印输出。用于调试目的。
--config=<file name>
-C
使用<file name>覆盖默认配置依赖项 ( /etc/modprobe.d ) 。
--dirname=<directory>
-d
使用<directory>作为/lib/modules 的文件系统根。
--set-version=<version>
-S
使用指定的内核<version>而不是使用uname.
--syslog
-s
通过syslog而不是标准错误 ( stderr )打印错误消息。当stderr不可用时,错误会自动打印到syslog
--quiet
-q
禁用错误消息的显示。
--verbose
-v
允许显示更多消息(如果可用)。modprobe仅在出现问题时才打印消息。
--version
-V
显示modprobe版本。
--help
-h
显示列出的所有命令的帮助消息。

Linux Modprobe命令用法示例

默认情况下,所有内核模块都列在.ko(内核对象)文件的/lib/modules目录系统中。

Linux Modprobe命令使用教程:使用以下命令查找当前内核版本的所有可用模块:

find /lib/modules/$(uname -r) -type f -name '*.ko*' | more
如何在Linux中使用Modprobe命令?用法示例指南

注意:考虑删除旧的内核版本。查看我们关于如何在 Ubuntu上删除旧内核的指南。


Linux如何使用Modprobe命令:使用 modprobe 命令添加内核模块

1. 使用以下modprobe命令添加模块:

sudo modprobe <module name>

例如:

sudo modprobe torture
如何在Linux中使用Modprobe命令?用法示例指南

2. 确认模块加载:

sudo modprobe <module name> --first-time

输出会打印错误,因为该模块已在内核中。

如何在Linux中使用Modprobe命令?用法示例指南

或者,使用以下命令在活动模块加载列表中查找模块lmod

lsmod | grep <module name>

例如:

lsmod | grep torture
如何在Linux中使用Modprobe命令?用法示例指南

Linux如何使用Modprobe命令?使用 modprobe 命令删除内核模块

1. 使用以下modprobe -r命令删除模块:

sudo modprobe -r <module name>

例如:

sudo modprobe -r torture

2. 运行以下命令确认模块已移除:

sudo modprobe -r <module name> --first-time

出现一条错误消息,指出该模块不在内核中:

如何在Linux中使用Modprobe命令?用法示例指南
Linux Modprobe命令使用教程

或者,检查活动模块加载列表:

lsmod | grep <module name>

删除的模块不在模块加载列表中。

Linux Modprobe命令用法示例总结

Linux 内核被创建为模块化且易于扩展。请务必研究要添加或删除的模块,以避免内核出现问题。

如需进一步阅读,请遵循我们关于如何从头构建 Linux 内核的指南。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: