執行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