GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Probleme mit Linux e1000e (Intel-Netzwerktreiber) in Hülle und Fülle, wo fange ich an?

Lösung 1:

Versuchen Sie bitte, den Kernel mit dem pcie_aspm=off zu booten Kernel-Parameter.

Lösung 2:

Aus Intels Treiber-Readme:downloadmirror.intel.com/9180/eng/README.txt

82573(V/L/E) TX Unit Hang Messages

Mehrere Adapter mit dem 82573-Chipsatz zeigen im normalen Betrieb mit dem e1000-Treiber die Meldung „TX unit hang“ an. Das Problem tritt sowohl bei aktiviertem als auch deaktiviertem TSO auf und wird durch eine Energieverwaltungsfunktion verursacht, die im EEPROM aktiviert ist. Frühe Versionen der Chipsätze für Anbieter hatten das EEPROM-Bit, das die Funktion aktivierte. Nachdem das Problem entdeckt wurde, wurden neuere Adapter mit deaktivierter Funktion im EEPROM veröffentlicht.

Wenn das Problem bei einem Adapter auftritt und der Chipsatz ein 82573-basierter ist, können Sie mithilfe von ethtool überprüfen, ob Ihr Adapter die Korrektur benötigt:

 # ethtool -e eth0
 Offset          Values
 ------          ------
 0x0000          00 12 34 56 fe dc 30 0d 46 f7 f4 00 ff ff ff ff
 0x0010          ff ff ff ff 6b 02 8c 10 d9 15 8c 10 86 80 de 83
                                                           ^^

Der Wert bei Offset 0x001e (de) hat Bit 0 nicht gesetzt. Dies aktiviert die problematische Stromsparfunktion. In diesem Fall muss das EEPROM bei offset0x001e "df" lesen.

Ein einmaliger EEPROM-Fix ist als Shell-Skript verfügbar. Dieses Skript überprüft, ob der Adapter für den Fix geeignet ist und ob der Fix erforderlich ist oder nicht. Wenn die Korrektur erforderlich ist, wendet sie die Änderung auf das EEPROM an und aktualisiert die Prüfsumme. Der Benutzer muss das System neu starten, nachdem er den Fix angewendet hat, wenn Änderungen am EEPROM vorgenommen wurden.

Beispielausgabe des Skripts:

 # bash fixeep-82573-dspd.sh eth0
 eth0: is a "82573E Gigabit Ethernet Controller"
 This fixup is applicable to your hardware
 executing command: ethtool -E eth0 magic 0x109a8086 offset 0x1e value 0xdf
 Change made. You *MUST* reboot your machine before changes take effect!

Das Skript kann unter http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh

heruntergeladen werden

Lösung 3:

Als Totengräber würde ich gerne diesen alten Arschthread ausgraben, um meine Lösung für Ubuntu zu teilen. Laden Sie den neuesten Intel-Netzwerktreiber herunter (3.4.0.2 zum Zeitpunkt des Schreibens). Dekomprimieren Sie es, hängen Sie etwas an eine Zeile im Makefile an, holen Sie sich den Patch, wenden Sie den Patch an, installieren Sie das Modul, laden Sie es herunter und starten Sie schließlich neu. Viel Glück.

wget https://downloadcenter.intel.com/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-?product=60019
tar -zxvf e1000e-3.4.0.2.tar.gz
vi e1000e-3.4.0.2/src/Makefile
    ## Locate line 152: EXTRA_CFLAGS += $(CFLAGS_EXTRA)
    ## Append -fno-pie
## Download the patch from https://sourceforge.net/p/e1000/bugs/_discuss/thread/9048ab8e 
## wget/curl won't work here. THANKS SOURCE FORGE.
patch -p0 < e1000e-3.4.0.2-timer-updates.patch
cd e1000e-3.4.0.2/src/
sudo make install
sudo rmmod e1000e && sudo modprobe e1000e
sudo reboot

Dieses Paket wurde unter Ubuntu 18.04, Kernel 4.15 abgeschlossen.

Lösung 4:

Ich hatte das gleiche Problem mit einem e1000e unter Ubuntu 18.04.1, 4.15.0-36 Kernel und nichts half. Ich habe den Treiber direkt von Intel auf 3.4.2.1-NAPI aktualisiert, ohne Verbesserungen. Alle Dinge, die in diesem und dem anderen Thread aufgeführt sind, haben nicht geholfen. Nachdem ich diesen Ubuntu-Fehlerbericht gelesen habe, habe ich als Workaround gedacht, um die Ringbuffer-Größe erheblich zu reduzieren:

sudo ethtool -G eth0 rx 256 tx 256

Dies löst das Problem für mich vollständig und scheint die Leistung überhaupt nicht zu beeinträchtigen (Desktop-Nutzung, nur grundlegende Benchmarks durchgeführt).


Linux
  1. Fehlerbehebung bei Hardwareproblemen unter Linux

  2. Linux-Fehlerbehebung 101:Systemleistung

  3. Linux – Wo wird ein benanntes Semaphor gespeichert?

  4. Dienste in Linux aktivieren

  5. Wo ist PATH_MAX in Linux definiert?

Passen Sie einen Intel NUC mit Linux an

So installieren Sie einen Gerätetreiber unter Linux

Linux-Systemadministratorgrundlagen:NIC beim Booten starten

Wo ist der Linux CFS-Scheduler-Code?

Wo soll ich meine App unter Linux installieren?

Woher weiß ich, wo ein Programm in Linux hängen bleibt?