为什么安装系统模块的时候使用modprobe而不是insmod

今天安装一个内核模块,使用insmod,提示错误

#insmod /lib/modules/3.10.0-229.el7.x86_64/kernel/net/netfilter/nf_conntrack_pptp.ko

insmod: ERROR: could not insert module /lib/modules/3.10.0-229.el7.x86_64/kernel/net/netfilter/nf_conntrack_pptp.ko: Unknown symbol in module

感觉项依赖的一些函数或全局变量找不到,用modprobe 安装了一次,ok了。

#modprobe nf_conntrack_pptp

#lsmod | grep nf_conntrack_pptp

nf_conntrack_pptp      19258  1 nf_nat_pptp

nf_conntrack_proto_gre    14287  1 nf_conntrack_pptp

nf_conntrack          105702  7 nf_conntrack_proto_gre,nf_nat,nf_nat_ipv4,nf_nat_pptp,nf_nat_masquerade_ipv4,nf_conntrack_ipv4,nf_conntrack_pptp

安装成功,而且一些依赖的模块都安装好了,说明解决load module时的依赖关系,

google一下,它是通过/lib/modules/modules.dep文件来查找依赖关系的。而insmod不能解决依赖问题。所以modprobe 在安装系统模块的时候更好,当然,如果自己写的模块一般都一样。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容