Linux 命令——modprobe

Linux 命令------modprobe

modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。

modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。

modprobe命令的主要作用有以下几个方面:

  • 加载内核模块:modprobe命令可以根据模块名自动查找并加载相应的内核模块。当系统需要某个功能或驱动程序时,可以使用modprobe命令加载相应的内核模块,使其成为内核的一部分,从而实现该功能或驱动程序的使用。

  • 解决依赖关系:内核模块之间可能存在依赖关系,即某个模块依赖于其他模块才能正常工作。modprobe命令可以自动解决这些依赖关系,按照正确的顺序加载所需的模块。

  • 自动加载:modprobe命令可以根据系统配置文件(如/etc/modprobe.conf)中的设置,在系统启动时自动加载指定的内核模块。这样可以确保系统在启动时具备必要的功能和驱动程序。

  • 卸载内核模块:除了加载内核模块,modprobe命令还可以用于卸载不再需要的内核模块。通过卸载不需要的模块,可以释放系统资源,提高系统的性能。

  • 错误处理:当加载或卸载内核模块时出现错误时,modprobe命令可以提供相应的错误信息,帮助用户定位和解决问题。

语法

bash 复制代码
modprobe(选项)(参数)

选项

bash 复制代码
-v, --verbose:显示详细的加载信息。
-r, --remove:卸载指定的内核模块。
-a, --all:加载或卸载所有与指定模块相关的模块。
-i, --ignore-install:忽略安装命令,不执行任何命令。
-l, --list:显示已加载的内核模块列表。
-n, --showconfig:显示模块的配置信息。
-f, --force:强制加载或卸载模块,即使其正在被使用。
-c, --config:显示指定模块的配置信息。

参数

模块名:要加载或移除的模块名称。

错误情况

如果指定的模块不存在,将会显示错误信息。

当加载或卸载模块时,如果存在依赖关系无法解决,将会显示错误信息。

如果加载或卸载模块时出现权限不足的情况,将会显示错误信息。

如果加载或卸载模块时出现其他错误,例如模块文件损坏或无法访问,将会显示相应的错误信息。

实例

查看modules的配置文件:

bash 复制代码
modprobe -c

这里,可以查看modules的配置文件,比如模块的alias别名是什么等。会打印许多行信息,例如其中的一行会类似如下:

bash 复制代码
alias symbol:usb_free_urb usbcore

挂载vfat模块:

bash 复制代码
modprobe vfat

这里,使用格式modprobe 模块名来挂载一个模块。挂载之后,用lsmod可以查看已经挂载的模块。模块名是不能带有后缀的,我们通过modprobe -l所看到的模块,都是带有.ko.o后缀。

移除已经加载的模块:

bash 复制代码
modprobe -r 模块名

这里,移除已加载的模块,和rmmod功能相同。

相关推荐
甲鱼9295 小时前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
Johny_Zhao20 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号3 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github