分类: LINUX
2010-07-22 19:33:43
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会卸载整组的模块。
[其他]
参考网址: