837530799 发表于 2020-8-20 20:41:55

加载自己编译的模块报错

#demsg:version magic '3.10.65 preempt mod_unload ARMv7 p2v8 ' should be '3.10.65 SMP preempt mod_unload ARMv7 p2v8 '#modinfohelloworld.ko

filename:       helloworld.ko
license:      Dual BSD/GPL
depends:      
vermagic:       3.10.65 preempt mod_unload ARMv7 p2v8

求助。

837530799 发表于 2020-8-20 20:47:35

编译过程先加入export ARCH=arm
Makefile里写上
CC=arm-linux-gnueabihf-gcc
LD=arm-linux-gnueabihf-ld
其他正常编译,报的错是can't insert 'helloworld.ko': invalid module format

tanglu 发表于 2020-8-21 08:48:54

您好,
    出现以上错误是由于加载的驱动所使用的内核版本和系统运行的版本不一致。

    这是内核的一个版本校验机制,提供一个将驱动的版本强制改成和运行时内核一致的方法:

    1、include/config/kernel.release文件中为内核版本号,将其改为所需版本。

    2、include/generated/utsrelease.h文件中

       #define UTS_RELEASE “**”

       将**改为自己所需内核版本号 。

837530799 发表于 2020-8-21 10:55:27

tanglu 发表于 2020-8-21 08:48
您好,
    出现以上错误是由于加载的驱动所使用的内核版本和系统运行的版本不一致。



不行,修改之后dmesg报helloworld: unknown relocation: 10

tanglu 发表于 2020-8-21 14:15:35

您好,知识库OKA40i、T3系列中有一篇关于编写linux内核模块的文章,您可以参考一下

tanglu 发表于 2020-8-21 14:51:45

https://www.oschina.net/translate/writing-a-**-linux-kernel-module

tanglu 发表于 2020-8-21 14:53:04

https://www.cnblogs.com/linzizhang/p/4440455.html

837530799 发表于 2020-8-21 18:18:51

tanglu 发表于 2020-8-21 14:15
您好,知识库OKA40i、T3系列中有一篇关于编写linux内核模块的文章,您可以参考一下

您好,模块是可以编译的,问题是在板子上加载报错。

837530799 发表于 2020-8-21 18:31:43

tanglu 发表于 2020-8-21 14:15
您好,知识库OKA40i、T3系列中有一篇关于编写linux内核模块的文章,您可以参考一下

把编译链换成自带的5.3.1也不行

tanglu 发表于 2020-8-22 11:03:11

方便把您报错的打印信息发过来一下吗

tanglu 发表于 2020-8-22 11:46:03

您好,   我们这测试没有问题。


http://bbs.witech.com.cn/forum.php?mod=image&aid=10817&size=300x300&key=01810d27f7c8f728&nocache=yes&type=fixnone

837530799 发表于 2020-8-22 17:55:02

tanglu 发表于 2020-8-22 11:03
方便把您报错的打印信息发过来一下吗

报错的信息前面发过了,没有新的,网上找了很久也没解决,太折磨了

837530799 发表于 2020-8-23 10:59:45

tanglu 发表于 2020-8-22 11:03
方便把您报错的打印信息发过来一下吗

行了,换了个文件名就行了,奇怪得很。
页: [1]
查看完整版本: 加载自己编译的模块报错