insmod & depmod & modprobe的区别及用法

modprobe 和 insmod在linux下都用来加载模块,两者用法区别如下:

(1)insmod需指定所需加载模块的路径,且只加载所指定的模块,如果所指定的模块依赖于其他模块,insmod不会自动添加,insmod使用方法如下:insmod 某路径/xxx.ko
(2)modprobe相比较于insmod更加智能,使用modprob加载模块时只需指定模块名称而不是模块的路径,使用modprobe加载内核模块时,如果加载的模块依赖于其他模块,modprobe会自动加载被依赖的模块,比如我们需要加载模块A,但是模块A依赖于模块B,那么我们在使用modprobe加载内核模块A时,modprobe会先加载内核模块B,然后再加载内核模块A。使用方法如下:modprobe xxx

Q1:modprobe加载内核模块时只需指定模块名称而不需要路径,那modprobe是如何知道要加载的内核模块的路径的?

Q2:modprobe是如何判断加载模块时所加载的模块是否依赖其他模块的?

问题1: modprobe加载内核的文件必须位于/lib/modules/(shell uname -r)目录下,也就是modprobe加载内核模块之所以不需要指定路径是因为modprobe命令有默认的加载路径。

问题2: modeprobe加载内核模块时依赖于/lib/modules/(shell uname -r)/modules.dep文件,modules.dep文件中列举了modproe可加载的内核文件以及内核文件所依赖的文件。假如一个内核模块位于/lib/modules/(shell uname -r)目录下,但是该模块未添加到modules.dep文件中,也无法通过modeprobe命令加载。那么问题来了,modules.dep文件是如何生成的?modules.dep文件通过depmode生成,如果往/lib/modules/(shell uname -r)目录下放置一个新的内核模块XXX并且希望通过modprobe命令进行加载模块XXX,那么将内核模块XXX放到/lib/modules/(shell uname -r) 目录下后需运行depmode命令,然后再运行modeprobe XXX才能将内核模块加载成功,否则会报错: modeprobe XXX not found

depmod作用:

上面已经说过了,用于生成modprobe依赖的modules.dep。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值