我最近以非常便宜的价格购买了两个 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 构建中,因此不再需要这些步骤。
因此,如果您遇到内核恐慌:
- 重新启动并在 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 的目录(每次为
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
答案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
。将有两个感兴趣的目录,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 接口。