Hay algunas discusiones y parece que este problema se ha resuelto. Sin embargo, la literatura es escasa. Así que escribí esta nota y espero que ayude a otros.
Síntoma
La conexión Intel Ethernet serie I219, incluidas I219-V e I219-LM, no funciona en Linux, con aproximadamente 1 Mb/s en speedtest.net y una pérdida de ping del 30 al 50 % dentro de la LAN. Este es un problema en el kernel, por lo que tanto Ubuntu como Fedora sufrirán el mismo problema. Todos los usuarios de 4.19 a 5.11 informaron este problema. Actualizar usando apt no ayuda.
Detalles
- hacer ping desde otra máquina
$ ping -i 0.2 -W 0.2 -c 100 -s 1000 192.168.1.2
100 packets transmitted, 56 received, 44% packet loss, time 20195ms
- información del dispositivo
# lspci -vvvnn -s 00:1f.6
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (14) I219-V [8086:15fa] (rev 11)
Subsystem: CLEVO/KAPOK Computer Ethernet Connection (14) I219-V [1558:50e1]
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 129
Region 0: Memory at 82380000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [c8] 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=1 PME-
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee00338 Data: 0000
Kernel driver in use: e1000e
Kernel modules: e1000e
# ethtool -i enp0s31f6
driver: e1000e
version: 5.11.0-40-generic
firmware-version: 0.4-4
expansion-rom-version:
bus-info: 0000:00:1f.6
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
Respuesta1
Razón
La administración de energía apaga la memoria caché/memoria del adaptador de red (consulte [7] para obtener más información).
Soluciones alternativas
Entonces necesito desactivar la administración de energía. Los estados de trabajo de los dispositivos Intel se denominan C-State. Los estados C varían de C0 a Cn. C0 indica un estado activo (VerGuía del usuario de Intel/C-State). La primera solución es establecer el estado C máximo no muy alto [3,4].
vi /etc/default/grub # add intel_idle.max_cstate=1 to GRUB_CMDLINE_LINUX_DEFAULT after "quite splash" # so that line looks like GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1" # then save and execute update-grub # then reboot, you can confirm this is applied by cat /proc/cmdline|grep intel cat /sys/module/intel_idle/parameters/max_cstate
Incluso puedes establecerlo
max_cstate
en 0;alguienhacer esto.Cambie una bandera sobre el control de energía del adaptador de red [5].
# on my machine the default value is "auto" cat /sys/bus/pci/devices/0000\:00\:16.0/power/control echo on > /sys/bus/pci/devices/0000\:00\:16.0/power/control # check it is "on" now cat /sys/bus/pci/devices/0000\:00\:16.0/power/control
Literaturas
https://bugzilla.redhat.com/show_bug.cgi?id=1652865Este es un informe de enero de 2019. Está utilizando el kernel 4.29. No se proporcionó ninguna solución.
https://bugzilla.kernel.org/show_bug.cgi?id=213651propone
- descargar mei* (no funciona para mi)
- Configuración del BIOS -> Administración del sistema -> Capacidad Intel AMT, cámbielo de "Restringir acceso a MEBx" a "Desactivado" (no funciona para mi-- mi BIOS no tiene esta opción)
https://bugzilla.kernel.org/show_bug.cgi?id=213377Se trata exactamente del mismo problema. ellos proponen
- arrancando los mismos núcleos con "intel_idle.max_cstate=1" (para obtener instrucciones, consulteCómo configurar intel_idle.max_cstate=1) (casi funciona-- la velocidad de descarga y la pérdida de paquetes son fijas pero no se cargan)
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1927925
- Reclaman la solución en [3] obras
- El comentario n.º 93 explica por qué ocurre este error, pero es demasiado especializado; No puedo entenderlo completamente.
https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.10/+bug/1930754
-
(no funciona para mi)The trick is to set the boot kernel parameter "pcie_aspm=off" in '/etc/default/grub' Like this: GRUB_CMDLINE_LINUX_DEFAULT="splash pcie_aspm=off" After that run; update-grub
- Confirman que las soluciones en [2] no funcionan.
echo on | sudo tee /sys/bus/pci/devices/0000\:00\:16.0/power/control
(casi funciona-- la velocidad de descarga y la pérdida de paquetes son fijas pero no se cargan)
-
Red cableada extremadamente lenta
- El autor de la pregunta hizo mucho trabajo, incluido informar quecompilar el controlador nosotros mismos es imposible
- Ninguna de las respuestas funciona para mí.