前言:版本CentOS6.5 ,核心版本:2.6.32
場景說明:在核心源碼的協助下,編譯出網卡的驅動r8168.ko,安裝手動安裝網卡驅動的步驟如下:
雖然編譯出r8168網卡驅動,然後存放在/lib/modules/'uname -r'/driver/net之下,但是無法自動加載,為什麼??
解決方案:系統啟動之後,通過檢視lspci |grep ethernet 檢視網卡型号,如果網卡型号是r8168,執行如下的指令:
rmmod r8169
insmod r8168 (必須指定目錄)
步驟1:解除安裝舊的網卡r8169
步驟2:加載新的網卡驅動r8168.ko
錯誤提示:
Module signaed with unknow public key
insmod -1 Required key not available
步驟3:取消子產品簽名
objcopy -R .note.module.sig r8168.ko
步驟4:加載
insmod r8158.ko
錯誤提示:-1 Unknown symbol in module
補充一下資訊,在insmod出錯後,在dmesg可查到:
ksign: module signed with unknown public key
- signature keyid: 63869bd3c84e7c71 ver=4
Module signed with unknown public key
有兩種方法:
1)下載下傳原始的核心源碼,在編譯配置時,有一個關于子產品簽名的選項(Module signature verification(EXPERIMENTAL)),
不選它。在insmod時就可以了,然後就可以了
2)驅動子產品的編譯不需要核心源代碼的幫助,隻需要核心頭檔案kernel-devel開發包
3)在核心中添加了驅動子產品的簽名,如果目前的驅動不是使用了相同核心的頭檔案編譯而成,就無法加載成功
本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1545712,如需轉載請自行聯系原作者