At my office, we recently buy twenty laptops Dell Latitude 5420 under Ubuntu 20.04 and we have a big problem with ethernet connexion, download is extremly slow (but upload is good).

Edit : The problem is only on this laptop series, only with integrated ethernet and only on Ubuntu (see the tests below). Wifi is working perfectly, Ethernet is working perfectly too if we install Windows on this laptops and we don't have problems if we use an Ethernet USB adapter or a dockstation with ethernet on it.

Hardware side, the laptops are equipped with integrated network cards : Intel "Ethernet Connection I219-LM".

Here is the tests I made :

Conditions of the tests performed at my home :

  • Type of internet connection used: VDSL2+
  • Download speed : 40,43 Mbps
  • Upload speed : 5,70 Mbps

Conditions of the tests performed at my office :

  • Type of internet connection used: Optical fiber
  • Download speed : 756,21 Mbps
  • Upload speed : 337,64 Mbps

Here are the tests I performed:

  • Ubuntu 20.04.1 LTS "Out Of The box"

    • Result after installation = Slow Ethernet (@home = download : 0,89 Mbps / upload : 4,82 Mbps)
    • Kernel version after installation = 5.6.0-1032-oem
    • Ethernet driver version after installation = Intel e1000e 3.2.6-k
    • Kernel version after update = 5.10.0-1029-oem
    • Ethernet driver version after update = Intel e1000e 5.10.0-1029-oem (driver included in the kernel)
    • Result after update = Slow Ethernet (@ home = download : 0,57 Mbps / upload : 4,61 Mbps)
  • Ubuntu 20.04.2 LTS "install from USB"

    • Result after installation = Slow Ethernet (@home = download : 0,89 Mbps / upload : 4,82 Mbps) (@office = download : 6,36 Mbps / upload : 327,99 Mbps)
    • Kernel version after installation = 5.8.0-43-generic
    • Ethernet driver version after installation = Intel e1000e 3.2.6-k
    • Kernel version after update = 5.8.0-55-generic
    • Ethernet driver version after update = Intel e1000e 3.2.6-k
    • Result after update = Slow Ethernet (@home = download : 0,68 Mbps / upload : 4,52 Mbps) (@office = download : 5,31 Mbps / upload : 411,82 Mbps)
    • Unsuccessful attempts to manually install the 3.8.4 and 3.8.7 driver = Errors during driver compilation
  • Ubuntu 20.04.2 LTS "live session from USB"

    • Result on live session = Ethernet "a little less" slow (@home = download : 15,60 Mbps / upload : 4,41 Mbps)
    • Kernel version = 5.8.0-43-generic
    • Ethernet driver version = Intel e1000e 3.2.6-k
  • Ubuntu 18.04 LTS "install from USB"

    • Result after installation = Card seen by the system but not claimed
    • Kernel version = 5.4.0-74-generic
    • Ethernet driver version = None
    • Kernel version after update = 5.4.0-74-generic
    • Ethernet driver version after update = None
    • Ethernet driver version after manual installation = 3.8.4-NAPI (downloaded from the Intel site)
    • Result after update = Ethernet ok (@home = download : 40,29 Mbps / upload : 5,37 Mbps)
  • Ubuntu 20.04.1 LTS "install from Dell recovery iso" (downloaded from the Dell OS Recovery Tool software)

    • Result after installation = Slow Ethernet (@home = download : 0,87 Mbps / upload : 4,73 Mbps)
    • Kernel version after installation = 5.6.0-1032-oem
    • Ethernet driver version after installation = Intel e1000e 3.2.6-k
    • Kernel version after update = 5.10.0-1029-oem
    • Ethernet driver version after update = Intel e1000e 5.10.0-1029-oem (driver included in the kernel)
    • Result after update = Slow Ethernet (@home = download : 0,56 Mbps / upload : 4,49 Mbps)
    • Unsuccessful attempts to manually install the 3.8.4 and 3.8.7 driver = Errors during driver compilation with kernels 5.6.0-1032-oem and 5.10.0-1029-oem
  • Ubuntu 21.04 "install from USB"

    • Result after installation = Slow Ethernet (@office = download : 1,52 Mbps / upload : 400,58 Mbps)
    • Kernel version after installation = 5.11.0-16-generic
    • Ethernet driver version after installation = 5.11.0-16-generic (driver included in the kernel)
    • Kernel version after update = 5.11.0-18-generic
    • Ethernet driver version after update = 5.11.0-18-generic (driver included in the kernel)
    • Result after update = Slow Ethernet (@office = download : 2,22 Mbps / upload : 410,05 Mbps)
  • Windows 10 Professionnel (release 21H1)

    • Result after installation = Ethernet ok (@office = download : 850,12 Mbps / upload : 519,30 Mbps)

So, as we can see after all these tests, we can already exclude a hardware problem (the problem is present on 5 or 6 laptops tested out of the 20 laptops received) and the bandwidth is perfect on Ubuntu 18.04 once the Intel drivers are manually installed and on Windows.

At first, I think the solution would be to be able to install a more recent version of the "Intel e1000e" driver but when I try to compile it on the Ubuntu installed from the "Dell ISO", I get these errors (sorry for the French language) :

  • On kernel 5.6.0-1032-oem (from Dell ISO) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo make *** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but *** the signing key cannot be found. Module signing has been *** disabled for this build. make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.6.0-1032-oem »   CC [M]  /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o In file included from /home/administrateur/Téléchargements/e1000e-3.8.7/src/e1000.h:14,                  from /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.c:30: /home/administrateur/Téléchargements/e1000e-3.8.7/src/kcompat.h:825:2: error: #error UTS_UBUNTU_RELEASE_ABI is too large...   825 | #error UTS_UBUNTU_RELEASE_ABI is too large...       |  ^~~~~ make[2]: *** [scripts/Makefile.build:276 : /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o] Erreur 1 make[1]: *** [Makefile:1707 : /home/administrateur/Téléchargements/e1000e-3.8.7/src] Erreur 2 make[1] : on quitte le répertoire « /usr/src/linux-headers-5.6.0-1032-oem » make: *** [Makefile:73 : default] Erreur 2 
  • On kernel 5.10.0-1029-oem (from Dell ISO) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo make *** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but *** the signing key cannot be found. Module signing has been *** disabled for this build. make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.10.0-1029-oem »   CC [M]  /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o In file included from /home/administrateur/Téléchargements/e1000e-3.8.7/src/e1000.h:14,                  from /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.c:30: /home/administrateur/Téléchargements/e1000e-3.8.7/src/kcompat.h:825:2: error: #error UTS_UBUNTU_RELEASE_ABI is too large...   825 | #error UTS_UBUNTU_RELEASE_ABI is too large...       |  ^~~~~ make[2]: *** [scripts/Makefile.build:287 : /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o] Erreur 1 make[1]: *** [Makefile:1849 : /home/administrateur/Téléchargements/e1000e-3.8.7/src] Erreur 2 make[1] : on quitte le répertoire « /usr/src/linux-headers-5.10.0-1029-oem » make: *** [Makefile:73 : default] Erreur 2 

After reinstalling Ubuntu from the official ISO (not the Dell one) and disabled SecureBoot, I finally successfully installed the new Intel e1000e driver... but... the problem is still here...

  • On kernel 5.8.0-43-generic (from official Ubuntu ISO)

    • Result after 3.8.7 driver update = Slow Ethernet (@home = download : 0,16 Mbps / upload : 2,38 Mbps)
  • On kernel 5.8.0-55-generic (from official Ubuntu ISO)

    • Result after 3.8.7 driver update = Slow Ethernet (@home = download : 1.00 Mbps / upload : 5.13 Mbps)

I confess that I am completely lost... Do you have any idea where it could come from?

In the meantime, here is the result of the lshw -C network order, don't hesitate to ask me for the results of other orders, I will post them.

administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo lshw -C network   *-network:1        description: Ethernet interface        produit: Ethernet Connection (13) I219-LM        fabricant: Intel Corporation        identifiant matériel: 1f.6        information bus: pci@0000:00:1f.6        nom logique: enp0s31f6        version: 20        numéro de série: 38:14:28:0f:32:1a        taille: 1Gbit/s        capacité: 1Gbit/s        bits: 32 bits        horloge: 33MHz        fonctionnalités: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation        configuration : autonegotiation=on broadcast=yes driver=e1000e driverversion=3.8.7-NAPI duplex=full firmware=0.8-4 ip=192.168.1.31 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s        ressources : irq:147 mémoire:a2300000-a231ffff 

Thank you in advance for your help ! :)

Yann

Update

Here is the result of the nestat -i and netstat -s commands (on my network at home) :

administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ netstat -i Table d'interfaces noyau Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg enp0s31f  1500    29522    448    361 0         30261      0      0      0 BMRU lo       65536     4572      0      0 0          4572      0      0      0 LRU wlp0s20f  1500     7350      0    672 0           563      0      0      0 BMRU administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ netstat -s Ip:     Forwarding: 2     50727 total packets received     6 with invalid addresses     0 forwarded     0 incoming packets discarded     49394 incoming packets delivered     43118 requests sent out     20 outgoing packets dropped     542 dropped because of missing route Icmp:     67 ICMP messages received     0 input ICMP message failed     Histogramme d'entrée ICMP         destination unreachable: 67     762 ICMP messages sent     0 ICMP messages failed     Histogramme de sortie ICMP         destination unreachable: 762 IcmpMsg:         InType3: 67         OutType3: 762 Tcp:     545 active connection openings     0 passive connection openings     4 failed connection attempts     5 connection resets received     3 connections established     29486 segments received     40360 segments sent out     861 segments retransmitted     1 bad segments received     290 resets sent Udp:     11379 packets received     1452 packets to unknown port received     0 packet receive errors     11028 packets sent     0 receive buffer errors     0 send buffer errors     IgnoredMulti: 5760 UdpLite: TcpExt:     218 TCP sockets finished time wait in fast timer     164 delayed acks sent     Quick ack mode was activated 36 times     7910 packet headers predicted     6247 acknowledgments not containing data payload received     10413 predicted acknowledgments     TCPSackRecovery: 140     Detected reordering 1 times using SACK     6 congestion windows recovered without slow start after partial ack     TCPLostRetransmit: 100     490 fast retransmits     48 retransmits in slow start     TCPTimeouts: 95     TCPLossProbes: 300     TCPLossProbeRecovery: 30     TCPSackRecoveryFail: 7     TCPDSACKOldSent: 40     TCPDSACKOfoSent: 5     TCPDSACKRecv: 193     93 connections reset due to unexpected data     1 connections reset due to early user close     3 connections aborted due to timeout     TCPDSACKIgnoredOld: 1     TCPDSACKIgnoredNoUndo: 109     TCPSackShifted: 790     TCPSackMerged: 1396     TCPSackShiftFallback: 320     TCPRcvCoalesce: 1208     TCPOFOQueue: 1950     TCPOFOMerge: 5     TCPChallengeACK: 1     TCPSYNChallenge: 1     TCPAutoCorking: 157     TCPSynRetrans: 43     TCPOrigDataSent: 27241     TCPHystartDelayDetect: 13     TCPHystartDelayCwnd: 421     TCPKeepAlive: 612     TCPDelivered: 27555     TCPAckCompressed: 187     TcpTimeoutRehash: 95     TcpDuplicateDataRehash: 3 IpExt:     InMcastPkts: 2913     OutMcastPkts: 260     InBcastPkts: 5760     OutBcastPkts: 2     InOctets: 25001747     OutOctets: 37878931     InMcastOctets: 857652     OutMcastOctets: 17502     InBcastOctets: 5995183     OutBcastOctets: 108     InNoECTPkts: 52735 MPTcpExt: 
5

4 Answers

Finally, somebody who has exactly the same issue. I have filed a bug on launchpad: e1000e extremly slow.

Can you comment there too? Or +1 it or something? Workaround is there too.

The trick is to disable aspm with pcie_aspm=off as a kernel option in /etc/default/grub, like this:

GRUB_CMDLINE_LINUX_DEFAULT="splash pcie_aspm=off" 

After that run:

update-grub 

pcie_aspm is some sort of power management thingie which probably puts my network controller to sleep or something, and putting a USB memory stick in the laptop somehow wakes it up.

2

Try this

sudo ethtool -C enp0s31f rx-usecs 6000 

ethtool is not persistence, so you need to run again every reboot (or create a startup script for that).

Mind try this work around:

If it also work around, then we know they are likely to share the same root cause.

I have fiber. Last week I was getting 900Mbps up and down. This week, I'm getting around 80 Mbps. This is with my laptop connected directly to the AT&T fiber modem. I called in AT&T, who measured 950 Mbps. The service tech connected his meter (to speedtest.net) to the cable that's connected to the fiber modem, and gets 950 Mbps. When I plug it into my laptop, I'm getting only 80 Mbps on speedtest.net.

I tried the pcie_aspm change, rebooted, and still the same 80 Mbps.

I then tried:

% /usr/bin/sudo ethtool -s enp61s0 speed 1000 

and now the speed is 905/850Mbps!

Why did the speed get set to 100Mbps? How do I make 1000Mbps permanent?

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy