Die Leute scheinen mit gebrauchten Mellanox ConnectX-2s unter Linux zufrieden zu sein, also habe ich mir ein Paar geschnappt. Beide Karten führen dazu, dass auf einem Computer eine Netzwerkschnittstelle angezeigt wird, auf dem anderen jedoch keine.
Arbeits computer:
- EVGA 120-LF-E650 Desktop Board
- Ubuntu 16.04 LTS
- Linux 4.4.0
Computer funktioniert nicht
- ASUS Z87-PLUS UEFI-Desktop-Board
- ArchLinux
- Linux 4.4.5
Karten:
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
Versuch 1
Nach dem ASUS Splash-Logo erscheint ein leerer Bildschirm mit einem blinkenden Cursor und es kommt nie zu GRUB. Auf dem anderen Computer wurde zu diesem Zeitpunkt die Meldung "Drücken Sie eine Taste, um den Mellanox-Netzwerk-Boot-Manager aufzurufen" angezeigt. (Ich wünschte, ich könnte diesen Bildschirm komplett deaktivieren, da ich niemals PXE booten werde.)
Versuch 2
Ich habe die Box zurückgesetzt und Linux diesmal gebootet, aber der Kernel meldet:
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
Mein Intel an Bord funktioniert nicht mehr:
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
Durch Entfernen der Mellanox-Karte wird die Intel-Karte nicht zurückgebracht. Der Intel kehrt erst zurück, nachdem ich das Motherboard ausgeschaltet und wieder eingeschaltet habe.
Versuch 3
Ich habe alle PCIe-Energiesparfunktionen im UEFI-Setup deaktiviert, einen anderen PCIe-Port ausprobiert und acpi = off oder pcie_aspm = off an Linux übergeben.
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)
Laut der Treiberquelle bedeutet dies, dass die "PCIe BAR" 4 MB groß war, aber 1 MB erwartet hat? Vielleicht muss ich SR-IOV auf der Karte deaktivieren, aber ich weiß nicht wie; Für ConnectX-3 kann dies über mlxconfig erfolgen. Ich brauche nicht einmal SR-IOV, ich plane nicht die Verwendung von VFs.
Versuch 4
Ich habe ein nicht von HP hergestelltes Firmware-Image von der Mellanox-Website heruntergeladen, das aktuelle Image gesichert und eine der folgenden Karten geflasht:
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
Nun sieht es so aus:
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
Nun, wenn ich es mit pcie_aspm = off starte, bekomme ich folgendes:
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
Laut einer OFED-FAQ "zeigt die obige Fehlermeldung an, dass die Hardwarefunktionen des Geräts nicht mit den Parametereinstellungen der Firmware-Konfigurationsdatei (.ini) übereinstimmen", funktioniert jedoch weiterhin auf dem anderen Computer.
Kann ich diese Karte für dieses Motherboard verwenden? (Virtuelle Funktionen werden nicht benötigt)
quelle