Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

USB Ethernet interface in virtual Ubuntu 18.04 disabled after every reboot

Writer Andrew Henderson

(tl;dr) My USB 3.0 ethernet adapter is found (lsusb), but the Ethernet interface is disabled after every reboot in Ubuntu 18.04 beta 2, even if I enable it with ip or ifconfig command (funny: it's found during installation and even connects, via dhcp, but is disabled after first reboot).

Long version: I am trying to get a DELOCK 62966 USB 3.0 > 4x Ethernet Adapter to work in a Ubuntu machine. Important: Ubuntu runs as VM in the latest Virtualbox, with a USB filter allowing access from the VM. It works well in a parallel running Windows VM. I also tried a different adapter (Lenovo Thinkpad USB 3.0 Ethernet adapter).

sudo lshw -C network gives the following result:

*-network DISABLED
description: Ethernet interface
physical id: 1
logical name: enx00e04c6801e1
[...]

I tried solutions from multiple forums from the past 10 years, e.g.:

sudo ip link set enx00e04c6801e1 up
sudo ip l s dev enx00e04c6801e1 up

This resulted in sudo lshw -C network not showing "DISABLED" anymore, but ifconfig shows that the interface does not have a valid IP. So I used sudo dhclient enx00e04c6801e1. Then, finally it showed a valid IP address.

Fyi, my /etc/network/interfaces was completely empty. I tried adding the following lines but they did not make any difference (I tried/rebooted multiple times)

auto lo
iface lo inet loopback
auto enx00e04c6801e1
iface enx00e04c6801e1 inet dhcp

Do I have to add all these steps in a script which starts at boot (if so how?) or is there a simple solution to tell ubuntu to use the adapter every time I boot?

Thank you for your help!!

UPDATE 1: Here's the result of cat /etc/netplan/*.yaml:

# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network: ethernets: enp0s3: addresses: [] dhcp4: true version: 2

-> means I need to add the enx... as well?

5

2 Answers

According to the bug report, the solution is to add the missing configuration file(/etc/NetworkManager/conf.d/10-globally-managed-devices.conf) to NetworkManager, then to reboot.

sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
sudo reboot

On a Dell box, the internal ethernet was working, but the PCI, and the PCIe cards (Rosewill/RealTek) that I installed would show as DISABLED with lshw -c network. Even if I enabled them, it would not survive a reboot.

Here's what worked for me on ubuntu 18.04LTS server (no gui):

I made a backup of /etc/netplan/01-netcfg.yaml:

cp 01-netcfg.yaml 01-netcfg.yaml_180504_1232

I edited the contents of /etc/netplan/01-netcfg.yaml from:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network: version: 2 renderer: networkd ethernets: enp0s25: dhcp4: yes

to (using the logical name: from lshw -c network):

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: yes enp3s0: dhcp4: yes enp0s25: dhcp4: yes

Apply the changes:

netplan --debug apply
** (generate:2169): DEBUG: 12:36:12.418: Processing input file //etc/netplan/01-netcfg.yaml..
** (generate:2169): DEBUG: 12:36:12.418: starting new processing pass
** (generate:2169): DEBUG: 12:36:12.418: enp3s0: setting default backend to 1
** (generate:2169): DEBUG: 12:36:12.418: enp0s25: setting default backend to 1
** (generate:2169): DEBUG: 12:36:12.418: enp1s0: setting default backend to 1
** (generate:2169): DEBUG: 12:36:12.418: Generating output files..
** (generate:2169): DEBUG: 12:36:12.418: NetworkManager: definition enp3s0 is not for us (backend 1)
** (generate:2169): DEBUG: 12:36:12.418: NetworkManager: definition enp0s25 is not for us (backend 1)
** (generate:2169): DEBUG: 12:36:12.418: NetworkManager: definition enp1s0 is not for us (backend 1)
DEBUG:netplan generated networkd configuration exists, restarting networkd
DEBUG:no netplan generated NM configuration exists
DEBUG:replug enp1s0: unbinding 0000:01:00.0 from /sys/bus/pci/drivers/r8169
DEBUG:replug enp1s0: rebinding 0000:01:00.0 to /sys/bus/pci/drivers/r8169
DEBUG:device enp0s25 operstate is up, not replugging
DEBUG:netplan triggering .link rules for enp0s25
DEBUG:device lo operstate is unknown, not replugging
DEBUG:netplan triggering .link rules for lo
DEBUG:replug enp3s0: unbinding 0000:03:00.0 from /sys/bus/pci/drivers/r8169
DEBUG:replug enp3s0: rebinding 0000:03:00.0 to /sys/bus/pci/drivers/r8169

Hat tip to these pages for showing me the way:

  1. (careful of this one as it does not show indentation, which is of course, crucial in yaml)
1

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