执行insmod提示insmod: ERROR: could not insert module dtsled.ko: Invalid module format

在执行insmod是出现了以下错误log

dtsled: version magic '4.14.75-ltsi SMP preempt mod_unload aarch64' should be '4.14.75-ltsi-yocto-standard SMP preempt mod_unload aarch64'
insmod: ERROR: could not insert module dtsled.ko: Invalid module format

 

解决方法:
1.进入linux内核源码,找到./include/linux/vermagic.h
2.在vermagic.h中会包含一个头文件,进入该头文件
3. 修改成设定版本即可
4.重新编译驱动生成.ko,再执行insmod则可。

 

/include/linux/vermagic.h内容如下

 

如图所示并没有发现“-yocto-standard”

 

在linux内核代码下执行 grep -ri "-yocto-standard"

得到

.meta/cfg/mismatch-all.txt:Actual value: CONFIG_LOCALVERSION="-yocto-standard"

 

得知该选项和CONFIG_LOCALVERSION选项相关,该选项可以在config文件中进行配置,其他选项也是类似的办法,

 

posted @ 2020-04-29 15:36  蒲城小农  阅读(8431)  评论(0编辑  收藏  举报