staging.inyokaproject.org

Intel I219-V The NVM Checksum Is Not Valid - Fehler bei errs/ frame

Status: Gelöst | Ubuntu-Version: Ubuntu 21.10 (Impish Indri)
Antworten |

Zuck

Anmeldungsdatum:
9. Juli 2020

Beiträge: 190

Ich habe bei einem neuen MSI H510 Mainboard Probleme mit dem Netzwerk(I219-V).

Folgende Meldung kam nachdem ich die Updates geladen und ein Neustart gemacht habe. Die Netzwerkkarte ist danach komplett verschwunden gewesen.

e1000e: probe of 0000:00:1f.6 failed with error -5
e1000e: 0000:00:1f.6: The NVM Checksum Is Not Valid

Danach habe ich Ubuntu 21.10 neu installiert. Seitdem taucht die vorherige Meldung nicht mehr in den Logs auf, aber dafür sind nun ständig Fehler bei den Netzwerkpaketen vorhanden.

cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:   22262     290    0    0    0     0          0         0    22262     290    0    0    0     0       0          0
  eno1: 46480606   43868   25 3351    0    24          0        32  3479930   30323    0    0    0     0       0          0
lspci -nnk | grep -i net -A2
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (10) I219-V (rev 11)
	DeviceName: Onboard - Ethernet
	Subsystem: Micro-Star International Co., Ltd. [MSI] Ethernet Connection (10) I219-V
	Kernel driver in use: e1000e
	Kernel modules: e1000e

*Edit* Das waren vielleicht zwei unterschiedliche Probleme. Nach einem Wechsel des LAN-Kabels bekomme ich keine fehlerhaften Pakete mehr.

*Edit* Jetzt sind doch wieder neue Paketfehler entstanden. Kabel ist neu, Port wurde an der FritzBox gewechselt. Mit einem anderen Mainboard lief es vorher einwandfrei.

Zuck

(Themenstarter)

Anmeldungsdatum:
9. Juli 2020

Beiträge: 190

Hat jemand eine Idee, woran es noch liegen könnte, dass die RX Fehler ständig auftauchen?

ifconfig -a
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.27  netmask 255.255.255.0  broadcast 192.168.178.255
        ether xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 101817  bytes 138595958 (138.5 MB)
        RX errors 10  dropped 1870  overruns 0  frame 10
        TX packets 56038  bytes 4951629 (4.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xa1300000-a1320000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Lokale Schleife)
        RX packets 191  bytes 15940 (15.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 191  bytes 15940 (15.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Zuck

(Themenstarter)

Anmeldungsdatum:
9. Juli 2020

Beiträge: 190

ethtool -S eno1
NIC statistics:
     rx_packets: 81854
     tx_packets: 48058
     rx_bytes: 103586967
     tx_bytes: 4585799
     rx_broadcast: 3574
     tx_broadcast: 21
     rx_multicast: 36
     tx_multicast: 16
     rx_errors: 11
     tx_errors: 0
     tx_dropped: 0
     multicast: 36
     collisions: 0
     rx_length_errors: 0
     rx_over_errors: 0
     rx_crc_errors: 11
...

Ich bin nochmal einige Optionen durchgegangen. Es sind rx-crc-Fehler, welche bei dem Intel I219-V LAN erscheinen, dieser Befehl zeigt sie auch übersichtlich an "ip -s -s link show dev eno1".

Die Lösung des Problems muss irgendwo in den C-States (Package) zu finden sein. Im Bios habe ich sie jetzt auf max. C6 begrenzt und seitdem sind keine CRC-Fehler mehr aufgetaucht. Dafür sind es jetzt 3-4Watt mehr die der PC verbraucht.

praseodym Team-Icon

Supporter
Avatar von praseodym

Anmeldungsdatum:
9. Februar 2009

Beiträge: 22076

BIOS/UEFI-Update möglich?

Zuck

(Themenstarter)

Anmeldungsdatum:
9. Juli 2020

Beiträge: 190

Das letzte Update habe ich vor ein paar Tagen eingespielt. Das Problem tritt auch bei Fedora 35 und Debian Stable auf.

jamiebiswas

Anmeldungsdatum:
10. Januar 2022

Beiträge: Zähle...

Zuck schrieb:

Das letzte Update habe ich vor ein paar Tagen eingespielt. Das Problem tritt auch bei Fedora 35 und Debian Stable auf.

I have a problem with an ASUSPRO B8430UA laptop: when I boot it with Ubuntu 16.04 (or NixOS 16.03) the Ethernet port does not work. The driver used is e1000e, it reports: $ dmesg | grep e1000e [ 5.643760] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k [ 5.643761] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. [ 5.644308] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode [ 5.877838] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid [ 5.907340] e1000e: probe of 0000:00:1f.6 failed with error -5

Under Windows 7 Ethernet port works fine: I can connect to the Internet. According to Windows, I have Intel(R) Ethernet Connection I219-V.

I have searched for "official" Linux drivers, but none is listed as supporting I219-V. However, e1000e is listed as supporting I218-V, and I've got a confirmation from e1000-devel mailing list that e1000e should support I219-V. Basically, I have used this solution on the best expense management software Kolkata //www.exactlly.com/blog/index.php/8-expense-management-tips-should-businesses-follow/: and its working in the proper way. Just in case I tried using the latest version 3.3.4 of e1000e, but the error was the same: "The NVM Checksum Is Not Valid."

It looks like indeed there is a mismatch of the checksum of the non-volatile memory of I219-V.

I have tried another ASUS laptop of the same model, and the error was the same, so this does not look like an accidental corruption.

Neither ASUS nor Intel customer support could suggest any solution.

I have discovered Intel Ethernet Connections Boot Utility, but according to the documentation (for version 1.6.13.0), it is only intended for PCI, not OEM on-board, Ethernet cards. However, I decided to run it without parameters just to print the list of Intel network ports, and this is what I've got:

$ sudo ./bootutil64e

Type BootUtil -? for help

Port Network Address Location Series WOL Flash Firmware Version

=============== ======== ======= === =============================

1 D017C2201F59 0:31.6 Gigabit N/A FLASH Not Present I do not quite understand what "FLASH Not Present" means here.

I posed a question on SuperUser.SE about fixing the NVM checksum. Here I am asking if and how anyone managed to successfully install Linux with working Ethernet on an ASUSPRO B8430UA laptop or on any other laptops with Intel Ethernet Controllers which had "The NVM Checksum Is Not Valid" error.

Best Solved Answer -

The e1000e driver is the one that can run the I2xx intel Ethernet Controllers. And the latest e1000e driver (as of this writing) is capable of running the I219 chip.

The The NVM Checksum Is Not Valid message during boot is what was preventing the older drivers from being loaded. On other OSes (notably MS windows) that error is ignored. But Linux appears to be stricter.

NVM is a ROM (read only memory) in the chip, which undergoes a checksum, and the older version of the e1000 driver was not aware of the NVM contents of the newer chips. Since the card works on other OSes that ignore the error another possibility could have been to force the driver to ignore the error.

The checksum is performed inside nvm.c, although other several models present their own fix_checksum functions that run before e1000e_validate_nvm_checksum_generic.

s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) { s32 ret_val; u16 checksum = 0; u16 i, nvm_data;

for (i = 0; i < (NVM_CHECKSUM_REG + 1); i++) { ret_val = e1000_read_nvm(hw, i, 1, &nvm_data); if (ret_val) { e_dbg("NVM Read Error\n"); return ret_val; } checksum += nvm_data; }

if (checksum != (u16)NVM_SUM) { e_dbg("NVM Checksum Invalid\n"); return -E1000_ERR_NVM; }

return 0; } NVM_SUM is defined inside define.h

#define NVM_SUM 0xBABA If you are confident that the card runs (and only fails because of the NVM checksum) you can try to edit the checksum function to:

s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw) { return 0; } And it will force the checksum to be always successful.

Hope this solution help you properly.

Zuck

(Themenstarter)

Anmeldungsdatum:
9. Juli 2020

Beiträge: 190

Danke, aber der checksum Fehler passierte nur einmal, nach einem erneuten aufspielen des Bios und einer Neuinstallation von Ubuntu war dieser Fehler weg.

Zum RX-CRC-Fehler

Den RX-CRC-Fehler konnte ich auch beheben. Es war ein Problem mit dem "Communication controller: Intel Corporation Tiger Lake-H Management Engine Interface" und einer Energiesparfunktion die wahrscheinlich aktiv war.

Lösung. Ich habe mir einen service angelegt der beim Systemstart geladen wird und den "communication controller" von "auto" auf "on" umschaltet.

[Unit]
Description=RX-Error...

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/bin/sh -c "echo 'on' > '/sys/bus/pci/devices/0000:00:16.0/power/control';"
[Install]
WantedBy=multi-user.target

Link dazu: https://www.kuketz-blog.de/gnu-linux-notebook-power-saving-mit-powertop/

Danach sind keine RX-CRC-Fehler mehr aufgetaucht. Es hatte also wahrscheinlich damit zu tun, dass eine Energiesparfunktion der Intel ME die RX-CRC-Fehler beim LAN-Anschluss(oder e1000e Treiber) getriggert hat.

ip -s -s link show dev eno1
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped missed  mcast   
    76929056   57685    0       2855    0       27      
    RX errors: length   crc     frame   fifo    overrun
               0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    2326584    27234    0       0       0       0       
    TX errors: aborted  fifo   window heartbeat transns
               0        0       0       0       2       
    altname enp0s31f6
Antworten |