lxyscls 发表于 2009-11-16 14:50

invalid module format (-1):Exec format error

是这样的,ko是在开发环境ubuntu804上面make的,内核是2.6.24.16

目标环境内核版本是2.6.29.1,因此我在804建了对应的2.6.29.1的源码树,可惜还素不行!出现这个问题~

泪奔跪求!都是x86~

dreamice 发表于 2009-11-16 15:07

回复 #1 lxyscls 的帖子

编译环境和目标环境要一致才行

openspace 发表于 2009-11-16 21:43

原帖由 dreamice 于 2009-11-16 15:07 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
编译环境和目标环境要一致才行

今天下午看到了,晚上就遇到了
重新编译内核,以前的模块加载出现了同样的问题
体验到了
学习了

dreamice 发表于 2009-11-16 22:13

回复 #3 openspace 的帖子

主要原因还是Linux个内核版本之间差异比较大

openspace 发表于 2009-11-17 09:13

回复 #4 dreamice 的帖子

貌似有个vermagic.o
它应该类似于签名之类的
不知道是不是这个原因

dreamice 发表于 2009-11-17 10:32

回复 #5 openspace 的帖子

不是这个原因,内核版本变化,导致很多内核函数接口都变化了

openspace 发表于 2009-11-17 10:35

回复 #6 dreamice 的帖子

内核接口变化是主因
但是要是内核接口不变,而make时要快速检测的话,vermagic.o应该是个捷径吧

不改内核也不改配置后编译新内核(只是时间上讲新一些),再加载模块是否会出现这个问题

dreamice 发表于 2009-11-17 10:39

回复 #7 openspace 的帖子

时间上新一点,没有关系,现在内核小版本之间,很多实现以及函数都变化了,vermagic应该是个检查的捷径,但不是最终导致版本之间内核模块不兼容的主要原因。

openspace 发表于 2009-11-17 11:10

原帖由 dreamice 于 2009-11-17 10:39 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
时间上新一点,没有关系,现在内核小版本之间,很多实现以及函数都变化了,vermagic应该是个检查的捷径,但不是最终导致版本之间内核模块不兼容的主要原因。

刚重新编译了内核试了一下
没有Error
学习了

openspace 发表于 2009-11-17 13:01

刚有个想法,以为会根据整个内核的代码做一个签名
就偷偷在main.c里面加了空行,重新编译后照样正常加载模块:mrgreen:
所以考虑module的实现上可能会有一些操作
转去看module实现了
页: [1] 2
查看完整版本: invalid module format (-1):Exec format error