Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Relevante Hardware

Fehlerbehebung bei der Nexus SmartNIC-Hardwareinstallation

Schritt 1: Überprüfen der ordnungsgemäßen Hardwareinstallation

Schritt 2: Überprüfen der PCI-Express-Steckplatzkompatibilität

Schritt 3: Überprüfen der Installation in einem aktiven PCI Express-Steckplatz

Schritt 4: Überprüfen der Stromversorgung der Nexus SmartNIC

Schritt 5: Überprüfen der Firmware-Integrität

Schritt 6: Überprüfen der PCI-Express-Erkennung des Host-Betriebssystems

Fehlerbehebung bei der Installation der Nexus SmartNIC-Softwaretreiber

Schritt 1: Überprüfen der Treiberverwendung

Schritt 2: Überprüfen der Treiberinstallation

Überprüfen der Treiberinstallation von RPM (apt, yum usw.)

Treiberinstallation von Quelle überprüfen

Schritt 3: Versuchen Sie, den Softwaretreiber zu laden.

"modprobe: SCHLECHT: Modul exanic nicht gefunden" Fehlermeldung

"modprobe: Erforderlicher Schlüssel nicht verfügbar" Fehlermeldung

Schritt 4: Überprüfen der Funktionen des Nexus SmartNIC-Dienstprogramms

Zugehörige Informationen

Einleitung

In diesem Dokument werden die Schritte beschrieben, die zur Fehlerbehebung bei der Installation von Hardware- und Softwaretreibern für Nexus SmartNIC-Netzwerkkarten (ehemals ExaNIC) mit niedriger Latenz verwendet werden.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie mit dem Hardware-Installationsverfahren für die Netzwerkschnittstellenkarten der Nexus SmartNIC-Serie mit niedriger Latenz vertraut sind. Cisco empfiehlt außerdem, dass Sie über grundlegende Kenntnisse der Linux-Kommandozeile verfügen.

Verwendete Komponenten

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netz Live ist, überprüfen Sie, ob Sie die mögliche Auswirkung jedes möglichen Befehls verstehen.

Hintergrundinformationen

Relevante Hardware

Die in diesem Dokument beschriebenen Verfahren gelten für folgende Hardware:

- Nexus SmartNIC X10

- Nexus SmartNIC X10 HPT

- Nexus SmartNIC X10-GM

- Nexus SmartNIC X25

- Nexus SmartNIC X40

- Nexus SmartNIC X100

- Nexus SmartNIC V5P

- Nexus SmartNIC V9P

Fehlerbehebung bei der Nexus SmartNIC-Hardwareinstallation

In diesem Abschnitt des Dokuments werden die Schritte zur Fehlerbehebung bei Hardwareinstallationsproblemen der Nexus SmartNIC-Netzwerkschnittstellenkarte mit niedriger Latenz beschrieben. Folgen Sie diesem Abschnitt des Dokuments, wenn das Host-Betriebssystem (in der Regel eine Linux-Distribution oder Windows Server) eine Nexus SmartNIC nicht als gültiges PCI Express-Peripheriegerät erkennt.

Schritt 1: Überprüfen der ordnungsgemäßen Hardwareinstallation

Die Nexus SmartNIC-Netzwerkschnittstellenkarten müssen in einem PCI Express (PCIe)-Steckplatz auf dem Motherboard oder der Riser-/Tochterkarte des Hosts richtig installiert werden. Weitere Informationen zur Installation einer PCIe-Karte finden Sie im Handbuch des jeweiligen Hosts, das Sie vom Hersteller erhalten haben.

Weitere Informationen zur Installation von PCIe-Karten auf Cisco UCS-Servern finden Sie in der folgenden Dokumentation:

- Cisco UCS C220 M5 Serverinstallations- und Serviceleitfaden

- Cisco UCS C240 M5 Serverinstallations- und Serviceleitfaden

Schritt 2: Überprüfen der PCI-Express-Steckplatzkompatibilität

Alle Nexus SmartNIC-Netzwerkschnittstellenkarten müssen in einem PCIe 3.0-kompatiblen Steckplatz installiert sein. Darüber hinaus muss mindestens ein PCIe x8-Steckplatz mit 49 Pins verwendet werden, um alle Nexus SmartNIC-Netzwerkschnittstellenkarten anzuschließen. Weitere Informationen darüber, ob PCIe-Steckplätze diesen Spezifikationen entsprechen, finden Sie im Handbuch für Ihren Host, das vom Hersteller bereitgestellt wird.

Weitere Informationen zu den PCIe-Steckplatzspezifikationen auf Cisco UCS-Servern finden Sie in dieser Tabelle und in der zugehörigen Dokumentation:

Cisco UCS-Servermodell

Kompatibilität mit PCIe-Steckplätzen

Begleitende Dokumentation

Cisco UCS C220 M5

Alle PCIe-Steckplätze kompatibel

Cisco UCS C220 M5 Serverinstallations- und Serviceleitfaden

Cisco UCS C240 M5

Alle PCIe-Steckplätze kompatibel

Cisco UCS C240 M5 Serverinstallations- und Serviceleitfaden

Schritt 3: Überprüfen der Installation in einem aktiven PCI Express-Steckplatz

Eine Nexus SmartNIC muss ordnungsgemäß in einen PCI Express-Steckplatz eingesetzt werden, der mit einer aktiven, installierten CPU (Central Processing Unit) verbunden ist. Wenn ein Host mit mehreren CPU-Sockets ausgestattet ist, auf denen nur ein Socket eine CPU installiert hat (auch als "Single-CPU-Konfiguration" bezeichnet), sind möglicherweise nicht alle PCIe-Steckplätze aktiv und funktionsfähig. Weitere Informationen darüber, welche PCIe-Steckplätze in einer Einzel-CPU-Konfiguration aktiviert sind, finden Sie im Handbuch für Ihren Host, das Sie vom Hersteller erhalten haben.

Weitere Informationen zu aktiven PCIe-Steckplätzen auf Cisco UCS-Servern in einer Einzel-CPU-Konfiguration finden Sie in dieser Tabelle und der zugehörigen Dokumentation:

Cisco UCS-Servermodell

Aktive PCIe-Steckplätze

Begleitende Dokumentation

Cisco UCS C220 M5

PCIe-Riser 1, Steckplatz 1

Cisco UCS C220 M5 Serverinstallations- und Serviceleitfaden

Cisco UCS C240 M5

PCIe-Riser 1, Steckplatz 1

PCIe-Riser 1, Steckplatz 2

PCIe-Riser 1B, Steckplatz 1

PCIe-Riser 1B, Steckplatz 2

PCIe-Riser 1B, Steckplatz 3

Cisco UCS C240 M5 Serverinstallations- und Serviceleitfaden

Schritt 4: Überprüfen der Stromversorgung der Nexus SmartNIC

Jede Nexus SmartNIC-Netzwerkschnittstellenkarte weist eine Reihe von LEDs (Leuchtdioden) auf, die sich auf der PCIe-Halterung befinden. Diese LEDs sind in der Regel von der Außenseite des Hosts sichtbar. Jedem SFP+- und QSFP-Port auf der Netzwerkkarte ist eine größere LED zugeordnet. Diese LEDs werden zusammen als Port-LEDs bezeichnet.

Auf Netzwerkschnittstellenkarten mit nur SFP+ Ports ist eine zusätzliche kleinere rote LED vorhanden, die dem PPS-Anschluss zugeordnet ist (mit Ausnahme der Nexus SmartNIC X10-GM, bei der die kleine rote LED dem Grand Master-Uhrenstatus zugeordnet ist). Diese LED wird als PPS-LED bezeichnet.

Anmerkung: Nexus SmartNIC-Netzwerkschnittstellenkarten mit QSFP-Ports verfügen über keine PPS-LED.

Zusammenfassend ist die folgende Tabelle zu entnehmen:

Nexus SmartNIC-Modell

Port-LEDs

PPS-LED

X10

Ja

Ja

X10-HPT

Ja

Ja

X10-GM

Ja

Ja (GPS)

X25

Ja

Ja

X40

Ja

Nein

X100

Ja

Nein

V5P

Ja

Nein

V9P

Ja

Nein

Wenn eine Nexus SmartNIC-Netzwerkschnittstellenkarte zum ersten Mal neben dem Host eingeschaltet wird, sollten alle LEDs auf der Netzwerkschnittstellenkarte vorübergehend blinken. Wenn nach dem Einschalten des Hosts zu keiner Zeit LEDs Licht aussenden, weist dies darauf hin, dass die Nexus SmartNIC-Netzwerkschnittstellenkarte nicht richtig mit Strom vom PCIe-Bus versorgt wird. Beheben Sie dieses Problem mit dem folgenden Verfahren:

1. Prüfen Sie, ob der verwendete PCIe-Steckplatz mit anderen Peripheriegeräten funktioniert, die als funktionsfähig bekannt sind. Im Idealfall testet man mit einer anderen Netzwerkkarte.

2. Überprüfen Sie, ob die Nexus SmartNIC-Netzwerkschnittstellenkarte in einem anderen funktionierenden PCIe-Steckplatz ohne Probleme funktioniert.

3. Überprüfen Sie, ob die Nexus SmartNIC-Netzwerkschnittstellenkarte in einem PCIe-Steckplatz, der bekanntermaßen auf einem anderen Host funktioniert, der bekanntermaßen funktioniert, problemlos funktioniert.

Wenn die Nexus SmartNIC-Netzwerkschnittstellenkarte unabhängig vom verwendeten PCIe-Steckplatz und -Host nicht mit Strom versorgt wird, wenden Sie sich zur weiteren Fehlerbehebung an das Cisco TAC.

Schritt 5: Überprüfen der Firmware-Integrität

Wie bereits in Schritt 4 erwähnt, verfügt jede Nexus SmartNIC-Netzwerkschnittstellenkarte potenziell über zwei Arten von LEDs:

- Port-LEDs

- PPS-LED

Wenn keine SFP+/QSFP-Module in die Ports der Netzwerkschnittstellenkarte eingesetzt werden, sollten diese LEDs nach dem in Schritt 4 beschriebenen kurzzeitigen Blinken ausgeschaltet bleiben, wenn die Netzwerkschnittstellenkarte zu Beginn eingeschaltet wird.

Es gibt drei häufige Szenarien, in denen dies nicht der Fall ist, weil die Firmware beschädigt ist oder fehlt:

- Wenn sowohl die Port- als auch die PPS-LEDs nach dem kurzzeitigen Blinken leuchten, wenn keine SFP+/QSFP-Module eingesetzt werden und das Host-Betriebssystem die Netzwerkschnittstellenkarte nicht als gültiges PCIe-Peripheriegerät erkennt (z. B. durch den Befehl lspci), muss die Firmware der Nexus SmartNIC-Netzwerkschnittstellenkarte möglicherweise wiederhergestellt werden. Folgen Sie dem Nexus SmartNIC Firmware Recovery-Prozess, und laden Sie eine neue Firmware-Version auf die Nexus SmartNIC. Wenn das Problem dadurch nicht behoben wird, wenden Sie sich zur weiteren Fehlerbehebung an Cisco TAC.

- Wenn eine Nexus SmartNIC-Netzwerkschnittstellenkarte mit einer PPS-LED ausgestattet ist und diese PPS-LED permanent leuchtet, ist die vorhandene Firmware, die auf der Karte geladen wurde, beschädigt, und die Karte hat den Firmware-Wiederherstellungsmodus aktiviert. Sie müssen den Aktualisierungsprozess der Nexus SmartNIC-Firmware befolgen, um die Netzwerkschnittstellenkarte normal zu verwenden. Wenn das Problem dadurch nicht behoben wird, wenden Sie sich zur weiteren Fehlerbehebung an Cisco TAC.

- Wenn eine Nexus SmartNIC-Netzwerkschnittstellenkarte nicht mit einer PPS-LED ausgestattet ist und die Port-LEDs ständig abwechselnd aus und orange leuchten, ist die vorhandene Firmware, die auf der Karte geladen wurde, beschädigt, und die Karte hat den Firmware-Wiederherstellungsmodus erreicht. Sie müssen den Aktualisierungsprozess der Nexus SmartNIC-Firmware befolgen, um die Netzwerkschnittstellenkarte normal zu verwenden. Wenn das Problem dadurch nicht behoben wird, wenden Sie sich zur weiteren Fehlerbehebung an Cisco TAC.

Schritt 6: Überprüfen der PCI-Express-Erkennung des Host-Betriebssystems

Sie können mit dem Befehl lspci bestätigen, dass das Host-Betriebssystem eine Nexus SmartNIC-Netzwerkschnittstellenkarte erfolgreich über den PCIe-Bus erkennen kann. Die 16-Bit-PCI-Hersteller-ID (VID) von Exablaze lautet 0x1ce4 und kann verwendet werden, um Nexus SmartNIC PCIe-Geräte auf Informationen zu prüfen. Dies wird im folgenden Beispiel veranschaulicht:

[root@host ~]# lspci -d 1ce4:

01:00.0 Ethernet controller: Exablaze ExaNIC X10

Detailliertere Informationen zur PCIe-Karte können angezeigt werden, indem dem Befehl -v verbose das Flag lspci hinzugefügt wird. Dies wird im folgenden Beispiel veranschaulicht:

[root@host ~]# lspci -d 1ce4: -v

01:00.0 Ethernet controller: Exablaze ExaNIC X10

Subsystem: Exablaze ExaNIC X10

Flags: bus master, fast devsel, latency 0, IRQ 30

Memory at 92000000 (32-bit, non-prefetchable) [size=8M]

Memory at 92800000 (64-bit, non-prefetchable) [size=4M]

Capabilities: [80] Power Management version 3

Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+

Capabilities: [c0] Express Endpoint, MSI 00

Capabilities: [100] Advanced Error Reporting

Capabilities: [1b8] Latency Tolerance Reporting

Capabilities: [300] #19

Capabilities: [340] Vendor Specific Information: ID=0001 Rev=0 Len=02c <?>

Kernel modules: exanic

Noch detailliertere Informationen können angezeigt werden, indem Sie das Flag -vv verbose zum lspci-Befehl hinzufügen. Dies wird im folgenden Beispiel veranschaulicht:

[root@host ~]# lspci -d 1ce4: -vv

01:00.0 Ethernet controller: Exablaze ExaNIC X10

Subsystem: Exablaze ExaNIC X10

Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+

Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

Latency: 0

Interrupt: pin A routed to IRQ 30

Region 0: Memory at 92000000 (32-bit, non-prefetchable) [size=8M]

Region 2: Memory at 92800000 (64-bit, non-prefetchable) [size=4M]

Capabilities: [80] Power Management version 3

Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)

Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-

Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+

Address: 00000000fee003b8  Data: 0000

Capabilities: [c0] Express (v2) Endpoint, MSI 00

DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us

ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75.000W

DevCtl:    Report errors: Correctable- Non-Fatal- Fatal- Unsupported-

RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+

MaxPayload 128 bytes, MaxReadReq 512 bytes

DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-

LnkCap:    Port #0, Speed 8GT/s, Width x8, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited

ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+

LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- CommClk+

ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

LnkSta:    Speed 8GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Not Supported

DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled

LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-

Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-

Compliance De-emphasis: -6dB

LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+

EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-

Capabilities: [100 v2] Advanced Error Reporting

UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-

UESvrt:    DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-

CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-

CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+

AERCap:    First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-

Capabilities: [1b8 v1] Latency Tolerance Reporting

Max snoop latency: 0ns

Max no snoop latency: 0ns

Capabilities: [300 v1] #19

Capabilities: [340 v1] Vendor Specific Information: ID=0001 Rev=0 Len=02c <?>

Kernel modules: exanic

Wenn der Befehl lspci Informationen über die Nexus SmartNIC-Netzwerkschnittstellenkarte anzeigt, bedeutet dies, dass das Host-Betriebssystem die Nexus SmartNIC-Netzwerkschnittstellenkarte erfolgreich über den PCIe-Bus erkannt hat. Nun können Sie die Nexus SmartNIC-Softwaretreiber installieren und mit der Verwendung der Karte beginnen.

Fehlerbehebung bei der Installation der Nexus SmartNIC-Softwaretreiber

In diesem Abschnitt des Dokuments werden die Schritte beschrieben, die zur Fehlerbehebung bei Problemen mit der Installation von Softwaretreibern für Netzwerkschnittstellenkarten mit niedriger Latenz bei Nexus SmartNIC verwendet werden. Folgen Sie diesem Abschnitt des Dokuments, wenn das Host-Betriebssystem (in der Regel eine Linux-Distribution oder Windows Server) eine Nexus SmartNIC als gültiges PCI Express-Peripheriegerät erkennt, das Host-Betriebssystem die Ports der Nexus SmartNIC jedoch nicht als gültige Netzwerkschnittstelle erkennt. Ein Beispiel hierfür finden Sie in der folgenden Ausgabe:

[root@host ~]# ls /dev/exanic*

ls: cannot access /dev/exanic*: No such file or directory

In diesem Abschnitt des Dokuments wird davon ausgegangen, dass bei der Installation der Nexus SmartNIC-Softwaretreiber ein Fehler aufgetreten ist, wie im Nexus SmartNIC-Softwareinstallationsleitfaden beschrieben.

Alle Befehle in dieser Prozedur werden vom Linux-Root-Konto ausgeführt. Wenn Sie das Linux-Root-Konto nicht verwenden, um dieses Verfahren durchzuführen, müssen Sie möglicherweise den Befehl sudo verwenden, um die Sicherheitsberechtigungen Ihres Kontos auf die eines Superbenutzers zu erhöhen.

Schritt 1: Überprüfen der Treiberverwendung

Wenn der Kernel des Host-Betriebssystems einen Softwaretreiber für eine Nexus SmartNIC-Netzwerkschnittstellenkarte geladen hat, zeigt der Befehl lspci mit dem Flag -v verbose den verwendeten Treiber an. Mithilfe der PCI-Anbieter-ID (0x1ce4) von Excel kann nach Geräten gesucht werden, um spezifische Informationen zu Nexus SmartNIC PCIe-Geräten anzuzeigen. Ein Beispiel hierfür finden Sie in der folgenden Ausgabe:

[root@host ~]# lspci -d 1ce4: -v | egrep Kernel.driver

Kernel driver in use: exanic

Wenn der Kernel des Host-Betriebssystems den Softwaretreiber nicht geladen hat, wird diese Zeile "Kernel driver in use" (Verwendeter Kernel-Treiber) in der Ausgabe von lspci -d 1ce4 weggelassen: -v-Befehl.

Schritt 2: Überprüfen der Treiberinstallation

Überprüfen der Treiberinstallation von RPM (apt, yum usw.)

Wie in der Nexus SmartNIC Software-Installationsanleitung beschrieben, können die Nexus SmartNIC-Softwaretreiber über einen Paketmanager (z. B. apt, yum oder direkt über rpm) installiert werden. Wenn Sie ExaNIC-Softwaretreiber mit dieser Methode installiert haben, können Sie überprüfen, ob alle Dateien wie unten gezeigt korrekt installiert wurden.

Abhängig von der CPU-Architektur Ihres Hosts kann die Bibliotheksdatei libexanic.a in /usr/lib/ oder in /usr/lib64/sein. Hier ist ein Beispiel einer x86-CPU-Architektur (32 Bit):

[root@host ~]# ls /usr/lib/ | grep exanic

libexanic.a

Hier ist ein Beispiel einer x86_64-CPU-Architektur (64 Bit):

[root@host ~]# ls /usr/lib64/ | grep exanic

libexanic.a

Stellen Sie sicher, dass sich die Headerdateien der Nexus SmartNIC-Bibliothek im Verzeichnis /usr/include/exanic/ befinden. Dies wird im folgenden Beispiel veranschaulicht:

[root@host ~]# ls /usr/include/exanic/ -1

config.h

const.h

exanic.h

fifo_if.h

fifo_rx.h

fifo_tx.h

filter.h

firewall.h

hw_info.h

ioctl.h

pcie_if.h

port.h

register.h

time.h

util.h

Stellen Sie sicher, dass sich die binären Nexus SmartNIC-Dienstprogramme im Verzeichnis /usr/bin/befinden. Dies wird im folgenden Beispiel veranschaulicht:

[root@host ~]# ls /usr/bin/ -1 | grep exanic-

exanic-capture

exanic-clock-check

exanic-clock-sync

exanic-config

exanic-fwupdate

Stellen Sie schließlich sicher, dass die Datei exanic.ko.xz im Verzeichnis /lib/modules/`uname -r`/extra/ vorhanden ist. Beachten Sie, dass der Befehl inline`uname -r` automatisch Ihre aktuelle Kernel-Version in das Verzeichnis einfügt. Dieser Befehl ist von Gravierakzenten (`) umgeben, keine einfachen Anführungszeichen. Dies wird im folgenden Beispiel gezeigt:

[root@host ~]# ls /lib/modules/\`uname -r\`/extra/ | grep exanic

exanic.ko.xz

Treiberinstallation von Quelle überprüfen

Wie in der Nexus SmartNIC Software-Installationsanleitung beschrieben, können die Nexus SmartNIC-Softwaretreiber anhand des Quellcodes erstellt und installiert werden. Wenn Sie mit dieser Methode Nexus SmartNIC-Softwaretreiber installiert haben, können Sie überprüfen, ob alle Dateien ordnungsgemäß installiert wurden, wie in den folgenden Beispielen gezeigt.

Stellen Sie sicher, dass die Bibliotheksdatei libexanic.a im Verzeichnis /usr/local/lib/ vorhanden ist. Dies wird im folgenden Beispiel gezeigt:

[root@host ~]# ls /usr/local/lib/ | grep exanic

libexanic.a

Stellen Sie sicher, dass die Headerdateien der Nexus SmartNIC-Bibliothek im Verzeichnis /usr/local/include/exanic/ vorhanden sind. Dies wird im folgenden Beispiel gezeigt:

[root@host ~]# ls /usr/local/include/exanic/ -1

config.h

const.h

exanic.h

fifo_if.h

fifo_rx.h

fifo_tx.h

filter.h

firewall.h

hw_info.h

ioctl.h

pcie_if.h

port.h

register.h

time.h

util.h

Stellen Sie sicher, dass sich die binären Nexus SmartNIC-Dienstprogramme im Verzeichnis /usr/local/bin/befinden. Dies wird im folgenden Beispiel veranschaulicht:

[root@host ~]# ls /usr/local/bin -1 | grep exanic-

exanic-capture

exanic-clock-check

exanic-clock-sync

exanic-config

exanic-fwupdate

Stellen Sie abschließend sicher, dass die Datei exanic.ko im Verzeichnis /lib/modules/`uname -r`/extra/ vorhanden ist. Beachten Sie, dass der Befehl inline`uname -r` automatisch Ihre aktuelle Kernel-Version in das Verzeichnis einfügt. Dieser Befehl ist von Gravierakzenten (`) umgeben, keine einfachen Anführungszeichen. Dies wird im folgenden Beispiel gezeigt:

[root@host ~]# ls /lib/modules/`uname -r`/extra | grep exanic

exanic.ko

Schritt 3: Versuchen Sie, den Softwaretreiber zu laden.

Der Nexus SmartNIC-Softwaretreiber kann mit dem Befehl modprobe exanic manuell geladen werden.

Wenn Nexus SmartNIC-Treiber geladen werden, erkennt der Linux-Kernel sie als Gerät. Sie können dies mit dem Befehl ls /dev/exanic* überprüfen, der alle erkannten Nexus SmartNIC-Geräte anzeigt. Dies wird im folgenden Beispiel gezeigt:

[root@host ~]# ls /dev/exanic*

/dev/exanic0

Wenn die Nexus SmartNIC-Treiber nicht erfolgreich geladen werden, gibt der Befehl modprobe exanic möglicherweise einen Fehler zurück, oder es wird kein Fehler zurückgegeben. In den folgenden Unterabschnitten wird die Fehlerbehebung bei Fehlern beschrieben, die von diesem Befehl zurückgegeben werden.

"modprobe: SCHLECHT: Modul exanic nicht gefunden" Fehlermeldung

Diese Fehlermeldung kann möglicherweise durch zwei verschiedene Probleme verursacht werden, die in den folgenden Unterabschnitten beschrieben werden.

Nicht korrekt zugeordnete Kernelmodulabhängigkeiten

Das Host-Betriebssystem kann das für den aktuellen Kernel erstellte Modul nicht finden. Das Host-Betriebssystem kann daher das Modul nicht mit dem Befehl modprobe exanic in das System laden. Dies kann mit dem Befehl depmod -a aufgelöst werden, der eine Karte der Kernel-Modul-Abhängigkeiten erstellt. Das Kernelmodul kann dann mit dem Befehl modprobe exanic geladen werden.

Kernelmodul nicht von DKMS erstellt

DKMS (Dynamic Kernel Module Support) ermöglicht die automatische Neuerstellung von Kernelmodulen, wenn ein neuer Betriebssystemkernel installiert wird. Wenn DKMS das Nexus SmartNIC-Kernelmodul nicht erstellt hat, ist es möglich, dass das Nexus SmartNIC-Kernelmodul zuvor für eine andere Kernel-Version des Betriebssystems kompiliert wurde.

Damit DKMS wie erwartet funktioniert, müssen die Pakete kernel-devel und kernel-headers mithilfe des Paketmanagers des Host-Betriebssystems installiert werden. Ein Beispiel, wie Sie überprüfen, ob dieses Paket mit dem Befehl yum list installiert ist, wird in der folgenden Ausgabe angezeigt:

[root@host ~]$ yum list kernel-devel

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.internode.on.net

* epel: ucmirror.canterbury.ac.nz

* extras: mirror.internode.on.net

* updates: centos.mirror.serversaustralia.com.au

Installed Packages

kernel-devel.x86_64                                      3.10.0-1062.el7                                            @base

kernel-devel.x86_64                                      3.10.0-1062.12.1.el7                                       @updates

[root@host ~]$ yum list kernel-headers

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.internode.on.net

* epel: ucmirror.canterbury.ac.nz

* extras: mirror.internode.on.net

* updates: centos.mirror.serversaustralia.com.au

Installed Packages

kernel-headers.x86_64                                     3.10.0-1062.12.1.el7                                      @updates

Lesen Sie das Handbuch des Paketmanagers Ihres Host-Betriebssystems, um herauszufinden, ob ein bestimmtes Paket installiert ist.

Mit dem Befehl dkms status können Sie überprüfen, ob das Nexus SmartNIC-Kernelmodul erfolgreich von DKMS hinzugefügt, erstellt und installiert wurde. Ein Beispiel für die Ausgabe dieses Befehls in einem funktionierenden, erwarteten Zustand ist hier dargestellt:

[root@host ~]# dkms status

exanic, 2.4.1-1.el8, 3.10.0-957.27.2.el7.x86_64, x86_64: installed

Wenn diese Ausgabe zeigt, dass sich das Nexus SmartNIC-Kernelmodul in einem anderen Zustand als "installiert" befindet, muss das Nexus SmartNIC-Kernelmodul entweder mithilfe von DKMS erstellt oder installiert werden.

Wenn das Nexus SmartNIC-Kernelmodul hinzugefügt, aber nicht erstellt wurde, verwenden Sie den Befehl dkms build -m exanic -v {version}, um das Nexus SmartNIC-Kernelmodul zu erstellen. Ein Beispiel für diesen Befehl ist hier mit der Softwareversion 2.4.1-1.el7 dargestellt:

[root@host ~]$ dkms build -m exanic -v 2.4.1-1.el7

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:

cleaning build area...

make -j16 KERNELRELEASE=3.10.0-1062.el7.x86_64 -C modules KDIR=/lib/modules/3.10.0-1062.el7.x86_64/build...

cleaning build area...

DKMS: build completed.

Wenn das Nexus SmartNIC-Kernelmodul erstellt, aber nicht installiert ist, verwenden Sie den Befehl dkms install -m exanic -v {version}, um das Nexus SmartNIC-Kernelmodul zu installieren. Ein Beispiel für diesen Befehl ist hier mit der Softwareversion 2.4.1-1.el7 dargestellt:

[root@host ~]$ dkms install -m exanic -v 2.4.1-1.el7

exanic.ko.xz:

Running module version sanity check.

- Original module

- No original module exists within this kernel

- Installation

- Installing to /lib/modules/3.10.0-1062.el7.x86_64/extra/

exasock.ko.xz:

Running module version sanity check.

- Original module

- No original module exists within this kernel

- Installation

- Installing to /lib/modules/3.10.0-1062.el7.x86_64/extra/

Adding any weak-modules

depmod...

DKMS: install completed.

Nachdem das Nexus SmartNIC-Kernelmodul mit DKMS erstellt und installiert wurde, kann das Nexus SmartNIC-Kernelmodul mit dem Befehl modprobe exanic geladen werden.

"modprobe: Erforderlicher Schlüssel nicht verfügbar" Fehlermeldung

Diese Fehlermeldung wird auf Hosts angezeigt, die mit UEFI-Firmware (Unified Extensible Firmware Interface) ausgestattet sind, auf denen das Secure Boot-Protokoll aktiviert ist. Secure Boot verhindert das Laden von Kernel-Treibern, die nicht mit einer akzeptablen digitalen Signatur signiert sind. Wenn man also versucht, den Nexus SmartNIC-Kerneltreiber mit dem Befehl modprobe exanic zu laden, verhindert das Protokoll Secure Boot, dass der Kerneltreiber geladen wird.

Um dieses Problem zu beheben, muss das Protokoll für sicheres Booten im UEFI des Hosts deaktiviert werden. Weitere Informationen zur Deaktivierung des Secure Boot-Protokolls im UEFI des Hosts finden Sie im Handbuch des Herstellers für Ihren Host.

Schritt 4: Überprüfen der Funktionen des Nexus SmartNIC-Dienstprogramms

Der Befehl exanic-config ohne Argumente kann verwendet werden, um grundlegende Informationen über Nexus SmartNIC-Netzwerkschnittstellenkarten anzuzeigen, die auf dem Host installiert sind, nachdem die Nexus SmartNIC-Kerneltreiber in das Betriebssystem geladen wurden. Ein Beispiel für diese Ausgabe finden Sie hier:

[root@host ~]$ exanic-config

Device exanic1:

Hardware type: ExaNIC X10

Temperature: 38.8 C VCCint: 0.95 V VCCaux: 1.83 V

Function: network interface

Firmware date: 20180409 (Mon Apr 9 23:27:40 2018)

PPS port: input, termination disabled

Port 0:

Interface: enp175s0

Port speed: 10000 Mbps

Port status: enabled, SFP present, signal detected, link active

MAC address: 64:3f:5f:xx:xx:xx

RX packets: 11778 ignored: 0 error: 0 dropped: 0

TX packets: 11836

Port 1:

Interface: enp175s0d1

Port speed: 10000 Mbps

Port status: enabled, SFP present, signal detected, link active

MAC address: 64:3f:5f:xx:xx:xx

RX packets: 11836 ignored: 0 error: 0 dropped: 0

TX packets: 11778

Wenn der Befehl/das Dienstprogramm exanic-config relevante Informationen zu installierten Nexus SmartNIC-Netzwerkschnittstellenkarten zurückgibt, war die Installation der Nexus SmartNIC-Hardware- und -Softwaretreiber erfolgreich.

Zugehörige Informationen

- Installation des Nexus SmartNIC-Geräts

- Cisco UCS C240 M5 Serverinstallations- und Serviceleitfaden

- Cisco UCS C220 M5 Serverinstallations- und Serviceleitfaden

- Nexus SmartNIC Benchmarking-Leitfaden