Chinaunix首页 | 论坛 | 博客
  • 博客访问: 440037
  • 博文数量: 132
  • 博客积分: 2511
  • 博客等级: 大尉
  • 技术积分: 1385
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-11 15:10
文章分类

全部博文(132)

文章存档

2012年(18)

2011年(35)

2010年(60)

2009年(19)

分类: LINUX

2012-09-29 14:13:44

今天在装载某模块时,报Invalid module format的错误:
-bash-4.1# insmod vadpt.ko
insmod: error inserting 'vadpt.ko': -1 Invalid module format

dmesg信息如下:
-bash-4.1# dmesg
[  868.737210] vadpt: version magic '2.6.39-kernel-debug SMP mod_unload CORE2 ' should be '2.6.39-kernel SMP mod_unload CORE2 '
编译环境是同事给的虚拟机,运行环境是X86。看来内核编译时和他给我的虚拟机环境还不一样。
不过至少内核版本是一样,应该是编译时的设置问题。


查了一下,version magic应该是在/usr/src/linux/include/linux/vermagic.h中定义的:
#define VERMAGIC_STRING                         \
    UTS_RELEASE " "                         \
    MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT             \
    MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS   \
    MODULE_ARCH_VERMAGIC

而UTS_RELEASE是在/usr/src/linux/include/generated/utsrelease.h中定义的:
Gentoo include # cat generated/utsrelease.h
#define UTS_RELEASE "2.6.39-kernel-debug"
把它改成
#define UTS_RELEASE "2.6.39-kernel"

之后重新编译内核模块,就可以正常装载了。


阅读(3871) | 评论(0) | 转发(0) |
0

上一篇:git本地仓库,分支切换的问题

下一篇:没有了

给主人留下些什么吧!~~