内核模块操作指令

来源:互联网 发布:成都学院软件邀请赛 编辑:程序博客网 时间:2024/05/23 20:26

modprobe(module probe)

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

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

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

 

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会卸载整组的模块。


功能说明:分析可载入模块的相依性。

语  法:depmod [-adeisvV][-m <文件>][--help][模块名称]

补充说明:depmod可检测模块的相依性,供modprobe在安装模块时使用。

 

   Linux内核模块可以为其它模块提供提供服务(在代码中使用EXPORT_SYMBOL),这种服务被称作"symbols"。若第二个模块使用了这个symbol,则该模块很明显依赖于第一个模块。这些依赖关系是非常繁杂的。 

   depmod读取在/lib/modules/version 目录下的所有模块,并检查每个模块导出的symbol和需要的symbol,然后创建一个依赖关系列表。默认地,该列表写入到/lib/moudules /version目录下的modules.dep文件中。若命令中的filename有指定的话,则仅检查这些指定的模块(不是很有用)。 

 

   若命令中提供了version参数,则会使用version所指定的目录生成依赖,而不是当前内核的版本(uname -r 返回的)。 


参  数:

-a 检查所有模块,如果命令中没有文件名称,这个选项默认是开启的。 

-b basedir  --basedir basedir  若你的模块并没有正确的在/lib/mdules/version下,可以指定目录生成依赖。 

-e  --errsyms  和-F选项一起使用,当一个模块需要的symbol在其它模块里面没有提供时,做出报告。正常情况下,模块没有提供的symbol都在内核中有提供。 

-F  --filesyms System.map 提供一个System.map文件(在内核编译时生成的)许-e选项报告出unresolved symbol。 

-n  --dry_run  将结果modules.dep和各种映射文件输出到标准输出(stdout),而不是写到模块目录下。 

-A --quick  检查是否有模块比modues.dep中的模块新,若没有,则退出不重新生成文件。 

 

 

在构建嵌入式系统时,需要由这个命令来生成相应的文件,由modprobe使用。


rmmod(remove module)

功能说明:删除模块。

语  法:rmmod [-as][模块名称...]

补充说明:执行rmmod指令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。

参  数:
  -a  删除所有目前不需要的模块。 
  -s  把信息输出至syslog常驻服务,而非终端机界面。

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


特殊情况说明:如果在嵌入式linux系统的 /lib/ 目录下无法加载。请到该目录下面的 modules/kernel/下面运行 depmod 然后运行 modprobe.卸载模块的时候rmmod无法使用的时候,请使用rmmod -f

-v:显示指令执行的详细信息; -f:强制移除模块,使用此选项比较危险; -w:等待着,直到模块能够被除时在移除模块; -s:向系统日志(syslog)发送错误信息。

来自: http://man.linuxde.net/rmmod

0 0
原创粉丝点击