I am using systemd-networkd. I was able to fix this issue by adding this in systemd-networkd.service:

ExecStartPost=bash -c 'ip link set dev eth0 down;ip link set dev eth0 up'

I would rather this were somehow added to my file /etc/systemd/network/20-wired.network file which configures eth0, but I do not know how.

Is there a better way of accomplishing this? Note that if all I do is bring the link up, my Ethernet interface still fails.

  • 1
    This could actually be a bug in the driver for your network interface, or a compatibility issue between the network interface and the switch it's connected to. The latter chance might be noteworthy is one of the NIC/switch pair supports Energy-Efficient Ethernet standards and the other doesn't.
    – telcoM
    Apr 20 at 7:16
  • Out of curiosity, only one interface? No overlapping LANs defined anywhere?
    – A.B
    Apr 20 at 9:41

The Ethernet driver was misconfigured.

I read the driver documentation. The driver had the possibility of configuring a gpio phy-reset (the driver was in device tree). When I configured phy-reset-gpios in device tree the issue went away.

But I still wonder if there is anything comparable in systemd-networkd to the /etc/network/interfaces options "pre-up", "post-up", "pre-down", "post-down" which can run arbitrary commands?

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.