5

I recently bought a new ethernet adapter for my laptop, but it always fails to connect to the internet. I have not touched my network settings (everything is set to automatic), I know the USB port works (and is 3.0), I've switched out the ethernet cable, and I've rebooted, and the problem remains. I looked at several similar questions and didn't see an answer. Here are the outputs of a few relevant commands:

~$ ifconfig
enx00e04c680050: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::660a:4122:589c:5867  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:68:00:50  txqueuelen 1000  (Ethernet)
        RX packets 13613  bytes 2126629 (2.1 MB)
        RX errors 0  dropped 5  overruns 0  frame 0
        TX packets 539  bytes 529852 (529.8 KB)
        TX errors 247  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3817  bytes 240361 (240.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3817  bytes 240361 (240.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.207  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::c550:81b5:cbfc:9922  prefixlen 64  scopeid 0x20<link>
        ether 9c:b6:d0:d0:ab:35  txqueuelen 1000  (Ethernet)
        RX packets 3473  bytes 4532992 (4.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2303  bytes 369202 (369.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

The adapter interface is the first one, enx00e04c6880050.

~$ lsusb

Bus 002 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0cf3:e301 Atheros Communications, Inc. 
Bus 001 Device 004: ID 0c45:6713 Microdia 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The adapter is the Realtek device. Here's some of the output of dmesg; there was a lot more, but it was all exactly the same.

~$ dmesg | grep enx00e04c680050

[    3.145962] r8152 1-2:1.0 enx00e04c680050: renamed from eth0
[    4.594647] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[    4.599211] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[    4.748235] r8152 1-2:1.0 enx00e04c680050: carrier on
[    5.407467] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c680050: link becomes ready
[  100.932975] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933018] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933057] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933095] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933135] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933183] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933342] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  100.933379] r8152 1-2:1.0 enx00e04c680050: Rx status -71
[  106.567052] r8152 2-1:1.0 enx00e04c680050: renamed from eth0
[  106.598088] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[  106.601933] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[  108.156517] r8152 2-1:1.0 enx00e04c680050: carrier on
[  108.156551] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c680050: link becomes ready
[  217.647356] r8152 2-1:1.0 enx00e04c680050: Stop submitting intr, status -71
[  306.017018] r8152 2-2:1.0 enx00e04c680050: renamed from eth0
[  306.045732] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[  306.049858] IPv6: ADDRCONF(NETDEV_UP): enx00e04c680050: link is not ready
[  307.612495] r8152 2-2:1.0 enx00e04c680050: carrier on
[  307.612522] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04c680050: link becomes ready
[  321.228465] r8152 2-2:1.0 enx00e04c680050: Tx status -71
[  321.231900] r8152 2-2:1.0 enx00e04c680050: Tx status -71

I also ran dmesg for the driver; these are the only two lines not already shown above:

~$ dmesg | grep r8152
[    2.833638] usbcore: registered new interface driver r8152
[    3.144927] r8152 1-2:1.0 eth0: v1.09.9

EDIT: I tried googling "Tx status -71," and I have the feeling that this — which seems to be an unresolved bug — is relevant, though I'm not entirely sure how to implement the provided patch, or if that would solve the problem.

4 Answers 4

3

This worked for me:

sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
sudo systemctl restart NetworkManager
2

This kernel parameter solved the same issue for me (with a Dell DA200 USB3 dock):

usbcore.quirks=0bda:8153:k

which disables Link Power Management for the device. See also this bug report and this Github issue (for a different hardware with the same driver/NIC chip).

1
  • I have the same adapter and (probably) the same problem. (Although mine was working perfectly fine for some time.) What does this mean? Where do I change this and why? Why is that set of strings the correct one?
    – Kvothe
    May 24, 2022 at 14:53
0

This worked under Ubuntu 18.04.4. A service can be created under

/etc/systemd/system/dell-quirks.service

with the following content:

[Unit]
Description=Install quirks for DELL TypeC ethernet/VGA/ DA 200 adapter
Documentation=https://askubuntu.com/questions/1081128/usb-3-0-ethernet-adapter-not-working-ubuntu-18-04

[Service]
Type=oneshot
RemainAfterExit=true
#ExecStart=/usr/bin/echo 0bda:8153:k > /sys/module/usbcore/parameters/quirks
ExecStart=/bin/bash -c "echo 0bda:8153:k > /sys/module/usbcore/parameters/quirks"

[Install]
WantedBy=multi-user.target

Reload the daemon

systemctl daemon-reload

Enable the service such that it starts on every reboot

systemctl enable dell-quirks.service

Start the service

systemctl start dell-quirks.service

Interface configuration has to be created. Before creating interface configuration ethernet interface can be given a name under

/etc/udev/rules.d/70-persistent-net.rules

with following content:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",ATTR{address}=="<MAC address of the ethernet interface>",ATTR{dev_id}=="0x0",ATTR{type}=="1",KERNEL=="eth*",NAME="eth0"

After ethernet network configuration can be done with netplan by creating a yaml file

/etc/netplan/01-network-card.yaml

with following content:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: true

When the laptop is booting disconnect the USB device connect it after booting and it should work after couple of minutes. If required restart the NetworkManager and wait for couple of minutes.

systemctl restart NetworkManager

0

make copies of the modified file

cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.backup

write:

lshw -c network

and save logical name ethernet card

go to file nano /etc/netplan/01-netcfg.yaml and add in ethernets:

your-logical-name-ethernet:
  dhcp4: yes

the whole thing should look like this:

network:
  version: 2
  renderer: networkd
  ethernets:
    enx00e04c480394:
      dhcp4: yes

save it and type

netplan --debug apply

in my case, renaming the card in /etc/udev/rules.d/ did not work and I had to enter the original name

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .