Freebsd

帶有 Mellanox ConnectX-2 10GBit NIC 的 pfSense

  • April 6, 2019

我最近以非常便宜的價格購買了兩個 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。將有兩個感興趣的目錄,mlxenmlx4. Makefile這兩個目錄中都會有一個。make && make install執行您對任何其他驅動程序執行的正常程序。它會將您需要的模組放入/boot/kernel. 模組名稱是mlx4.komlxen.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 建構的一部分包含在內,因此不再需要這些步驟。 因此,如果您遇到核心恐慌:

  1. 重新啟動並在 GRUB 提示符下按“e”編輯啟動設置
  2. 這將打開一個簡單的編輯器,找到引用mlx驅動程序載入的行並用#.
  3. 按下F10繼續啟動
  4. 從系統可調參數中刪除模組載入器語句。

@Lildirt 的解決方案也適用於 FreeNAS(FreeNAS-9.10-STABLE-201605021851)。長話短說,我花了 50 美元買了一個兩卡包和一根直連電纜,這樣我就可以在 FreeNAS 和我的其他執行 ESXi 的伺服器之間進行 iSCSI。ESXi辨識卡沒問題;就像 OP 中的 pfsense 一樣,FreeBSD 不知道它是什麼。

我的步驟不同之處在於:

  1. 創建了一個 FreeBSD 監獄來工作
  2. 安裝 gcc ( pkg install gcc)
  3. 下載了提到的 tar ( wget http://www.mellanox.com/downloads/Drivers/MLNX_OFED_FREEBSD_V2.1.6.tar.gz)
  4. 傳播
  5. 導航到包含 makefile 的目錄(每次 formlx4mlxen
  6. make && make install這將安裝到/boot/kernel 監獄的根目錄(所以在我的情況下,我的實際路徑是/mnt/zfspoolname/jails/mytempjail/boot/kernel)(也每次都用於兩個模組)
  7. 現在將兩個 .ko 文件(模組)複製到 FreeNAS /boot/kernel(記得退出監獄,呵呵)
  8. 通過 FreeNAS web ui 添加模組載入器語句(系統 -> 可調參數 -> 添加可調參數);這基本上將它們添加到/boot/loader.conf.local
  9. 重啟 FreeNAS
  10. 你現在應該可以添加一個新的網路介面,我的被命名為mlxen0

引用自:https://unix.stackexchange.com/questions/272329