Why is my laptop (Debian 10) only connecting with 100Mbit/s instead of Gigabit?

3

My laptop (Thinkpad T450s) with Debian 10 only connects with 100Mbit/s instead of Gigabit through ethernet, although the network card should be capable of Gigabit LAN (see #2 below). I tried a machine running Ubuntu 18.04 on the same cable (see #5 below) and it got Gigabit.

If I manually set link speed to 1000Mbit/s, nothing changes. If I enable auto-negotiation, it won't even connect and after disabling auto-negotiation again it can't connect anymore. I then have to delete the ethernet-connection in the network manager GUI and create a new one with auto-negotiation disabled.

  • According to Wikipedia, auto-negotiation is required for Gigabit LAN, so I suspect auto-negotiation somehow failing might be the root of the problem. Then again, auto-negotiation seems to have worked from a live Ubuntu 18.04 on the same machine, in the sense that I had internet, but with a link speed of 100 Mbit/s, so I'm unsure at this point.

How do I configure my network settings correctly in order to use Gigabit LAN?


These are the diagnostic steps I've run so far:

  1. sudo ethtool enp0s25:

    Settings for enp0s25:
      Supported ports:              [ TP ]
      Supported link modes:         10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Full
      Supported pause frame use:    No
      Supports auto-negotiation:    Yes
      Supported FEC modes:          Not reported
      Advertised link modes:        Not reported
      Advertised pause frame use:   No
      Advertised auto-negotiation:  No
      Advertised FEC modes:         Not reported
    
      Speed:                  100Mb/s
      Duplex:                 Full
      Port:                   Twisted Pair
      PHYAD:                  1
      Transceiver:            internal
      Auto-negotiation:       off
      MDI-X:                  on (auto)
      Supports Wake-on:       pumbg
      Wake-on:                g
      Current message level:  0x00000007 (7)
                              drv probe link
      Link detected:          yes
    
  2. lscpi:
    00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-LM (rev 03)
    
    According to Intel, the card supports Gigabit LAN (see here) and there seems to be no firmware missing. I checked with dmesg | grep -i firm and it says (Bluetooth edited out):
    [254037.281327]  (NULL device *):  firmware: direct-loading firmware intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq
    [254037.281525]  (NULL device *):  firmware: direct-loading firmware iwlwifi-7265D-29.ucode
    [255529.699990]  (NULL device *):  firmware: direct-loading firmware iwlwifi-7265D-29.ucode
    [259054.226196]  (NULL device *):  firmware: direct-loading firmware intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq
    [259054.229879]  (NULL device *):  firmware: direct-loading firmware iwlwifi-7265D-29.ucode
    [269591.798078]  (NULL device *):  firmware: direct-loading firmware iwlwifi-7265D-29.ucode
    
  3. sudo lspci -k -nn -s 00:19.0:

    00:19.0 Ethernet controller [0200]:
      Intel Corporation Ethernet Connection (3) I218-LM [8086:15a2] (rev 03)
        Subsystem:              Lenovo Ethernet Connection (3) I218-LM [17aa:2226]
        Kernel driver in use:   e1000e
        Kernel modules:         e1000e
    

    sudo modinfo e1000e | grep -e ^filename -e ^vermagic -e ^parm:

    filename:   /lib/modules/4.19.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
    vermagic:   4.19.0-8-amd64 SMP mod_unload modversions
    
    parm:   debug:Debug level (0=none,...,16=all) (int)
    parm:   copybreak:Maximum size of packet that is copied to a new buffer on receive (uint)
    parm:   TxIntDelay:Transmit Interrupt Delay (array of int)
    parm:   TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)
    parm:   RxIntDelay:Receive Interrupt Delay (array of int)
    parm:   RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)
    parm:   InterruptThrottleRate:Interrupt Throttling Rate (array of int)
    parm:   IntMode:Interrupt Mode (array of int)
    parm:   SmartPowerDownEnable:Enable PHY smart power down (array of int)
    parm:   KumeranLockLoss:Enable Kumeran lock loss workaround (array of int)
    parm:   WriteProtectNVM:Write-protect NVM [WARNING: disabling this can lead to corrupted NVM] (array of int)
    parm:   CrcStripping:Enable CRC Stripping, disable if your BMC needs the CRC (array of int)
    
  4. I booted Ubuntu 18.04 from a LiveUSB and ran the same speed test, receiving 90/40mbps down/up. ethtool reported link speed 100Mbit/s with auto-negotiation enabled (by default, not manually set by me), and sudo ethtool -s enp0s25 speed 1000 reported cannot advertise link speed 1000
  5. I used the same cable (15m CAT6) on another machine, running Ubuntu 18.04 with auto-negotiation enabled, and Gigabit worked (confirmed it with a speed test). LED on the access point was flashing green, instead of yellow, as is the case with my machine. The report of the speed test was 250/84Mbps down/up on the Ubuntu machine vs 90/40Mbps down/up on the Debian one.

    ethtool: (Ubuntu machine)

    Settings for enx00e04c6845e0:
      Supported ports:              [ TP MII ]
      Supported link modes:         10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Half 1000baseT/Full
      Supported pause frame use:    No
      Supports auto-negotiation:    Yes
      Supported FEC modes:          Not reported
      Advertised link modes:        10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Full
      Advertised pause frame use:   Symmetric Receive-only
      Advertised auto-negotiation:  Yes
      Advertised FEC modes:         Not reported
    
      Link partner advertised link modes:         10baseT/Half 10baseT/Full
                                                  100baseT/Half 100baseT/Full
                                                  1000baseT/Full
      Link partner advertised pause frame use:    Symmetric
      Link partner advertised auto-negotiation:   Yes
      Link partner advertised FEC modes:          Not reported
    
      Speed:                  1000Mb/s
      Duplex:                 Full
      Port:                   MII
      PHYAD:                  32
      Transceiver:            internal
      Auto-negotiation:       on
      Supports Wake-on:       pumbg
      Wake-on:                d
      Current message level:  0x00007fff (32767)
                              drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
      Link detected:          yes
    
    • Note: the whole set of options starting with Link partner advertised is missing from my output; Is it possible my machine doesn't understand the advertisement of auto-negotiation from the AP?
  6. Someone pointed out that Green Ethernet or Energy Efficient Ethernet (eee) might be the problem, so I tried disabling it with ethtool --set-eee eth0 eee off, as described here, but nothing changed.
linux
networking
debian
ethernet
gigabit-ethernet
asked on Super User Apr 14, 2020 by C4X • edited Apr 27, 2020 by JW0914

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0