帶有 Mellanox ConnectX-2 10GBit NIC 的 pfSense
我最近以非常便宜的價格購買了兩個 Mellanox ConnectX-2 10GBit NIC。我試圖讓 pfSense 框辨識這些。BIOS 可以辨識網卡,沒有任何問題。但是,pfSense 絕對不會。它根本沒有出現。
我聽說我可以自己安裝驅動程序,或者至少在某個地方扔一些神奇的花生醬來解決問題。可悲的是,我所擁有的唯一證據來自這篇關於 FreeNAS 的文章。不過,這不適用於我的安裝。我還設法在 NAS4Free 上找到了一個文章,但我找不到文章中提到的 ISO,也找不到它所基於的 BSD 版本。也許我錯過了 NAS4Free 網站上的某些內容,但它不存在。
我嘗試了一些快照和目前的 2.2.6 正式版本。沒運氣。
誰能指出我正確的方向?
好的。我花了一點時間弄清楚這一點。
事實證明,Mellanox 基本上已經放棄了對這個 NIC 的所有支持。然而,並不是所有的都失去了。您仍然可以使用 ConnectX-3 的舊版本來實際使用 NIC(或者說我下載的驅動程序的發行說明)。您可以在此處找到驅動程序網頁,並在此處下載實際的驅動程序。它
ConnectX-3 -> Archive Versions -> 2.1 -> FreeBSD -> All -> All
在實際的驅動程序站點上。幸運的是,它附帶了有關如何安裝驅動程序的說明。由於 pfSense 沒有提供合適的編譯環境,因此您必須設置單獨的機器進行編譯。我在虛擬機中安裝了 FreeBSD 10.3(帶有原始碼;它是安裝程序中的一個選項),這與我的 pfSense 版本正在使用的版本相同。確保使用與 pfSense 盒中使用的相同版本的 FreeBSD。否則可能會導致問題。
我使用
pkg install gcc
. 不幸的是,此時我無法真正使用從 Mellanox 網站下載的驅動程序。但是,FreeBSD 仍然支持驅動程序,只是預設情況下沒有啟用它們。如果您在建構驅動程序時發現錯誤,您可以找到需要編譯的兩個模組/usr/src/sys/modules
。將有兩個感興趣的目錄,mlxen
和mlx4
.Makefile
這兩個目錄中都會有一個。make && make install
執行您對任何其他驅動程序執行的正常程序。它會將您需要的模組放入/boot/kernel
. 模組名稱是mlx4.ko
和mlxen.ko
。將這兩個模組複製到您的 pfSense 框(到同一目錄:)/boot/kernel
。之後,您可以將這兩行添加到您的/boot/loader.conf
文件:mlx4_load="YES" mlxen_load="YES"
保存文件並重新啟動您的 pfSense 機器。
對我來說,NIC 現在出現並允許將其自身配置為 LAN 介面。
編輯和 FreeNAS-9.10-STABLE-201605240427 注意!
最近我升級到最新
FreeNAS-9.10-STABLE-201605240427
版本,重新啟動後出現引用 mlxen 模組的核心恐慌。我的$$ limited knowledge $$猜測是 mlx 驅動程序現在作為 FreeBSD 建構的一部分包含在內,因此不再需要這些步驟。 因此,如果您遇到核心恐慌:
- 重新啟動並在 GRUB 提示符下按“e”編輯啟動設置
- 這將打開一個簡單的編輯器,找到引用
mlx
驅動程序載入的行並用#
.- 按下
F10
繼續啟動- 從系統可調參數中刪除模組載入器語句。
@Lildirt 的解決方案也適用於 FreeNAS(FreeNAS-9.10-STABLE-201605021851)。長話短說,我花了 50 美元買了一個兩卡包和一根直連電纜,這樣我就可以在 FreeNAS 和我的其他執行 ESXi 的伺服器之間進行 iSCSI。ESXi辨識卡沒問題;就像 OP 中的 pfsense 一樣,FreeBSD 不知道它是什麼。
我的步驟不同之處在於:
- 創建了一個 FreeBSD 監獄來工作
- 安裝 gcc (
pkg install gcc
)- 下載了提到的 tar (
wget http://www.mellanox.com/downloads/Drivers/MLNX_OFED_FREEBSD_V2.1.6.tar.gz
)- 傳播
- 導航到包含 makefile 的目錄(每次 for
mlx4
和mlxen
)make && make install
這將安裝到/boot/kernel
監獄的根目錄(所以在我的情況下,我的實際路徑是/mnt/zfspoolname/jails/mytempjail/boot/kernel
)(也每次都用於兩個模組)- 現在將兩個 .ko 文件(模組)複製到 FreeNAS
/boot/kernel
(記得退出監獄,呵呵)- 通過 FreeNAS web ui 添加模組載入器語句(系統 -> 可調參數 -> 添加可調參數);這基本上將它們添加到
/boot/loader.conf.local
- 重啟 FreeNAS
- 你現在應該可以添加一個新的網路介面,我的被命名為
mlxen0