Skip to content

Fixing Broken Ethernet on Orange Pi 3B

Tags: raspberry-pi, software • Categories: Software

Table of Contents

I attempted to get my Orange Pi running as a tail-scale exit node. To do this, I had to enable IPv6 on the device. I ran the commands to enable the IPv6 connection, but it didn’t seem to work, so I rebooted the Orange Pi.

After rebooting the Pi, the Ethernet would not connect. I ended up having to plug a screen into the orange Pi and wasted a bunch of time trying to understand why the Ethernet connection wasn’t working.

I eventually ran into this blog post which indicated that there’s some low level memory issue with a recent firmware upgrade which broke the Ethernet device on the orange Pi. Super dissapointing!

Here’s how to fix the ethernet across reboots.

Running io Commands Automatically on Boot

What I love about the Pi is each time I run into an issue, I learn something new about Linux. This time, I learned that /etc/rc.local is a magic file that is run automatically on boot, as the root user. Super useful.

First, make sure the service is running on your distro:

sudo systemctl status rc-local

Then edit /etc/rc.local to add these magic lines before exit 0:

io -4 0xFDC60284 0x3f3f3f3f
io -4 0xFDC6028C 0x003f003f
io -4 0xFDC60298 0x3f003f00
io -4 0xFDC6029C 0x3f3f3f3f
io -4 0xfdc60388 0xFFFF0049

Finally, make the file executable:

sudo chmod +x /etc/rc.local

Keep in Touch

Subscribe to my email list to keep in touch. I’ll send you new blog posts and other thoughts.