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功能相同。