在執行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文件中進行配置,其他選項也是類似的辦法,