GNU/Linux >> Znalost Linux >  >> Linux

Problémů se systémem Linux e1000e (síťový ovladač Intel) je mnoho, kde začít?

Řešení 1:

Zkuste prosím zavést jádro s pcie_aspm=off parametr jádra.

Řešení 2:

Z readme ovladače Intel:downloadmirror.intel.com/9180/eng/README.txt

82573 (V/L/E) TX jednotky zavěšení zpráv

Několik adaptérů s čipovou sadou 82573 zobrazuje zprávy „TX unit hang“ během normálního provozu s ovladačem e1000. Problém se objevuje při aktivovaném i deaktivovaném TSO a je způsoben funkcí správy napájení, která je povolena v EEPROM. Dřívější vydání čipových sad pro dodavatele měly bit EEPROM, který tuto funkci umožňoval. Poté, co byl problém objeven, byly vydány novější adaptéry s deaktivovanou funkcí v EEPROM.

Pokud narazíte na problém v adaptéru a čipová sada je založená na 82573, můžete ověřit, že váš adaptér potřebuje opravu pomocí nástroje 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
                                                           ^^

Hodnota na offsetu 0x001e (de) má bit 0 nenastavený. To umožňuje problematickou funkci úspory energie. V tomto případě musí EEPROM číst "df" na offset0x001e.

Jednorázová oprava EEPROM je k dispozici jako skript shellu. Tento skript ověří, zda je adaptér použitelný pro opravu a zda je oprava potřebná nebo ne. Pokud je oprava vyžadována, aplikuje změnu na EEPROM a aktualizuje kontrolní součet. Pokud byly v EEPROM provedeny změny, musí uživatel po použití opravy restartovat systém.

Příklad výstupu skriptu:

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

Skript lze stáhnout na adrese http://e1000.sourceforge.net/files/fixeep-82573-dspd.sh

Řešení 3:

Jako hrobník bych rád vykopal toto staré vlákno, abych se podělil o své řešení pro Ubuntu. Stáhněte si nejnovější síťový ovladač Intel (3.4.0.2 v době psaní tohoto článku). Dekomprimujte jej, přidejte věc na řádek v Makefile, získejte opravu, použijte opravu, nainstalujte, načtěte modul a nakonec restartujte. Hodně štěstí.

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

Tento balík byl dokončen na Ubuntu 18.04, jádro 4.15.

Řešení 4:

Měl jsem stejný problém s e1000e na Ubuntu 18.04.1, 4.15.0-36 kernel a nic nepomohlo. Aktualizoval jsem ovladač přímo z intel na 3.4.2.1-NAPI, bez jakýchkoli vylepšení. Všechny věci uvedené v tomto a jiném vlákně nepomohly. Z přečtení této zprávy o chybě Ubuntu jsem odhadl, že jsem vymyslel řešení, jak výrazně snížit velikost ringbufferu:

sudo ethtool -G eth0 rx 256 tx 256

Tím je problém pro mě zcela vyřešen a zdá se, že to vůbec neovlivňuje výkon (používání na počítači, pouze základní srovnávací testy).


Linux
  1. Odstraňování problémů s hardwarem v Linuxu

  2. Odstraňování problémů se systémem Linux 101:Výkon systému

  3. 5 Linuxových příkazů, které začnu používat

  1. Linux – kde je uložen pojmenovaný semafor?

  2. Povolit služby v Linuxu

  3. Kde je v Linuxu definován PATH_MAX?

  1. Kde linux ukládá můj syslog?

  2. Ovladač zařízení IOCTL Linux

  3. Kde je Linux CFS Scheduler Code?