官方QQ群收藏本站

百问linux嵌入式论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 60|回复: 5

insmod加载驱动程序失败的问题

[复制链接]

4

主题

21

帖子

115

积分

注册会员

Rank: 2

积分
115
QQ
发表于 2019-3-6 22:57:26 | 显示全部楼层 |阅读模式

在学习第12课第2.2节加载驱动程序的时候遇到如下的错误:
insmod: cannot insert 'First_driv.ko': Invalid module format (-1): Exec format error

开发板上运行的内核版本:
First_Driv_001.png


Ubuntu上运行的内核版本:
First_Driv_002.png

这个问题很明显是开发板的内核版本与Ubuntu的内核版本不匹配导致的。
请问这个问题怎么解决?


发表于 2018-3-7 10:22:43  http://bbs.100ask.org/forum.php? ... mp;highlight=insmod

>1.编译驱动前,编译了内核,当时生成了uImage
>2.将新uImage烧写到板子上
>3.编写、编译驱动
>4.测试驱动

有个疑问,即使重新编译了内核(光盘上提供的),它的版本也2.6.22.6.
我的Ubuntu已经变成了2.6.31-14
感觉这样子还是解决不了问题。
是不是我要重新装载光盘上提供的Ubuntu,但是以前没有注意Ubuntu的版本。
②可不可以设置一下内核的版本号再去编译,烧写呢?
这个我不太清楚,其实网上是可以下载2.6.22的内核的。



回复

使用道具 举报

8

主题

1152

帖子

3608

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3608
发表于 2019-3-6 23:15:01 | 显示全部楼层
你这个驱动是给开发板用的吧,为什么关心ubuntu呢?
我是百问网www.100ask.org答疑助手,有关技术问题请与我联系。
韦东山视频开发板购买店铺:https://100ask.taobao.com/
微信公众平台:baiwenkeji
回复 支持 反对

使用道具 举报

4

主题

21

帖子

115

积分

注册会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2019-3-7 06:34:22 | 显示全部楼层
百问网-李老师 发表于 2019-3-6 23:15
你这个驱动是给开发板用的吧,为什么关心ubuntu呢?

看来是我理解错了,我现在重新烧写一下内核,希望能解决这个问题。
我查了一下insmod的原因,网上是这样说的:
”正在运行的板子的内核版本 与 编译驱动的内核版本 不一致造成的“

我的理解是:
“正在运行的板子的内核版本”是指现在烧写到单板中的内核版本,也就是2.6.22.6这个版本。
“编译驱动的内核版本”是指Ubuntu中的内核版本
回复 支持 反对

使用道具 举报

0

主题

3

帖子

13

积分

管理员

百问网论坛管理员

Rank: 9Rank: 9Rank: 9

积分
13
QQ
发表于 2019-3-7 17:05:48 | 显示全部楼层
薛定谔的猫 发表于 2019-3-7 06:34
看来是我理解错了,我现在重新烧写一下内核,希望能解决这个问题。
我查了一下insmod的原因,网上是这样 ...

错,“编译驱动的内核版本”是指驱动Makefile的KERN_DIR所指的内核版本
---------------------------------------------------------------------
http://100ask.taobao.com/
--------------------------------------------------------------------
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.100ask.org/bbs/forum. ... id=10914&extra=
回复 支持 反对

使用道具 举报

4

主题

21

帖子

115

积分

注册会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2019-3-7 18:33:41 | 显示全部楼层
dewei 发表于 2019-3-7 17:05
错,“编译驱动的内核版本”是指驱动Makefile的KERN_DIR所指的内核版本

非常感谢指正。看来我是理解错了。
这样一来,我的问题就不是“正在运行的板子的内核版本 与 编译驱动的内核版本 不一致造成的”。
目前来看,板子的内核版本和编译驱动的内核版本都是2.6.22.6.
回复 支持 反对

使用道具 举报

4

主题

21

帖子

115

积分

注册会员

Rank: 2

积分
115
QQ
 楼主| 发表于 2019-3-7 20:06:47 | 显示全部楼层
按照下面这个步骤重新来了一遍,就ok了。
我当时应该是驱动被破坏,重新给单板传了一遍就好了(感觉有点儿莫名其妙^_^?)
>1.编译驱动前,编译了内核,当时生成了uImage
>2.将新uImage烧写到板子上
>3.编写、编译驱动
>4.测试驱动

总结一下:
“正在运行的板子的内核版本”是指现在烧写到单板中的内核版本,也就是2.6.22.6这个版本。
“编译驱动的内核版本”是指驱动Makefile的KERN_DIR所指的内核版本(切记,不是Ubuntu的内核版本)
回复 支持 反对

使用道具 举报

技术支持
在线咨询
咨询热线
0755-86200561
微信扫一扫
获取更多资讯!

Archiver|小黑屋|百问linux嵌入式论坛     

GMT+8, 2019-3-24 22:10 , Processed in 0.108755 second(s), 12 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表