modprobe和insmod的区别


在Linux中,modprobe和insmod都可以用来加载module,不过现在一般都推荐使用modprobe而不是insmod了。
modprobe和insmod的区别是什么呢?
1.modprobe可以解决load module时的依赖关系,比如load moudleA就必须先load mouduleB之类的,它是通过/lib/modules/<kernel-version>/modules.dep文件来查找依赖关系的。而insmod不能解决依赖问题。
2.modprobe默认会去/lib/modules/<kernel-version>/下面查找module,而insmod只在给它的参数中去找module(默认在当前目录找)。这样,有时insmod也有它的有用之处,举个例子吧。
有/root/my-mod.ko这个module,cd /root/,然后用insmod my-mod.ko(insmod /root/my-mod.ko)就可以insert这个module了,但是用modprobe my-mod.ko(modprobe /root/my-mod.ko)却提示"FATAL: Module my-mod.ko not found",这就是因为modprobe是到/lib/modules/uname -r/下去找module的,如果没找到就是这样了。

BTW,modprobe中的module name参数,对于"_"和"-"符号是不区分的。

参考资料:http://kb.bobcares.com/?View=entry&EntryID=641

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*