正德厚生,臻于至善

Linux modprobe命令

简介:
modprobe命令 用于向内核装在模块或从内核中移除模块。

modprobe可载入指定的个别模块儿,或是载入一组相依模块。modprobe会根据depmod(depmod是一个用来产生modules.dep和map文件的程序,depmod通过读取/lib/modules/version目录下的每一个模块来创建一个记录模块相依性的列表。这个列表就是/lib/modules/version目录下的modules.dep。)所产生的相依关系,决定载入哪些模块。如无法正确载入则modprobe会卸载整组模块。

为了一致性,modprobe不区分模块名字中包含的_和-。modprobe检查/lib/modules/`uname -r`下的所有模块,除了/etc/modprobe.conf配置文件和/etc/modprobe.d目录以外。所有/etc/modprobe.d/arch/目录下的文件将被忽略。值得注意的是现在modprobe不会对模块本身进行操作,解析symbols(linux核心模块可以提供服务给其他模块,称之为"symbols")和理解参数的工作都交由kernel来作,所以模块加载等错误有时将会包含在内核信息中,利用dmesg可以查看到,如果指定模块名,这些模块将会被传到核心中,当然还有它们对应的参数(记录在配置文件中).。
modprobe会根据modules.dep来添加或者删除模块。
通过了解modprobe的manpage 可以知道modprobe -l来显示当前可以加载的模块,所谓当前可以加载的模块实际上是modules.dep文件中包含的那些模块,而不是manpage里说的modprobe会加载/lib/modules/`uname -r`下的所有模块,modprobe加载某个模块是根据/lib/modules/`uname -r`目录下的modules.dep文件中的模块列表,这个文件中所有的模块modprobe会正确加载,否则就会出错。
用法及例子:
modprobe(选项)(参数—要加载或移除的模块名)

显示当前装入的内核模块:
$ lsmod|grep module_name

显示模块信息:
$ modinfo module_name

显示所有模块的配置信息:
$ modprobe -c | less

显示某个模块的配置信息:
$ modprobe -c | grep module_name

显示一个装入模块使用的选项:
$ systool -v -m module_name

显示模块的依赖关系:
$ modprobe --show-depends module_name

手动加载卸载
控制内核模块载入/移除的命令是kmod 软件包提供的, 要手动装入模块的话,执行:
# modprobe module_name

如果要移除一个模块:
# modprobe -r module_name
或者:
# rmmod module_name

查看modules的配置文件: 
modprobe -c 
可以查看modules的配置文件,比如模块的alias别名是什么等。

列出内核中所有已经或者未挂载的所有模块: 
modprobe -l 
能查看到所需要的模块,然后根据需要来挂载;其实modprobe -l读取的模块列表就位于/lib/modules/`uname -r`目录中;其中uname -r是内核的版本。

挂载vfat模块: modprobe vfat 
使用格式modprobe [模块名] 来挂载一个模块。挂载之后,用lsmod可以查看已经挂载的模块。模块名是不能带有后缀的,我们通过modprobe -l所看到的模块,都是带有.ko或.o后缀。
赞(0) 打赏
未经允许不得转载:徐万新之路 » Linux modprobe命令

评论 抢沙发

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫

微信扫一扫

登录

找回密码

注册