2022年11月24日 星期四

在 CentOS 6.9 安裝 Intel 网卡 I219-V (rev 11)


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",

所以下載新的原始碼,一樣修改編譯錯誤的地方,就能成功安裝。

https://sourceforge.net/p/e1000/bugs/656/
編譯 e1000e 3.8.4,netdev.c 有一行程式要改
原來
struct net_device netdev = pci_get_drvdata(to_pci_dev(dev));

修改成

struct net_device netdev = pci_get_drvdata(pdev);

-


沒有留言:

張貼留言

網誌存檔