Linux中的Modprobe命令

时间:2020-03-05 15:28:58  来源:igfitidea点击:

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

Linux内核具有模块化设计。
内核模块(通常称为驱动程序)是一段扩展内核功能的代码。
模块或者编译为可加载模块,或者内置在内核中。
可加载模块可以根据需要在正在运行的内核中进行加载和卸载,而无需重新引导系统。

通常,模块由“ udev”(设备管理器)按需加载。
但是,有时我们可能需要微调模块的加载方式。
例如,我们可能需要使用其他参数加载模块或者防止自动加载模块。

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

在本文中,我们将说明如何使用'modprobe'在Linux内核中添加和删除模块。
“ modprobe”是“ 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

该命令接受以空格分隔的多个“参数=值”对。

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

/etc/modules-load.d/module_name.conf

option module_name parameter=value

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

卸下内核模块

要删除模块,请使用“ -r”选项和模块名称来调用“ modprobe”命令:

modprobe -r module_name

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

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

modprobe -r module_name1 module_name2

如果要防止在启动时加载内核模块,请在“ /etc/modprobe.d”中创建一个名称为“ .conf”的文件。
语法为:

/etc/modprobe.d/blacklist.conf

blacklist module_name

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