I just upgraded from 16.04 to 18.04 on my main desktop machine. I've got an r8168 network card. I got gigabit speeds in 16.04 and now am now only getting 100Mbps in 18.04. I've tried both the r8169 and r8168-dkms drivers. After doing the upgrade, I've swapped network cables and switches to ensure this isn't a hardware problem.

The NIC is the on-board NIC for an MSI x370 Gaming Plus motherboard.

Unfortunately, I don't have this debug information from 16.04; the below is from after the upgrade to 18.04.

$ sudo lshw -C network
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:1e:00.0
       logical name: eth0
       version: 15
       serial: 30:9c:23:0c:9a:94
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.045.08-NAPI duplex=full ip= latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
       resources: irq:46 ioport:f000(size=256) memory:fd604000-fd604fff memory:fd600000-fd603fff
$ sudo ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/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 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes
$ lsmod | grep r816
r8168                 524288  0
$ dmesg | egrep '(eth0)|(r816)'
[    1.036881] r8168: loading out-of-tree module taints kernel.
[    1.037195] r8168: module verification failed: signature and/or required key missing - tainting kernel
[    1.037822] r8168 Gigabit Ethernet driver 8.045.08-NAPI loaded
[    1.052489] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
[    1.052496] r8168  Copyright (C) 2017  Realtek NIC software team <nicfae@realtek.com> 
[   42.034465] eth0: 0xffffa7790007d000, 30:9c:23:0c:9a:94, IRQ 46
[   42.087610] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   47.210737] r8168: eth0: link up
[   47.210752] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
# note: did ethtool -r eth0 here
[  180.421766] r8168: eth0: link down
[  185.588203] r8168: eth0: link up

This has just happened to me, too. I suspect this could be caused by bad NIC drivers that sometimes Ubuntu loads by default, which trap the hardware in states it can't get out of alone. According to this troubleshooting forum, doing a cold reboot of your PC (plugging off the AC cable for 5 minutes and then turning it on back again) clears possible bad states of your network card and could fix this issue.

Keep in mind that with faulty drivers this issue could happen again randomly, or forever. You should always use the most appropiate drivers for your NIC. In your case, as your motherboard manufacturer says, you have a Realtek® 8111H chip, so downloading the specific drivers from the Realtek website and using them seems worth trying.

  • That's a new one for me. Worked like magic. Thanks! – Craig Howard May 1 '18 at 1:36

Just experienced the same exact thing. Nothing worked until I started messing with ethtool & noticed I could set it to do 1000 there. Looked at network manager & it was set to 100/half. I changed it to auto negotiate & it works perfect now.

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.