Linux命令学习手册-modprobe
modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-o ] [parameters...]
modprobe -r [-n] [-i] [-v] ...
modprobe -l -t [ -a ...]
功能
从linux内核中添加和移除模块的程序。
举例
查看 modules
的配置文件
$modprobe -c
这里,可以查看 modules
的配置文件,比如模块的别名是什么等。会打印许多行信息,例如其中的一行会类似如下:
alias symbol:ieee80211_remove_wds_addr wlan
列出内核中所有已经或者未挂载的所有模块
$modprobe -l
这里,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实 modprobe -l
读取的模块列表就位于 /lib/modules/`uname -r`
目录中;其中 uname -r
是内核的版本.例如输出结果的其中一行是:
/lib/modules/2.6.27-7-generic/kernel/arch/x86/oprofile/oprofile.ko
挂载vfat模块
#modprobe vfat
这里,使用格式 modprobe 模块名
来挂载一个模块。挂载之后,用 lsmod
可以查看已经挂载的模块。模块名是不能带有后缀的,我们通过 modprobe -l
所看到的模块,都是带有 .ko
或 .o
后缀。
移除已经加载的模块
#modprobe -r 模块名
这里,移除已加载的模块,和 rmmod
功能相同。注意:模块名是不能带有后缀的,我们通过 modprobe -l
所看到的模块,都是带有 .ko
或 .o
后缀.
描述
modprobe
会从linux内核中智能地添加或者移除模块。
注意,为了方便,在 module
名称中的 _
和 -
是一样的。 modprobe
在模块目录 /lib/modules/`uname -r`
中查找除了 /etc/modprobe.conf
配置文件和 /etc/modprobe.d
目录之外中的模块和其他文件。所有在 /etc/modprobe.d/arch/
中的文件被忽略。
modprobe
需要一个实时更新的 modules.dep
文件,这个文件由 depmod
生成。这个文件列出了每个模块还需要依赖哪些其他的模块。 modprobe
利用这个文件来自动解决添加和删除模块时候的依赖关系。可以查看 depmod
和 modules.dep
的 man
手册。
如果在 modulename
后面还有其他的参数,那么它们会被传递给内核(同配置文件列出的选项一块)。
modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]
参数:
-
-a
或--all
载入全部的模块。 -
-c
或--show-conf
显示所有模块的设置信息。 -
-d
或--debug
使用排错模式。 -
-l
或--list
显示可用的模块。 -
-r
或--remove
模块闲置不用时,即自动卸载模块。 -
-t
或--type
指定模块类型。 -
-v
或--verbose
执行时显示详细的信息。 -
-V
或--version
显示版本信息。 -
-help
显示帮助。
insmod
与 modprobe
都是载入 kernel module
,不过一般差别于 modprobe
能够处理 module
载入的相依问题。
比方你要载入 a module
,但是 a module
要求系统先载入 b module
时,直接用 insmod
挂入通常都会出现错误讯息,不过 modprobe
倒是能够知道先载入 b module
后才载入 a module
,如此相依性就会满足。
不过 modprobe
并不是大神,不会厉害到知道 module
之间的相依性为何,该程式是读取 /lib/modules/2.6.xx/modules.dep
档案得知相依性的。而该档案是透过 depmod
程式所建立。
补充说明: modprobe
可载入指定的个别模块,或是载入一组相依的模块。 modprobe
会根据 depmod
所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在 modprobe
会卸载整组的模块。
其他
参考网址: