linux modprobe

linux modprobe

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

小编还为您整理了以下内容,可能对您也有帮助:

Linux 里的 modprobe 到底是干嘛的?说载入模块,不懂这模块指的都是什么?

modprobe(mole probe)

功能说明:自动处理可载入模块。

语  法:modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]

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

insmod 与 modprobe 都是载入 kernel mole,不过一般差别于 modprobe 能够处理 mole 载入的相依问题。

比方你要载入 a mole,但是 a mole 要求系统先载入 b mole 时,直接用 insmod 挂入通常都会出现错误讯息,不过 modprobe 倒是能够知道先载入 b mole 后才载入 a mole,如此相依性就会满足。

不过 modprobe 并不是大神,不会厉害到知道 mole 之间的相依性为何,该程式是读取 /lib/moles/2.6.xx/moles.dep 档案得知相依性的。而该档案是透过 depmod 程式所建立。

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

[举例]

*查看moles的配置文件:

$modprobe -c

这里,可以查看moles 的配置文件,比如模块的<a href="http://www.linuxso.com/command/%3Ca%20href=" http:="" www.linuxso.com="" command="" alias.html'="" target="_blank" style="color: rgb(8, 65, 214); text-decoration: none;">alias.html' target='_blank'>别名是什么等。会打印许多行信息,例如其中的一行会类似如下:

alias symbol:ieee80211_remove_wds_addr wlan

*列出内核中所有已经或者未挂载的所有模块:

$modprobe -l

这里,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;其实modprobe -l 读取的模块列表就位于 /lib/moles/'uname -r' 目录中;其中uname -r 是内核的版本.例如输出结果的其中一行是:

/lib/moles/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后缀.

与内核模块操作相关的命令还有:lsmod modinfo depmod rmmod inmod modprobe

modprobe 命令是根据depmod -a的输出/lib/moles/version/moles.dep来加载全部的所需要模块。  

删除模块的命令是:modprobe -r filename  

系统启动后,正常工作的模块都在/proc/moles文件中列出。使用lsmod命令也可显示相同内容。  

在内核中有一个“Automatic kernel mole loading"功能被编译到了内核中。当用户尝试打开某类型的文件时,内核会根据需要尝试加载相应的模块。/etc/moles.conf或 /etc/modprobe.conf文件是一个自动处理内核模块的控制文件。

参  数:

-a或--all  载入全部的模块。

-c或--show-conf  显示所有模块的设置信息。

-d或--debug  使用排错模式。

-l或--list  显示可用的模块。

-r或--remove  模块闲置不用时,即自动卸载模块。

-t或--type  指定模块类型。

-v或--verbose  执行时显示详细的信息。

-V或--version  显示版本信息。

-help  显示帮助。

了解更多开源相关,去LUPA社区看看吧。

linux:命令modprobe主要的作用是什么?能不能说的通俗一点?谢谢

这个要聊聊模块了

初期linux的驱动程序是必须编译在内核之中的(相应地驱动程序提供的是源程序以符合GNU规则,例如DFE530TX网卡的驱动就是ftp://www.scyld.com/pub/network/via-rhine.c),后来推广使用以后一则感觉不方便、二则普通用户也没有能力自己编译内核、三则当时内核不能太大,里面驱动程序太多超过1M的话会瘫掉,于是发明了模块(moles),就是事先将驱动程序编译成mole,使用时再将他们装载到系统里以避免重新编译内核。再经过发展以后,几乎内核里的大多数功能都能以模块形式存在,例如读写NTFS、支持PPP协议等等,所以模块功能已经不局限于驱动程序了。

modprobe功能就是,对系统里的模块进行增、减、安装、删除等等操作。

Linux 里的 modprobe 到底是干嘛的?说载入模块,不懂这模块指的都是什么?

为保持

linux

内核的稳定与可持续发展,内核在发展过程中引进了可装载模块这一特性。内核可装载模块就是可在内核运行时加载到内核的一组代码。通常

,

我们会在两个版本不同的内核上装载同一模块失败,即使是在两个相邻的补丁级(patch

level)版本上。这是因为内核在引入可装载模块的同时,对模块采取了版本信息校验。这是一个与模块代码无关,却与内核相连的机制。该校验机制保证了内核装载的模块是用户认可的,且安全的。