In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
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.
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.
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.
Die in diesem Dokument beschriebenen Verfahren gelten für folgende Hardware:
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.
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:
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 |
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 |
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:
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.
Wie bereits in Schritt 4 erwähnt, verfügt jede Nexus SmartNIC-Netzwerkschnittstellenkarte potenziell über zwei Arten von LEDs:
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.
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.
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.
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.
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
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
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.
Diese Fehlermeldung kann möglicherweise durch zwei verschiedene Probleme verursacht werden, die in den folgenden Unterabschnitten beschrieben werden.
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.
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.
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.
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.
Feedback