Fixing Broken Ethernet on Orange Pi 3B
Tags: raspberry-pi, software • Categories: Software
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.
io
Commands Automatically on Boot
Running 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