pfSense 与 Mellanox ConnectX-2 10GBit NIC

pfSense 与 Mellanox ConnectX-2 10GBit NIC

我最近以非常便宜的价格购买了两个 Mellanox ConnectX-2 10GBit NIC。我正在尝试让 pfSense 盒子识别这些。 BIOS 可以识别网卡,没有任何问题。然而,pfSense 绝对不会。它根本没有出现。

我听说我可以自己安装驱动程序,或者至少在某个地方扔一些神奇的花生酱来解决这个问题。可悲的是,我所拥有的唯一证据来自这篇关于 FreeNAS 的文章。但这不适用于我的安装。我也设法找到NAS4Free 上的帖子,但我找不到帖子中提到的 ISO,也找不到它基于哪个版本的 BSD。也许我错过了 NAS4Free 网站上的某些内容,但它不在那里。

我尝试了一些快照和当前的 2.2.6 正式版本。没有运气。

谁能指出我正确的方向吗?

答案1

编辑&FreeNAS-9.10-STABLE-201605240427 注意!

最近,我升级到最新FreeNAS-9.10-STABLE-201605240427版本,重新启动后出现引用 mlxen 模块的内核恐慌。我的[有限的知识]猜测是 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 的目录(每次为mlx4mlxen
  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

答案2

好吧。我花了一点时间才弄清楚这一点。

事实证明,Mellanox 基本上已经放弃了对该网卡的所有支持。然而,并非一切都失去了。您仍然可以使用 ConnectX-3 的旧版本来实际使用 NIC(或者我下载的驱动程序的发行说明是这样说的)。您可以找到驱动程序网页这里,以及实际的驱动下载正确这里。它位于ConnectX-3 -> Archive Versions -> 2.1 -> FreeBSD -> All -> All实际驱动程序站点下方。

幸运的是,它附带了有关如何安装驱动程序的说明。由于pfSense没有提供合适的编译环境,因此您必须设置单独的机器来编译。我安装了 FreeBSD 10.3 (带有源代码;这是安装程序中的一个选项)在虚拟机中,这与我的 pfSense 版本使用的版本相同。请确保使用与您的 pfSense 盒子中使用的版本相同的 FreeBSD。否则可能会导致问题。

我使用安装了 gcc pkg install gcc。不幸的是,此时,我无法实际使用从 Mellanox 网站下载的上述驱动程序。然而,FreeBSD 仍然支持驱动程序,只是默认情况下未启用它们。如果您发现构建驱动程序时出现错误,就可以找到需要编译的两个模块了/usr/src/sys/modules。将有两个感兴趣的目录,mlxenmlx4Makefile这两个目录中都会有一个。make && make install执行与其他驱动程序相同的常规程序。它将删除您需要的模块/boot/kernel。模块名称为mlx4.komlxen.ko。将这两个模块复制到您的 pfSense 盒子(到同一目录:)/boot/kernel。之后,您可以将这两行添加到您的/boot/loader.conf文件中:

mlx4_load="YES"
mlxen_load="YES"

保存文件并重新启动您的 pfSense 机器。

对我来说,NIC 现在出现并允许将其自身配置为 LAN 接口。

相关内容