GNU/Linux >> Linux Esercitazione >  >> Linux

Linux e1000e (driver di rete Intel) problemi a bizzeffe, da dove comincio?

Soluzione 1:

Prova ad avviare il kernel con pcie_aspm=off parametro del kernel.

Soluzione 2:

Dal file readme del driver di Intel:downloadmirror.intel.com/9180/eng/README.txt

Messaggi di blocco unità TX 82573(V/L/E)

Diversi adattatori con il chipset 82573 visualizzano messaggi "TX unit hang" durante il normale funzionamento con il driver e1000. Il problema si verifica sia con TSO abilitato che disabilitato ed è causato da una funzione di gestione dell'alimentazione abilitata nella EEPROM. Le prime versioni dei chipset ai fornitori avevano il bit EEPROM che abilitava la funzione. Dopo che il problema è stato scoperto, i nuovi adattatori sono stati rilasciati con la funzione disabilitata nella EEPROM.

Se riscontri il problema in un adattatore e il chipset è basato su 82573, puoi verificare che l'adattatore richieda la correzione utilizzando ethtool:

 # 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
                                                           ^^

Il valore all'offset 0x001e (de) ha il bit 0 non impostato. Ciò abilita la problematica funzione di risparmio energetico. In questo caso, la EEPROM deve leggere "df" in offset0x001e.

Una correzione EEPROM una tantum è disponibile come script di shell. Questo script verificherà che l'adattatore sia applicabile alla correzione e se la correzione è necessaria o meno. Se la correzione è necessaria, applica la modifica alla EEPROM e aggiorna il checksum. L'utente deve riavviare il sistema dopo aver applicato la correzione se sono state apportate modifiche alla EEPROM.

Esempio di output dello script:

 # 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!

Lo script può essere scaricato all'indirizzo http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh

Soluzione 3:

Come becchino, mi piacerebbe riesumare questo vecchio thread per condividere la mia soluzione per Ubuntu. Scarica l'ultimo driver di rete Intel (3.4.0.2 al momento della scrittura). Decomprimilo, aggiungi qualcosa a una riga nel Makefile, ottieni la patch, applica la patch, installa, leggi il modulo e, infine, riavvia. Buona fortuna.

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

Questo batuffolo è stato completato su Ubuntu 18.04, kernel 4.15.

Soluzione 4:

Ho avuto lo stesso problema con un e1000e su Ubuntu 18.04.1, kernel 4.15.0-36 e niente ha aiutato. Ho aggiornato il driver direttamente da Intel a 3.4.2.1-NAPI, senza alcun miglioramento. Tutte le cose elencate in questo e nell'altro thread non hanno aiutato. Indovinando dalla lettura di questa segnalazione di bug di Ubuntu ho pensato come soluzione alternativa per ridurre significativamente la dimensione del ringbuffer:

sudo ethtool -G eth0 rx 256 tx 256

Questo risolve completamente il problema per me e sembra non avere alcun impatto sulle prestazioni (uso desktop, solo benchmark di base).


Linux
  1. Risoluzione dei problemi hardware in Linux

  2. Risoluzione dei problemi di Linux 101:prestazioni del sistema

  3. 5 comandi Linux che inizierò a usare

  4. Come correggere il tearing video in Linux (con grafica Intel)

  5. Abilita i servizi in Linux

Personalizza un Intel NUC con Linux

Come installare un driver di dispositivo su Linux

Nozioni di base sull'amministratore di sistema Linux:avvia NIC all'avvio

Dove devo installare la mia app su Linux?

Come sapere dove è bloccato un programma in Linux?

Esaurimento della porta di rete di Linux