Eth0 doesn't work unless plugged in before boot, unplugging ethernet causes permanent disconnect


I work for an energy technology company, and we use Beaglebone Black’s in our product line. Over the last 2 years there has been a consistent trouble with the ethernet port, and I wonder if there is a fix for this or if anyone else is aware of it.

Running any of the Debian images from 2014 to present on a Beaglebone Black, unless the ethernet cable is plugged in and connected to a network device (switch, modem, etc) before powering on the beaglebone black it will not connect to the network. It won’t pull a DHCP address. It will not connect with a static IP Address. And if the beaglebone is plugged into a network switch and you power cycle the switch, connectivity seems to be permanently lost until you also reboot the Beaglebone black. Alternatively, if you just unplug the ethernet cable for 30 seconds to a minute, it will also loose network connectivity.

Connected the Beaglebone Black to your PC via USB, and connect the Beaglebone Black to an ethernet cable which runs to a network switch. You can ping google, etc no problem the Beaglebone has internet connectivity. Disconnect the ethernet cable, wait 30 seconds to a minute and reconnect the cable. The beaglebone black will no longer connect to the internet. Bringing the interface down and up again does not seem to fix the issue.

Sometimes this doesn’t happen though. Sometimes different boards seem to work no problem. So it confuses me, why do some boards work and others not?

There are situations where, like I deal with yesterday, at a clients house they have a power outage. One of our beaglebone device are running off an alternate battery-powered source and continues running no problem, but the rest of the networking equipment looses power. When their power comes back on, the networking stuff turns back on and the client is able to connect to their wifi and surf the web without issue, but the Bealgebone refuses to connect to the network or connect to our servers over the internet.

What is the cause of this bug? Is there a fix for it? Can the fix be remotely implemented? Is it a relatively safe fix, or is there a substantial chance I could brick the beaglebone?

Any help would be appreciated as I have pulled my hair out over this issue for the last 2 years.

Thank you!

This should be fixed in the jessie image's (iot or lxqt) (NOT console) as
the iot/lxqt images have connman controlling eth0..


Hi Robert,

Updating to the Jessie image seems to solve the issue! Thank you for your input!

But the Jessie image seems to have another bug that I can’t seem to figure out.

The Rx/Tx pins on SPI1 seem to be flipped. Attempting to modify this in the device tree overlay does not seem to work.

I’ve already got hardware built. So at this point I can’t work with the pins being switched. But I need that ethernet bug fixed.

Any ideas?

Thank you!

That doesn’t make sense. The only place to swap MISO/MOSI is in the McSPI driver and that hasn’t changed.