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