Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Wired connection stopped working after update (Realtek Ethernet) – Ubuntu 20.04

The problem

Hello,
I recently ran my Ubuntu computer after longer time, get updates, reboot and wired network stopped working. Previous version was some 20.04 too. Don’t know exact version.

I have no connection and popup informing about failed connection update is appearing periodically.

Update 2021-06-14
I found that connection works after cool start (Shutdown -> Start), but not after reboot.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

As @heynnema pointed out this is problem with integrated RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller on my motherboard B85-G41 PC Mate(MS-7850). See the solution,

Logs and stuff

$ inxi -Fx
System:    Host: ****** Kernel: 5.8.0-53-generic x86_64 bits: 64 compiler: N/A Desktop: Gnome 3.36.7 
Machine:   Type: Desktop System: MSI product: MS-7850 v: 1.0 serial: <superuser/root required> 
           Mobo: MSI model: B85-G41 PC Mate(MS-7850) v: 1.0 serial: <superuser/root required> UEFI: American Megatrends v: 2.9
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Micro-Star MSI driver: r8169 v: kernel 
           port: d000 bus ID: 03:00.0 
           IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac: d8:cb:8a:c6:f6:d8 
$ lshw -C network
*-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:03:00.0
       logical name: enp3s0
       version: 0c
       serial: d8:cb:8a:c6:f6:d8
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.8.0-53-generic duplex=full firmware=rtl8168g-2_0.0.1 02/06/13 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
       resources: irq:17 ioport:d000(size=256) memory:f7100000-f7100fff memory:f2100000-f2103fff

It’s trying to connect, but the popup mentioned on beginning is shown (can’t write exact message it flashes quickly).

$ tail -f  /var/log/syslog (edited)
NetworkManager[1052]: <info>  [1622575610.6830] device (enp3s0): Activation: starting connection 'Wired connection 1' (baec95cb-6dc1-4f0e-9f03-449a60f01d9e)
NetworkManager[1052]: <info>  [1622575610.6831] audit: op="connection-activate" uuid="baec95cb-6dc1-4f0e-9f03-449a60f01d9e" name="Wired connection 1" pid=1585 uid=1000 result="success"
NetworkManager[1052]: <info>  [1622575610.6833] device (enp3s0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
NetworkManager[1052]: <info>  [1622575610.6848] device (enp3s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
NetworkManager[1052]: <info>  [1622575610.6854] device (enp3s0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
NetworkManager[1052]: <info>  [1622575610.6860] dhcp4 (enp3s0): activation: beginning transaction (timeout in 45 seconds)
avahi-daemon[1047]: Joining mDNS multicast group on interface enp3s0.IPv6 with address fe80::c201:e5e1:9239:f63.
avahi-daemon[1047]: New relevant interface enp3s0.IPv6 for mDNS.
avahi-daemon[1047]: Registering new address record for fe80::c201:e5e1:9239:f63 on enp3s0.*.
NetworkManager[1052]: <info>  [1622575611.9842] dhcp6 (enp3s0): activation: beginning transaction (timeout in 45 seconds)
kernel: [ 1859.560671] r8169 0000:03:00.0 enp3s0: rtl_rxtx_empty_cond == 0 (loop: 42, delay: 100).
kernel: [ 1885.671779] r8169 0000:03:00.0 enp3s0: rtl_rxtx_empty_cond == 0 (loop: 42, delay: 100).
NetworkManager[1052]: <warn>  [1622575656.0903] dhcp4 (enp3s0): request timed out
NetworkManager[1052]: <info>  [1622575656.0903] dhcp4 (enp3s0): state changed unknown -> timeout
NetworkManager[1052]: <warn>  [1622575657.0859] dhcp6 (enp3s0): request timed out
NetworkManager[1052]: <info>  [1622575657.0860] dhcp6 (enp3s0): state changed unknown -> timeout
NetworkManager[1052]: <info>  [1622575657.0861] device (enp3s0): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
NetworkManager[1052]: <warn>  [1622575657.0883] device (enp3s0): Activation: failed for connection 'Wired connection 1'
NetworkManager[1052]: <info>  [1622575657.0888] device (enp3s0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
avahi-daemon[1047]: Withdrawing address record for fe80::c201:e5e1:9239:f63 on enp3s0.
avahi-daemon[1047]: Leaving mDNS multicast group on interface enp3s0.IPv6 with address fe80::c201:e5e1:9239:f63.
avahi-daemon[1047]: Interface enp3s0.IPv6 no longer relevant for mDNS.
NetworkManager[1052]: <info>  [1622575657.1070] dhcp4 (enp3s0): canceled DHCP transaction
NetworkManager[1052]: <info>  [1622575657.1071] dhcp4 (enp3s0): state changed timeout -> done
NetworkManager[1052]: <info>  [1622575657.1073] dhcp6 (enp3s0): canceled DHCP transaction
NetworkManager[1052]: <info>  [1622575657.1073] dhcp6 (enp3s0): state changed timeout -> done
NetworkManager[1052]: <info>  [1622575657.1121] policy: auto-activating connection 'Wired connection 1' (baec95cb-6dc1-4f0e-9f03-449a60f01d9e)

I tried

(The PC is connected via USB Wifi dongle now)

$ sudo rmmod r8169
$ sudo modprobe r8169

$ sudo apt install r8168-dkms
(reboot - doesn't work - so removed)
$ sudo apt purge r8168-dkms

Also I removed the original Wired connection profile and replaced it by a new one with following settings:

enter image description here
enter image description here
enter image description here
enter image description here
enter image description here

>Solution :

$ lspci -nn | grep -i ethernet

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)

You probably have a problem with MSI/MSIX interrupts from the r8168 ethernet board. Install the following patch to fix it… follow the embedded instructions closely…

#!/bin/sh

# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1779817
#
# Attached is a work-around for the in-kernel driver that is as unhacky as I can make it.

# filename: r8169_disable_msi

# Drop it in /etc/initramfs-tools/scripts/init-top and chmod a+x it. Add 'r8169_disable_msi'
# to your kernel command line (/etc/default/grub, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# usually.) 

# Remember to update-initramfs and update-grub as necessary.

# sudo update-initramfs -c -k $(uname -r)
# sudo update-grub
# reboot

# For the moment it disables MSI on everything with the ID 0x10ec:0x8168, as there seems to
# be no way to get the MAC version from userspace - and certainly not before the driver is
# loaded. Other PCI IDs may need adding..

# Still hoping we can cherry pick the in-driver workaround for bionic...?

PREREQ=""
prereqs()
{
    echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
    prereqs
    exit 0
    ;;
esac

disable_msi () {
    for i in /sys/bus/pci/devices/*; do 
        if [ $(cat $i/vendor) = "0x10ec" -a $(cat $i/device) = "0x8168" ]; then
            echo 0 >$i/msi_bus
        fi
    done
}

for x in $(cat /proc/cmdline); do
        case ${x} in
        r8169_disable_msi)
        disable_msi
        break
                ;;
        esac
done
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading