Ethernet not working in the new version of Orange Pi 3B

Orange Pi 3B has a new version, 2.1:

Orange Pi 3B V2.1 SBC has been revamped with better WiFi 5 connectivity, M.2 2280 NVMe/SATA SSD socket - CNX Software (cnx-software.com)

I got this new board this week. I know the new thing is the wifi chip, and wifi is working fine. For some reason, the problem is the ethernet, there’s no connectivity.

Ethernet is working fine in the official Linux version of Opi 3B.

What can I do to help to solve this issue?

not sure but maybe @MichaIng would be able to assist

I am running into the same experience that @raphamotta noticed. In addition, I ran into a few more problems:

  1. I couldn’t make the emmc bootable using the uboot packages with dietpi.
  2. Updating the SPI flash to boto from an m.2 nvme did not work as well. My drive was detected, I was able to mount it and also transfer the boot image to it as well.

I am temporarily on the Orange pi debian. The main difference that I see is that they are using the 5.10 raxda kernel. This is my lspci and ethtool output from orange debian, which probably isn’t of much use.

root@orangepi3b:/home/orangepi# ethtool eth0
Settings for eth0:
	Supported ports: [ TP	 MII ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: Unknown!
	Duplex: Unknown! (255)
	Auto-negotiation: on
	master-slave cfg: preferred slave
	master-slave status: unknown
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: external
	MDI-X: Unknown
	Supports Wake-on: ug
	Wake-on: d
        Current message level: 0x0000003f (63)
                               drv probe link timer ifdown ifup
	Link detected: no
root@orangepi3b:/home/orangepi# ethtool --driver eth0
driver: st_gmac
version: Jan_2016
firmware-version:
expansion-rom-version:
bus-info:
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
root@orangepi3b:/home/orangepi# lspci
00:00.0 PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3566 (rev 01)
01:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN550 NVMe SSD (rev 01)

Some things I learned about Opi3B:

1- There are at least two versions of the 3B PCB: v1.0 and v2.1. 1.1 has 3.3v PHY, 2.1 has 1.8v PHY.
This is well documented on orangepi site, but this changes are not on linux kernel, so, DietPi can’t handle it properly, and is not their fault.

2- Because of these PHY voltage diference, I don’t know if using DietPi is even safe,

3- Official OrangePi images work very weel on both board versions, but, to me, there’s a huge problem: Rockchip video acceleration only works on kernel 6.8 and above, and official images only ships with 5.10.X kernel.

4- Xunlong (orangepi boark maker) updated kernel sources, but as long as I know, linux kernel mantainers didn’t accepted the changes yet, so, there’s some time ahead before functional support from DietPI (and again, not their fault).

I’ll continue using official images and wait until linux kernel support.

Maybe that’s why my board becames defective:

Can’t boot Dietpi on Orangepi 3B from SD or eMMC (Armbian works) - Troubleshooting - DietPi Community Forum

I just triggered an update for our Orange Pi 3B kernel and bootloader packages. Since the Armbian image seems to work, according to the other topic, ours should then as well. Or is the Ethernet issue present with latest Armbian as well?

1 Like

The issue is present in the latest version… no Ethernet connectivity

Just saw that Linux Kernel 6.11 will support OPi3Bv2.1.
Time to wait now?
Anyway, there is any way to compile 6.11 kernel by myself and patch it into current images?

as long as you don’t know what to do, you should not try to compile own kernel :wink:

Dude, I’m curious about how to do it for DietPi and my board, asking how to do it.

Curiosity moves you forward, your thinking moves us backward.

1 Like

Ensure that you have the correct drivers and kernel support for the new Orange Pi 3B V2.1 Ethernet hardware. Check for any firmware updates or configuration settings specific to the new board version.

I generated a new image with new kernel: https://dietpi.com/downloads/images/DietPi_OrangePi3B-ARMv8-Bookworm.img.xz
Linux 6.10, hence no native mainline support yet, but maybe the driver got an update.

You can skip middle man and use Armbian without “diet”. Armbian daily builds:

Yet, no Ethernet so far… at least, it boots. Latest armbian gives a kernel panic error

Waiting kernel 6.11 to be released officially. Even Armbian edge kernels are 6.10.y and OPi3B v2.1 dtb are on 6.11.

@MichaIng latest armbian already support ethernet on Orange Pi 3B 2.1

https://dl.armbian.com/orangepi3b/Bookworm_vendor_minimal

But that one is the vendor kernel Linux 6.1, while I would prefer to use mainline Linux right from the start.

We can switch to Linux master branch with our Armbian fork and do a test build, just to see whether it will work. I mean we could also provide a dedicated vendor kernel image, just to keep you guys started. Can be migrated to mainline kernel any time later.

i solved the ethernet issue by switching the transmission speed in the config menu from auto to 100 mb.
For the reboot question after first boot from eMMC, i switch off the device, insert an sd card on which there is another linux distro, power on and from there i execute the sudo nand-install (i don’t remember well the command) to flash the bootloader in the spi. now everything works.

Have run into the same issue

  • ethernet not working
  • not booting after reboot

will try out the suggestions from @VittorioParagallo

@MichaIng would it be possible to build a try out image with the vendor linux?

I really like the minimalism of dietpi and want to avoid other distros if possible

Okay shit, we pushed the Linux 6.11 based kernel to the APT repo already, but it contains 2 device trees for the two revisions
image

This of course does not work with our /boot/dietpiEnv.txt, which defines rk3566-orangepi-3b.dtb. I hence took the package off the repository again.

@ankagar
I guess you upgraded the kernel already, so that reboot fails expectedly, as of above change, right? In that case, please mount the rootfs on another Linux system, edit /boot/dietpiEnv.txt, and append adjust the fdtfile line accordingly:

fdtfile=rockchip/rk3566-orangepi-3b-v2.1.dtb

That should fix boot and, as I cannot imagine any other reason for providing two device trees, Ethernet as well.

If that works: Mainline U-Boot supports those two device trees OOTB: board: rockchip: Add Xunlong Orange Pi 3B · u-boot/u-boot@a52099b · GitHub

And I pushed the mainline U-Boot based package to your APT server already. So it it works, can you try to remove the fdtfile entirely from /boot/dietpiEnv.txt? The new bootloader should then pick the correct device tree automatically. But you also need to flash that one:

sudo /boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc
sudo sed -i '/^fdtfile=/d' /boot/dietpiEnv.txt
sudo reboot

It is pretty non-trivial to do this migration properly, since the new kernel does not work with the old config and the new config does not work with the old bootloader, so all need to be updated and adjusted automatically. However, since the old kernel provided a device tree for v1.1 revision only, I’ll adjust our Armbian fork to ship this particular package with a symlink from old dtb name to new v1.1 dtb. That way systems keep running like before when upgrading this kernel. The next DietPi update will then flash the new bootloader image and remove the fdtfile entry, so that v2.1 revisions will have Ethernet.