OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9903|回复: 5

字符驱动发生错误:modprobe: can't load module chrdevbase.ko (chrdevbase.ko): invalid module format

[复制链接]

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2021-3-29
在线时间
18 小时
发表于 2021-4-25 22:34:05 | 显示全部楼层 |阅读模式
1金钱
/lib/modules/4.1.15 # modprobe chrdevbase.ko
chrdevbase: unknown relocation: 3
chrdevbase: unknown relocation: 3
modprobe: can't load module chrdevbase.ko (chrdevbase.ko): invalid module format
/lib/modules/4.1.15 #
/lib/modules/4.1.15 #
/lib/modules/4.1.15 #
/lib/modules/4.1.15 #
我起先是自己看视频写的代码然后出现了这个问题,弄了半天了还是不知道问题在哪里,然后我把网盘里的里的例程源码1_chrdevbase复制过来然后改了一些路径最后还是这个问题。。。



最佳答案

查看完整内容[请看2#楼]

做驱动实验的话,内核zImage要和驱动匹配才行,所谓的匹配就是他们的版本号一致,是用同一个源码编译出来的。所以,先自己编译内核,将内核放到板子上运行,然后再编译驱动模块,再测试。这个很重要,否则也是会报很多奇葩错误。 出现invalid module format的话,除了上面说的内核和驱动版本不匹配的问题以外,也有可能可能.ko文件没有拷贝好,可以重新编译一次重新生成.ko文件再拷贝。 检查自己的内核版本,可以用uname -a这 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2021-4-25 22:34:06 | 显示全部楼层
本帖最后由 仰望星空之云 于 2021-7-9 21:45 编辑

做驱动实验的话,内核zImage要和驱动匹配才行,所谓的匹配就是他们的版本号一致,是用同一个源码编译出来的。所以,先自己编译内核,将内核放到板子上运行,然后再编译驱动模块,再测试。这个很重要,否则也是会报很多奇葩错误。
出现invalid module format的话,除了上面说的内核和驱动版本不匹配的问题以外,也有可能可能.ko文件没有拷贝好,可以重新编译一次重新生成.ko文件再拷贝。

检查自己的内核版本,可以用uname -a这个指令,看看执行指令后的版本是什么。
modprobe指令再执行前应先depmod,还有,指令后的.ko后缀可以尝试不写,也就是写成modprobe chrdevbase,因为不同的文件系统,可能需要写.ko可能不需要写.ko

更详细的解说和解决办法可以参考这个文章:
https://mp.weixin.qq.com/s/IFDd5am26K1rImLXjoBhEw


回复

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2021-3-29
在线时间
18 小时
 楼主| 发表于 2021-4-27 21:04:04 | 显示全部楼层
我查出来了,是我uboot没有设置好,然后导致驱动模块无法下载。然后我去下载了视频的教程的uboot源码,然后重新编译了1_chrdevbase复制到4.1.15中再次下载:
/lib/modules/4.1.15 # ls
chrdevbase.ko    chrdevbaseApp.c
/lib/modules/4.1.15 # depmod
/lib/modules/4.1.15 # ls
chrdevbase.ko    modules.alias    modules.symbols
chrdevbaseApp.c  modules.dep
/lib/modules/4.1.15 # modprobe chrdevbase
chrdevbase init!
然后就可以了
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2021-4-15
在线时间
8 小时
发表于 2021-4-30 22:39:42 | 显示全部楼层
JDmuyi 发表于 2021-4-27 21:04
我查出来了,是我uboot没有设置好,然后导致驱动模块无法下载。然后我去下载了视频的教程的uboot源码,然后 ...

楼主,我也是这个问题,我的内核和驱动模块也是同一个版本号,编译器也一致,现象跟你一样,你能说说最后怎么解决的吗
回复

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2021-3-29
在线时间
18 小时
 楼主| 发表于 2021-6-8 09:20:29 | 显示全部楼层
wenxuan204 发表于 2021-4-30 22:39
楼主,我也是这个问题,我的内核和驱动模块也是同一个版本号,编译器也一致,现象跟你一样,你能说说最后 ...

我的是u-boot在修改的时候没有修改好,我试过虽然可以加载出系统,但是应该有些功能不能实现,所以我直接把左工的代码修改的每部分按照教程一一拷贝修改防止自己手打出错,最后就可以了。具体问题出在哪里我也不是很清楚。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-8-6
在线时间
3 小时
发表于 2022-6-13 17:24:23 | 显示全部楼层
仰望星空之云 发表于 2021-4-25 22:34
做驱动实验的话,内核zImage要和驱动匹配才行,所谓的匹配就是他们的版本号一致,是用同一个源码编译出来的 ...

666,我遇到的就是这个问题。第一次编译拷贝模块大小7.5kb,报错。第二次编译拷贝8.2kb,不报错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 05:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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