执行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文件中进行配置,其他选项也是类似的办法,

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM