Люди, похоже, довольны бывшими в употреблении Mellanox ConnectX-2 в Linux, поэтому я взял пару. Обе карты приводят к тому, что сетевой интерфейс отображается на одном компьютере, но ни один не отображается на другом компьютере.
Рабочий компьютер:
- EVGA 120-LF-E650 настольная плата
- Ubuntu 16.04 LTS
- Linux 4.4.0
Не работает компьютер
- ASUS 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
После заставки ASUS появляется пустой экран с единственным мигающим курсором, который никогда не попадает в GRUB. В этот момент на другом компьютере отображалось сообщение «Нажмите какую-нибудь клавишу, чтобы войти в сетевой менеджер загрузки Mellanox». (Хотелось бы вообще отключить этот экран, потому что я никогда не собираюсь загружать PXE.)
Попытка 2
Я сбросил окно, и на этот раз он загрузил 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
Моя встроенная Intel больше не работает:
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 возвращается только после того, как я отключил питание материнской платы и снова включил ее.
Попытка 3
Я отключил все функции энергосбережения PCIe в настройке UEFI, попробовал другой порт 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 МБ, но ожидал 1 МБ? Может быть, мне нужно отключить SR-IOV на карте, но я не знаю как; для ConnectX-3 это можно сделать через mlxconfig. Мне даже не нужны SR-IOV, я не планирую использовать VF.
Попытка 4
Я загрузил образ прошивки не HP с веб-сайта Mellanox, сделал резервную копию текущего образа и прошил одну из карт, используя:
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)», но оно все еще работает на другом компьютере.
Можно ли заставить эту карту работать с этой материнской платой? (Виртуальные функции не нужны)