Linux

如何配置 modprobe 以在啟動時辨識新安裝的 eth1 驅動程序?

  • October 21, 2020

我有一台執行 Debian 6 的伺服器。我的主機板有兩個介面,eth0 和 eth1。Debian沒有eth1(e1000e)的驅動,所以我安裝了Intel提供的驅動(e1000e-1.4.4)。將其編譯到核心中後,我使用了rmmod e1000e; modprobe e1000e刪除舊模組並安裝新模組。然後我使用ifconfig eth1 IP. 現在一切正常。港口工程。我確保進行編輯/etc/network/interfaces,以便它在啟動時獲取 eth1,但是,當我重新啟動系統時,它找不到/辨識 eth1 設備。似乎該模組尚未載入。一旦我執行,我可以讓它再次工作rmmod e1000e; modprobe e1000e; ifconfig eth1 IP。我的猜測是我需要配置 modprobe 以便它在啟動時載入模組。有什麼幫助嗎?謝謝!

聽起來好像 initrd 有舊的 e1000e 驅動程序,並且它在 initrd 期間被載入。嘗試重建 initrd,它應該會選擇新安裝的版本。

由於您使用的是 debian,因此 command:sudo update-initramfs -u -k all應該可以解決問題。

做你想做的最原始和 IMO 簡單的方法是添加:

ifdown eth1; modprobe -r e1000e; modprobe e1000e; ifup eth1

進入 /etc/rc.local。這將完成這項工作,但它將在所有服務都啟動之後。但是,e1000e 模組應該在核心中,所以應該預設載入。另一種方法是添加:

e1000e 

在 /etc/modules 中。檢查這個執行緒,它是我搜尋 Debian 6 和 e1000e 的結果中的第一個。我建議找出核心不上傳 e1000e 模組的原因。

引用自:https://serverfault.com/questions/293615