人们似乎对 Linux 上的二手 Mellanox ConnectX-2s 很满意,所以我买了一对。两张卡都导致网络接口在一台计算机上显示,但在另一台计算机上均不显示。
工作计算机:
- EVGA 120-LF-E650 台式机主板
- Ubuntu 16.04 LTS
- Linux 4.4.0
电脑不工作
- 华硕 Z87-PLUS UEFI 台式机主板
- ArchLinux
- Linux 4.4.5
牌:
Part Number: 666172-001
Description: HP ConnectX-2 Lx EN network interface card; single-port SFP+; PCIe2.0 5.0GT/s; mem-free; RoHS R6
PSID: HP_0F60000010
FW 2.9.1000
尝试 1
在华硕启动徽标之后,出现一个空白屏幕,其中只有一个闪烁的光标,并且永远不会进入 GRUB。此时另一台计算机显示“按某个键进入 Mellanox 网络启动管理器”。(我希望我可以完全禁用此屏幕,因为我永远不会进行 PXE 启动。)
第二次尝试
我重置了盒子并且这次启动了 Linux 但是内核报告:
pci 0000:01:00.0: BAR 0: error updating (high 0x000000 != 0xffffffff)
mlx4_core: Mellanox ConnectX core driver v2.2-1 (Feb, 2014)
mlx4_core: Initializing 0000:01:00.0
mlx4_core 0000:01:00.0: enabling device (0000 -> 0002)
mlx4_core 0000:01:00.0: Multiple PFs not yet supported - Skipping PF
mlx4_core: probe of 0000:01:00.0 failed with error -22
我的板载英特尔不再工作:
e1000e 0000:00:19.0: can't find IRQ for PCI INT A; probably buggy MP table
e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
e1000e: probe of 0000:00:19.0 failed with error -2
移除 Mellanox 卡并不能恢复 Intel 卡。只有我切断主板电源并重新打开后,Intel 卡才能恢复。
第三次尝试
我在 UEFI 设置中禁用了所有 PCIe 省电功能,尝试了不同的 PCIe 端口,并将 acpi=off 或 pcie_aspm=off 传递给 Linux。
mlx4_core: Mellanox ConnectX core driver v2.2-1 (Feb, 2014)
mlx4_core: Initializing 0000:02:00.0
mlx4_core 0000:02:00.0: Missing DCS, aborting (driver_data: 0x2, pci_resource_flags(pdev, 0):0x0)
根据驱动程序源,这意味着“PCIe BAR”为 4 MB,但预期为 1 MB?也许我需要禁用卡上的 SR-IOV,但我不知道该怎么做;对于 ConnectX-3,可以通过 mlxconfig 完成。我甚至不需要 SR-IOV,我不打算使用 VF。
第四次尝试
我从 Mellanox 网站下载了非 HP 品牌的固件映像,备份了当前映像,然后使用以下命令刷新了一张卡:
sudo flint -d /dev/mst/mt26448_pci_cr0 -i fw-ConnectX2-rel-2_9_1200-MNPA19_A1-A3-FlexBoot-3.3.400.bin -allow_psid_change burn
现在看起来像这样:
Part Number: MNPA19_A1-A3
Description: ConnectX-2 Lx EN network interface card; single-port SFP+; PCIe2.0 5.0GT/s; mem-free; RoHS R6
PSID: MT_0F60110010
FW 2.9.1200
现在,当我使用 pcie_aspm=off 启动它时,我得到以下信息:
mlx4_core 0000:02:00.0: command 0xff6 timed out (go bit not cleared)
mlx4_core 0000:02:00.0: device is going to be reset
mlx4_core 0000:02:00.0: PCI can't be accessed to read vendor id
mlx4_core 0000:02:00.0: device was reset successfully
mlx4_core 0000:02:00.0: RUN_FW command failed, aborting
mlx4_core 0000:02:00.0: Failed to start FW, aborting
mlx4_core 0000:02:00.0: Failed to init fw, aborting.
mlx4_core: probe of 0000:02:00.0 failed with error -5
根据 OFED 常见问题解答,“上述错误信息表明设备的硬件功能与固件配置 (.ini) 文件参数设置不匹配”,但它在另一台机器上仍然可以工作。
我能让这张卡与这张主板配合使用吗?(不需要虚拟功能)