OpenEdv-开源电子网

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

自动创建设备节点,提示内核版本不一致disagrees about version of symbol device_create

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-3-13
在线时间
6 小时
发表于 2020-6-14 21:15:37 | 显示全部楼层 |阅读模式
1金钱
linux版本用的是第三期移植的版本, 4.1.15
使用device_create自动创建设备节点,加载模块时出现以下提示
/lib/modules/4.1.15 # modprobe newled.ko
newled: disagrees about version of symbol device_create
newled: Unknown symbol device_create (err -22)
newled: disagrees about version of symbol device_destroy
newled: Unknown symbol device_destroy (err -22)
newled: disagrees about version of symbol device_create                        
newled: Unknown symbol device_create (err -22)                                 
newled: disagrees about version of symbol device_destroy                        
newled: Unknown symbol device_destroy (err -22)                                 
modprobe: can't load module newled.ko (newled.ko): Invalid argument


最佳答案

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

搞定了 自己偷懒了,makefile路径和json文件路径都是用的原子现成的,把内核重新编译一遍然后把路径改过来就OK了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-3-13
在线时间
6 小时
 楼主| 发表于 2020-6-14 21:15:38 | 显示全部楼层
搞定了 自己偷懒了,makefile路径和json文件路径都是用的原子现成的,把内核重新编译一遍然后把路径改过来就OK了
回复

使用道具 举报

0

主题

134

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2020-5-8
在线时间
20 小时
发表于 2020-6-15 20:01:36 | 显示全部楼层
你先用file指令再ubuntu上查看newled.ko 这个文件是什么格式的
另外,重新拷贝newled.ko 文件看看
最后,你这个实验有动过设备树吗?需要动设备树吗?要的话,你设备树编译和替换了没?,另外,执行指令uname -r看看内核版本是什么?内核版本和模块版本不一致的话就会报错
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-3-13
在线时间
6 小时
 楼主| 发表于 2020-6-16 17:13:38 | 显示全部楼层
无忧花开 发表于 2020-6-15 20:01
你先用file指令再ubuntu上查看newled.ko 这个文件是什么格式的
另外,重新拷贝newled.ko 文件看看
最后, ...

uname -r的信息:
/lib/modules/4.1.15 # uname -r                                                  
4.1.15

newled.ko的信息:
file newled.ko
newled.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=04f8f7bf4baf15d996e64c48cc7eaed0a96d283f, not stripped

设备树使用的是第三期源码编译的
            

回复

使用道具 举报

12

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2020-3-11
在线时间
17 小时
发表于 2020-6-16 23:26:41 | 显示全部楼层
你先把机器里面的源码编译一遍,然后再编译这个驱动。加载这个动态module的时候,kernel会去check加载模块的每一个symbol的CRC,看看是否与kernel相应的symbol相同,不同的话就会报错。  同一个kernel版本,不同的config也会出这个问题。
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2023-3-23
在线时间
3 小时
发表于 2023-4-5 15:13:45 | 显示全部楼层
文文23333 发表于 2020-6-14 21:15
搞定了 自己偷懒了,makefile路径和json文件路径都是用的原子现成的,把内核重新编译一遍然后把路径改过来 ...

请问直接用的现成的镜像怎么办呢,
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-23 04:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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