ubuntu 10.04 insmod 加载驱动 遇到-1.Invalid module format问题的解决方法 _VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2499 | 回复: 0   主题: ubuntu 10.04 insmod 加载驱动 遇到-1.Invalid module format问题的解决方法         下一篇 
    本主题由 koei123 于 2015-6-1 15:09:18 移动
nini
注册用户
等级:新兵
经验:56
发帖:63
精华:0
注册:2011-12-16
状态:离线
发送短消息息给nini 加好友    发送短消息息给nini 发消息
发表于: IP:您无权察看 2015-4-1 14:06:00 | [全部帖] [楼主帖] 楼主

学习linux设备驱动的编写的过程中,遇到加载驱动时出现1.Invalid module format的问题,
编译环境:PC Ubuntu 10.04(Linux-2.6.32)
比如编译2.6.31下的usbserial.ko,当insmod之后出现

XXX: error inserting 'XXX.ko': -1 Invalid module format


dmesg后有如下信息:

usbserial: no symbol version for module_layout


网络上查找信息,说是当前编译的源码版本跟系统内核的版本没有一致。我的源码是用Ubuntu自带的新立得下的,说版本不一致很让人费解。也有些人说是编译器版本不同造成的,觉得不太可能。完全不知道问题出在什么地方,网上找的帖子确实未能解决掉这个问题。后来经高手指点,
解决办法如下:使用PC自带的头文件,首先用uname -a查看自己内核版本,比如我的是:

Linux zy-desktop 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux


于是在Makefile中将路径改为:

KERNELDIR := /usr/src/linux-headers-2.6.32-21-generic


或者KERNELDIR := /usr/src/linux-headers-$(uname -r)
再次编译,成功通过。

--转自 北京联动北方科技有限公司

该贴由koei123转至本版2015-6-1 15:09:18



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论