Supermicro AOC-STGN-i1S (X520) auf Proxmox 7.1: kein Interface in ip link bei gestecktem HP-DAC
Ich betreibe zu Hause eine kleine Proxmox-Box und wollte einen ordentlichen 10G-Pfad zum Storage-Node, also habe ich eine gebrauchte Supermicro AOC-STGN-i1S eingebaut. Das ist das schlichte Intel-82599-Design, Board mit der Markierung E157872, und ich dachte, das wäre der langweilige Teil des Aufbaus. Ist es nicht.
- Supermicro AOC-STGN-i1S, Intel X520-DA1, Board-Markierung E157872
- Proxmox 7.1, Kernel 5.15.30-1-pve
- passiver SFP+-DAC von HP zur zweiten Box
- die Karte wird auf dem PCI-Bus sauber erkannt
Der Treiber lädt nie fertig. Das Kernel-Log sagt, er hat abgebrochen, weil er einen nicht unterstützten SFP+/QSFP-Modultyp erkannt hat, und danach gibt es schlicht keinen Port zum Konfigurieren:
lspci -> the X520 is listed, no complaints
ip link -> lo and the onboard 1G only, no 10G interface at all
dmesg -> ixgbe aborts loading, unsupported SFP+/QSFP module type
Was ich schon gemacht habe:
- /etc/modprobe.d/ixgbe.conf angelegt mit
options ixgbe allow_unsupported_sfp=1, dannupdate-initramfs -uund ein Reboot: keine Änderung - dieselbe Option stattdessen als Kernel-Parameter übergeben: keine Änderung
rmmod ixgbeundmodprobe ixgbevon Hand: inip linkimmer noch nichts Neues
Ist die Karte tot, oder gibt es einen Weg an dieser Prüfung vorbei auf einem 5.15-Kernel, den ich übersehe?
Comments 5
Was du beschreibst, sieht genau nach einem EEPROM-Whitelist-Treffer bei ixgbe aus. Der Treiber liest die Modul-ID, entscheidet, dass sie nicht auf Intels akzeptierter Liste steht, und bricht ab, bevor er je ein netdev registriert, deshalb sieht
lspcidie Karte undip linkzeigt überhaupt nichts. Nichts davon ist ein Hardwarefehler, und deshalb kommt der Port auch in dem Moment zurück, in dem das Modul aus dem Käfig ist.Der dokumentierte Fluchtweg ist der, den du schon benutzt hast:
Auf 5.15 ist diese Option schlicht nicht verlässlich. Ich hatte auf diesem Kernel dasselbe Nichtergebnis, es lohnt sich also nicht, es nochmal zu machen oder einen Tippfehler in der conf-Datei zu suchen.
Was es bei mir geklärt hat: Mit leerem Käfig kam das Interface bei
modprobe ixgbehoch, das HP-Kabel wieder einzustecken ließ es erneut verschwinden, und genau dasselbe HP-Kabel linkte ohne Drama in einer Mellanox ConnectX-2. Das Kabel ist elektrisch in Ordnung, Intel mag nur nicht, wie es codiert ist.Die Lösung, die funktioniert hat, war stattdessen ein schlichter, unmarkierter generischer SFP+-DAC. Link sofort oben, keine Modul-Optionen, kein Reboot-Tanz. Zum Support: Mit jedem nicht-Intel-codierten Kabel bist du ohnehin außerhalb von Intels Matrix, falls diese Box also jemals supportfähig sein muss, kauf einen Intel-codierten DAC statt eines HP-Kabels.
Bevor du die Karte abschreibst, mach einen Test. Zieh den DAC komplett aus dem Käfig, dann
rmmod ixgbe,modprobe ixgbeund schau dirip linkerneut an. Erscheint das Interface bei leerem Käfig, sind Karte und Treiber beide in Ordnung, und das Kabel ist das, woran die Prüfung würgt.Zweite Sache, die man wissen sollte: Linkt dieser HP-DAC irgendwo anders? Eine Nicht-Intel-NIC nimmt ihn normalerweise klaglos. Und ist es definitiv das HP-codierte Kabel, oder liegt noch ein generisches zum Vergleich herum?
Schätz dich glücklich, auf einem X520 zu sein, wo du wenigstens einen Treiber-Schalter hast, so wackelig er auch ist. Bei X710 und XL710 ist die Modulprüfung in die Firmware gewandert,
allow_unsupported_sfptut für i40e also rein gar nichts. Steck ein Nicht-Intel-Modul in ein X710-DA2, und du bekommst:und damit ist die Unterhaltung beendet. Von dort aus bleiben Intel-codierte Optik, der Community-Weg xl710-unlocker (ein frisches NVM-Image mit Intels eigenem Updater aufspielen, dann mit Drittanbieter-Tools an elf-Bit-Feldern irgendwo um 0x6800-0x7000 im EEPROM herumstochern, komplett auf eigenes Risiko), oder gleich eine OEM-Variante wählen: Ein HPE 562SFP+ ist darunter ein X710, und nach Firmware- und i40e-Updates akzeptierte es 10G- und 1G-Kupfermodule von Drittanbietern völlig ohne Hacks.
Beim OEM-Aspekt läuft es bei Dell- und Lenovo-markierten X710-DA2-Karten andersherum: Sie lehnen nicht freigegebene SFP+ und DAC ab, und Intels eigene Tools listen das Board nicht einmal auf. Worauf sich Leute eingependelt haben, ist das Aufspielen von Standard-Intel-NVM. Zuerst braucht man den QV-Treiber aus Intels vollständigem BootUtil-Paket, sonst reden die Tools überhaupt nicht mit dem Board; das Option-ROM wird vor allem anderen ersetzt, und erst danach inventarisiert man die Karte und flasht sie:
Zwischen Inventarisierung und Flash die nvmupdate.cfg auf den einen X710-Eintrag zurechtstutzen, der zur SPI-Flash-Größe der Karte passt, 4 MB oder 8 MB. Wählt man die falsche Größe, hat man einen Brick, den man nur mit einem gesicherten NVM-Image und einem Hardware-Flasher zurückholt, also vorher die ETrackID lesen und sich sicher sein. Firmware im Bereich 9.30-9.40 wurde danach als funktionierend gemeldet, und die Leute haben auf den Lenovo-Boards SR-IOV als Nebeneffekt mitgenommen. Ich würde das trotzdem nur an einer Karte probieren, deren Verlust ich verschmerzen könnte.
Vorsicht, die Crossflash- und EEPROM-Patching-Wege auf diesen Thread anzuwenden, denn keiner hilft bei der beschriebenen Situation. Das OEM-Flag in einem X520-EEPROM zu ändern braucht überhaupt erst ein funktionierendes Interface, über das man die Karte erreicht, und hier gibt es kein Interface, solange das Kabel nicht aus dem Käfig ist. Das ist eine Lösung für einen Port, der existiert und ein Modul ablehnt, nicht für einen Treiber, der beim Laden abbricht.
Das andere, was ich nicht überbewerten würde, ist der Test in einer anderen NIC. Ein Modul, das in einem anderen Host linkt, beweist das Modul, nicht den Host, in dem man es eigentlich haben will. Ich habe Ubiquiti-UACC-CM-RJ45-MG-Kupfermodule, die in einer CCR2004 und in einem Intel X520-DA2 unter Debian problemlos laufen, und in den SFP+-Käfigen einer CRS309 und einer CRS328 linken sie überhaupt nie, weder mit Autonegotiation noch mit von Hand festgenagelter Geschwindigkeit. Host-Abhängigkeit ist real, also in genau der Maschine verifizieren, bevor man einen ganzen Stapel von irgendetwas kauft.