Linux 中的 Modprobe 命令

评论 0 浏览 0 2020-06-16

Linux内核是Linux操作系统的核心组件。它管理系统的资源,是计算机硬件和软件之间的桥梁。

Linux内核采用模块化设计。内核模块(通常称为驱动程序)是扩展内核功能的一段代码。模块要么编译为可加载模块,要么内置到内核中。可加载模块可以根据请求在正在运行的内核中加载和卸载,而无需重新启动系统。

一般来说,模块是由udev(设备管理器)按需加载的。但是,有时您可能需要微调模块的加载方式。例如,您可能需要使用附加参数加载模块或阻止自动加载模块。

您可以使用modprobe命令手动将模块加载到内核中,或者在引导时使用/etc/modules/etc/modules-load.d/*.conf文件自动加载模块。

在本文中,我们将解释如何使用 modprobe 在 Linux 内核中添加和删除模块。 modprobekmod 的一部分,kmod 是一个实现多个用于管理 Linux 内核模块的程序的二进制文件。

添加内核模块

内核模块存储在/lib/modules/<kernel_version>目录中。您可以找到正在运行的内核版本 ,使用 uname -r 命令。

只有具有管理权限的用户才能管理内核模块。

要加载模块,请调用 modprobe 命令,后跟模块名称:

modprobe module_name

modprobe 命令将加载给定的模块和任何其他模块依赖项。命令行中只能指定一个模块。

使用 lsmod 命令确认模块已加载:

lsmod | grep module_name

要加载带有附加参数的模块,请使用 parameter=value 语法:

modprobe module_name parameter=value

该命令接受多个以空格分隔的 parameter=value 对。

通常,您需要在系统引导期间加载该模块。您可以通过在 /etc/modules-load.d 目录内的文件中指定模块及其参数来实现此目的。文件必须以 .conf 结尾,并且可以具有任何名称:

/etc/modules-load.d/module_name.conf
option module_name parameter=value

这些文件中指定的设置由udev读取,udev在系统启动时使用modprobe加载模块。

删除内核模块

要删除模块,请使用 -r 选项调用 modprobe 命令,后跟模块名称:

modprobe -r module_name

modprobe 还将删除未使用的模块依赖项。

当使用 -r 调用时,该命令接受多个模块作为参数:

modprobe -r module_name1 module_name2

您还可以使用 rmmod 从 Linux 内核卸载模块的命令。

如果要阻止在启动时加载内核模块,请创建一个 .conf 文件,并在 /etc/modprobe.d 中使用任意名称。语法是:

/etc/modprobe.d/blacklist.conf
blacklist module_name

如果要将其他模块列入黑名单,请在新行中指定模块,或创建新的 .conf 文件。

结论

modprobe 命令允许您添加和删除 Linux 内核模块。

如果您有任何疑问,请随时发表评论。

最后更新2023-10-04
0 个评论