External USB Gigabit Ethernet Disconnects

Hi all,

I’m having a problem with my Raspberry Pi 3 using an external USB Gigabit ethernet adaptor.

Every now and then the adaptor disconnects. I don’t know if it’s powering off or just being dropped by the kernel randomly or what.

The Pi runs Ubuntu Mate 16.04.2 LTS headless. The onboard ethernet is unplugged, wifi unused/unconfigured.

I’m not aware of any power management the Pi does; there’s no upowerd process running, and it’s only wifi that has the power management switch in /etc/network/interfaces as far as I know.

Any clues, hints, pointers?


I don't know if TLP is installed on the RPi version, can you check?

apt-cache policy tlp

By the way, you can monitor hardware and driver events with:

tail -F /var/log/kern.log

root@Moya:~# apt-cache policy tlp
Installed: 0.8-1
Candidate: 0.8-1
Version table:
*** 0.8-1 500
500 http://ports.ubuntu.com xenial/universe armhf Packages
100 /var/lib/dpkg/status

Looks like.

So I recommend you check that out, maybe something here:

Installed … but not used?

# Set to 0 to disable, 1 to enable TLP.

I’ve added a blacklist line anyway; can’t hurt, right?


And that didn’t fix it. :frowning:

There’s nothing in kern.log about the connection going, just when I unplug it and plug it back in to fix it after it’s disconnected.

I’m going to try enabling TLP and see what happens.

Just to make sure because we didn’t ask you yet but when you say “it disconnects”, you mean you can’t ping outsite localhost right?

It’s a headless box - I cannot ping to it.

Here’s the latest thing I’ve found - the network switches off, but I don’t think it’s the USB NIC powering down. Unplugging the ethernet from the NIC and plugging it back in fixes it, so it’s what … dropping the DHCP and not asking for a new IP?

Is that something that NM should manage? Can I tweak that on the CLI? Otherwise I’d have to re-enable the GUI and VNC in.

That should be easy enough to test.
Get your interface name from ifconfig, then when the connection goes down use:

sudo dhclient name