6ull加載linux驅(qū)動模塊失敗解決方法
0x01 加載驅(qū)動模塊失敗
加載驅(qū)動失敗描述信息如下,錯(cuò)誤信息提示板卡中運(yùn)行的 linux 內(nèi)核版本是 4.1.15-g49efdaa ,架構(gòu)是 ARMv7 ;而編譯驅(qū)動使用的內(nèi)核源碼版本為 4.1.15 ,架構(gòu)是 ARMv6 。說明編譯驅(qū)動使用的內(nèi)核版本名和架構(gòu)與板卡中運(yùn)行的均不一致。
root@ALIENTEK-IMX6U:~/get# insmod led.ko [ 1634.442887] led: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' should be '4.1.15-g49efdaa SMP preempt mod_unload modversions ARMv7 p2v8 ' insmod: ERROR: could not insert module led.ko: Invalid module format
0x02 解決方法
有兩種解決方法:
(1) 重新編譯內(nèi)核、設(shè)備樹并燒錄到板卡中。
(2) 更改主機(jī)中的內(nèi)核配置信息,使其與板卡中的一致。
重新燒錄內(nèi)核比較麻煩,這里使用方法二。
1、在板卡終端中輸入命令uname -r和uname -p查看板卡所運(yùn)行的內(nèi)核的版本和架構(gòu)信息。
root@ALIENTEK-IMX6U:~/get# uname -r 4.1.15-g49efdaa root@ALIENTEK-IMX6U:~/get# uname -p armv7l
說明板卡中運(yùn)行的 linux 內(nèi)核版本為4.1.15-g49efdaa,處理器架構(gòu)為ARMv7
2、進(jìn)入主機(jī)中驅(qū)動模塊所使用的 linux 內(nèi)核的根目錄,執(zhí)行 make menuconfig 啟動 linux 內(nèi)核圖形化配置界面(不能使用menuconfig的可以百度去安裝相應(yīng)依賴庫)
如下圖所示,進(jìn)入System Type選項(xiàng):

然后進(jìn)入Multiple platform selection選項(xiàng):

然后在下圖的界面中取消第一條ARMv6 based platforms(ARM11)前面的*號(選中后按空格即可取消)

取消完畢后保存、退出,這樣就把內(nèi)核支持的架構(gòu)改為了 ARMv7 。
配置完 menuconfig 后不要再輸入其他的配置內(nèi)核的命令,不然會沖刷掉之前的配置。
3、打開內(nèi)核根目錄中的 Makefile ,在EXTRAVERSION變量后添加你板卡中運(yùn)行的linux內(nèi)核版本號的后半部分,比如我的內(nèi)核后半部分就是 -g49efdaa 。

更改完后保存,在 linux 內(nèi)核根目錄下執(zhí)行make -j12重新編譯內(nèi)核。
內(nèi)核編譯完畢后重新編譯驅(qū)動模塊。
驅(qū)動模塊編譯完畢后用 NFS 下載到板卡中,輸入modinfo [驅(qū)動模塊名]查看驅(qū)動模塊信息:
root@ALIENTEK-IMX6U:~/get# modinfo led.ko filename: /home/root/get/led.ko author: zuozhongkai license: GPL srcversion: 597E1DDC8A372707B8FD0DE depends: vermagic: 4.1.15-g49efdaa SMP preempt mod_unload modversions ARMv7 p2v8
可見vermagic一行中顯示的驅(qū)動模塊所屬的內(nèi)核版本和處理器架構(gòu)與板卡中的內(nèi)核信息一致,驅(qū)動模塊可以成功加載。
root@ALIENTEK-IMX6U:~/get# uname -r 4.1.15-g49efdaa root@ALIENTEK-IMX6U:~/get# uname -p armv7l
總結(jié)
到此這篇關(guān)于6ull加載linux驅(qū)動模塊失敗解決方法的文章就介紹到這了,更多相關(guān)加載linux驅(qū)動模塊失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux中的系統(tǒng)掛載(卸載)U盤(文件系統(tǒng))
這篇文章主要介紹了linux中的系統(tǒng)掛載(卸載)U盤(文件系統(tǒng)),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Linux多路轉(zhuǎn)接之select函數(shù)使用方式
這篇文章主要介紹了Linux多路轉(zhuǎn)接之select函數(shù)使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
centos設(shè)置fqdn(全稱域名)和hostname的方法
這篇文章主要介紹了centos設(shè)置fqdn(全稱域名)和hostname的方法,需要的朋友可以參考下2014-03-03
apache的AllowOverride以及Options使用詳解
通常利用Apache的rewrite模塊對 URL 進(jìn)行重寫的時(shí)候, rewrite規(guī)則會寫在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對.htaccess 所在目錄進(jìn)行配置2012-11-11
Linux定時(shí)備份數(shù)據(jù)庫到指定郵箱的方法
這篇文章主要介紹了Linux定時(shí)備份數(shù)據(jù)庫到指定郵箱的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
Linux一鍵安裝web環(huán)境全攻略(阿里云服務(wù)器)
這篇文章主要介紹了Linux一鍵安裝web環(huán)境全攻略,這些都是阿里云出的方便站長架設(shè)php運(yùn)行環(huán)境的工具,需要的朋友可以參考下2016-10-10
三種方法實(shí)現(xiàn)Linux系統(tǒng)調(diào)用
這篇文章主要介紹了三種方法實(shí)現(xiàn)Linux系統(tǒng)調(diào)用,感興趣的朋友可以參考一下2016-01-01

