在新硬件上加载网卡驱动,出现e1000e: disagrees about version of symbol struct_module的解决

在redhat下
我加载82574L的网卡驱动

[root@master conf]# insmod e1000e.ko       
insmod: cannot insert 'e1000e.ko': Invalid module format (-1): Exec format error
用dmesg命令查看,错误日志是:
e1000e: disagrees about version of symbol struct_module

 

在make   menuconfig时,你把Loadable   module   support   --->   Module   versioning   support一项如是选上,则去掉。

去掉该选项后,再用上面的步骤,可以编过module。

 

Rusty Russell提到modversions是为了不使一个没有版本的module插入一个修改版的内核


Don't allow a module built without versions altogether to be inserted into a kernel which expects modversions.

modprobe --force will strip vermagic as well as modversions, so it won't be effected, but this will make sure that a non-CONFIG_MODVERSIONS module won't be accidentally inserted into a CONFIG_MODVERSIONS kernel.

 

http://lkml.indiana.edu/hypermail/linux/kernel/0805.1/0588.html

 

还有一个密切相关的地方是include/linux/vermagic.h,里面定义了所有magic的生成:

#define VERMAGIC_STRING                         /
    UTS_RELEASE " "                         /
    MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT             /
    MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS   /
    MODULE_ARCH_VERMAGIC

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值