3

Linux modprobe命令加载与卸载内核模块

 1 year ago
source link: https://www.myfreax.com/modprobe-command-in-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Linux modprobe命令加载与卸载内核模块

模块要么编译为可加载模块,要么内置在内核中。可加载模块可以根据需要在正在运行的内核中进行加载和卸载

Updated At 27 Oct 2022 4 min read
By myfreax
Linux modprobe命令加载与卸载内核模块

Linux modprobe命令加载与卸载内核模块

每个Linux发行版,例如Ubuntu,CentOS,RedHat,操作系统的核心组件是Linux内核。它管理系统的资源,并充当计算机硬件和软件之间的桥梁。

Linux内核具有模块化设计。内核模块通常称为驱动程序,是一段扩展内核功能的代码。

模块要么编译为可加载模块,要么内置在内核中。可加载模块可以根据需要在正在运行的内核中进行加载和卸载,且不需要重新启动系统。

通常,内核模块是由udev按需加载的,udev通常称为设备管理器。但是,有时您可能需要微调模块的加载方式。

例如,您可能需要使用其他参数加载模块,或者禁止加载指定模块。

您可以使用modprobe命令将模块手动加载到内核中,也可以在启动时自动将模块加载模块到内核。

通过在/etc/modules/etc/modules-load.d/*.conf配置文件中指定加载的内核模块。

在本教程中,我们将说明如何使用modprobe命令从Linux内核中添加和删除模块。 modprobekmod的一部分,该二进制文件实现了用于管理Linux内核模块的多个程序。

载入内核模块

内核模块存储在/lib/modules/<kernel_version>目录。你可以运行uname -r命令找到当前正在运行的内核版本号

只有root或者具有sudo权限的用户才能在内核载入或者删除模块。要加载模块,请运行modprobe命令,后跟模块名称。

modprobe命令将加载指定的模块和该模块依赖的其它模块。你只需要指定要加载模块即可,依赖的模块将会自动加载到内核。

如果你需要使用其他参数加载内核模块,请使用parameter=value语法运行modprobe命令。modprobe命令接受多个以空格分隔parameter=value格式的选项。

modprobe module_name
modprobe module_name parameter=value

要确认内核模块是否加载成功,可以运行lsmod命令列出已加载的模块,然后通过管道传递给grep命令过滤即可。

lsmod | grep module_name

自动加载内核模块

通常,您需要在系统启动期间加载模块。您可以在/etc/modules-load.d目录中创建配置文件指定模块名称及其参数来实现自动加载模块。

配置文件必须以.conf结尾,你可以给为配置文件使用任何名称,通常建议使用模块的名称作为文件名。

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

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

卸载内核模块

要卸载指定内核模块,请使用modprobe命令的-r选项,后跟模块名称。modprobe还将删除未使用的依赖模块。

使用-r选项时,modprobe命令允许接受多个模块作为参数。你也可以使用rmmod命令从Linux内核中卸载模块。

modprobe -r module_name
modprobe -r module_name1 module_name2

使用modprobe命令卸载的模块将保持卸载状态。直到系统重新启动,内核将会再次加载已经被卸载的模块。

要在启动时永久禁止加载已卸载的模块,请在/etc/modprobe.d目录中创建文件blacklist.conf。文件的名称可以任何你喜欢的名称。

如果要将更多的模块加入此文件中,请以同样的格式在新的一行指定模块名称。

在本教程我们使用vim创建文件/etc/modprobe.d/blacklist.conf。完成后保存文件并退出vim

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK