lspci 顯示裝置為 "Ethernet controller: Intel Corporation Device 1a1d (rev 11)"
在新的 OS,如 Ubuntu 20 下顯示 "Ethernet controller: Intel Corporation (17) I219-V (rev 11)"
先前裝的是 e1000e-3.4.2.1,載入 e1000e 的 driver,並沒有抓到網卡。使用 Ubuntu 20 來測試,一樣使用 e1000e 的 driver,則可以抓到網卡。
後來在網路上看到有人的 NAS 換新網卡後,無法運作,用 eeupdate 把 I219-V 改成 I219-LM,就可以正常運作了。
EEupdate 修改 Intel 网卡类型,參考
因此就開始努力搜尋 eeupdate 工具,最後發現這是 Intel 發佈的工具,只有合約廠商才可以使用,可以用來設定主機板上的 MAC address。因此網路上大都要認證才可以下載,而且大都是舊的版本,連網卡都認不得。
後來找到一個,照著把 8086:1A1D 改成 8086:1A1C,但最後卡在寫入很久,可能是寫入錯誤,好在後來重開正常,應該是完全沒有寫進去。而且後來看了 Intel 的 e1000e 的驅動程式原始碼,發現這樣改根本沒用,所以沒成功算是運氣不錯,否則網卡可能就廢掉了。
在 e1000e-3.4.2.1 原始碼的 pci.updates 檔案中列出支援的裝置 ID,最後一版的 I219-V 是 "8086:15bc Ethernet Connection (7) I219-V","8086" 是 Intel Corporation 的 vendor id。也可以看出 I219-LM 和 I219-V 都是同時發佈,差一號。
再慢慢找答案,發現 Intel 提供的最近版本是 e1000e-3.8.4,下載的網頁就明白標示支援 "乙太網路連線 (17) I219-V",
所以下載新的原始碼,一樣修改編譯錯誤的地方,就能成功安裝。
struct net_device netdev = pci_get_drvdata(to_pci_dev(dev));
修改成
struct net_device netdev = pci_get_drvdata(pdev);