在本文中,我们将说明如何使用modprobe命令在Linux内核中添加和删除Linux内核模块。modprobe是kmod的一部分,kmod是一种二进制文件,可实现用于管理Linux内核模块的多个程序。
前言 Linux内核是Linux操作系统的核心组件,它管理系统的资源,并且是计算机硬件和软件之间的桥梁。 Linux内核具有模块化设计,内核模块(通常称为驱动程序)是一段扩展内核功能的代码,模块要么编译为可加载模块,要么内置在内核中,可加载模块可以根据需要在正在运行的内核中进行加载和卸载,而无需重启系统。 通常,模块由udev(设备管理器)按需加载,但是,有时您可能需要微调模块的加载方式,例如,您可能需要使用其他参数加载模块或防止自动加载模块。 您可以使用modprobe命令将模块手动加载到内核中,或者在引导时使用/etc/modules或/etc/modules-load.d/*.conf文件自动将模块加载到内核中,以下为您讲解其使用的方法。 参考:modprobe命令_Linux modprobe命令使用详解:自动处理可载入模块。
添加内核模块 内核模块存储在/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目录内的文件中指定模块及其参数来实现,路径为/etc/modules-load.d/module_name.conf,文件必须以.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文件。
相关主题 |