安裝ubuntu16.04 LTS後無網路連線的解決方法
本文適用情況:1.系統安裝後無法識別有線網絡卡(Windows是正常的) 2. I219-V網絡卡或者I218網絡卡
解決方法一:
1、檢視是否安裝網絡卡驅動 開啟終端,輸入ifconfig –a,如果出現“本地環回”字樣,說明網絡卡驅動未安裝。
2、檢視網絡卡型號 終端輸入lspci,檢視網絡卡型號,本文只針對I219-V網絡卡驅動。
3、下載e1000e網絡卡驅動,下載地址https://downloadcenter.intel.com/zh-cn/download/15817?_ga=1.159975677.114505945.1484457019 因官網i219-V驅動無法安裝成功,google發現e1000e可以支援I2xx網絡卡(見參考資料1)。
4、拷貝下載的tar.gz檔案至選擇的目錄,如使用 "/home/< 使用者名稱 >/e1000E”或“ /usr/local/src/e1000E”。
5、解壓縮檔案,<x.x.x>, 其中是驅動程式 tar 檔案的版本號: tar zxf E1000E-<x.x.x>.tar.gz
6、切換到驅動程式 src 目錄下, 其中 x.x.x<> 是驅動程式 tar 檔案的版本號: cd e1000E-x.x.x<>/src/
7、編譯驅動程式模組(需root使用者): make install
8、使用 modprobe 命令載入模組: modprobe e1000e
9、 如果不行,可進入驅動的目錄 sudo insmod /lib/modules/3.16.0-30-generic/updates/drivers/net/ethernet/intel/ethernet/intel/e1000e/e1000e.ko
解決方法二:
該方法是在上面方法仍然無法奏效的情況,這種情況比較極端,但是本人遇到了,是網絡卡晶片內部有問題。
1、在insmod 驅動之後無反應。
檢視除錯資訊可以看到報出了一個錯誤 The NVM Checksum is not valid。$ dmesg | grep e1000e [ 5.643760] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k [ 5.643761] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. [ 5.644308] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode [ 5.877838] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid [ 5.907340] e1000e: probe of 0000:00:1f.6 failed with error -5
2、我們去看這個驅動的原始碼 nvm.c
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
s32 ret_val;
u16 checksum = 0;
u16 i, nvm_data;
for (i = 0; i < (NVM_CHECKSUM_REG + 1); i++) {
ret_val = e1000_read_nvm(hw, i, 1, &nvm_data);
if (ret_val) {
e_dbg("NVM Read Error\n");
return ret_val;
}
checksum += nvm_data;
}
if (checksum != (u16)NVM_SUM) {
e_dbg("NVM Checksum Invalid\n");
return -E1000_ERR_NVM;
}
return 0;
}
修改這個函式 ,直接強制返回0
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
s32 ret_val;
u16 checksum = 0;
u16 i, nvm_data;
return 0;
}
從新編譯驅動在src資料夾中make ,把e1000e.ko考到上面那個驅動資料夾中 ,先rmmod e1000e.ko 再insmod e1000e.ko;就可以解決這個問題。
總結一下:這個問題是由於網絡卡晶片內部一部分記憶體有問題導致的,程式碼修改之後就不會再去檢查這片記憶體。開源系統linux的好處之一就是可以自己去修改程式碼。
參考連結:1、http://www.mamicode.com/info-detail-1710888.html
2、https://unix.stackexchange.com/questions/294753/intel-ethernet-connection-i219-v-not-working-under-linux-on-an-asuspro-b-laptop