Radxa Zero 3 Hardware Acceleration

I have been successfully using the Radxa Zero 3W for some time as a tiny portable media server based around DietPi & Jellyfin. The hardware accelerated encoding made this surprisingly useful.

I was rebuilding it to text Trixie and noticed the WiFi issue covered here: Radxa ZERO 3W - Fails to connect to WiFi after v9.20 · Issue #7867 · MichaIng/DietPi · GitHub. Once that got resolved (Thank you @MichaIng!), I was moving forward with the rebuild this morning and noticed the hardware acceleration devices don’t exist (mpp_service & rga). Pretty sure this is just a side effect of switching off the vendor kernel and not really something that would be considered a bug.

I am wondering if hardware acceleration support may return at some point? Also is it possible for someone with limited linux skills to swap back to the vendor kernel?

I did find some information searching the forms about the process. My attempt redounded to:

apt install linux-dtb-vendor-rk35xx linux-image-vendor-rk35xx linux-u-boot-radxa-zero3-vendor

Followed by using dietpi-config to flash the bootloader. It resulted in a system that would not boot. I did make one more attempt without installing linux-u-boot-radxa-zero3-vendor. This also failed to boot.

Any help or guidance would be appreciated.

Right, the switch to mainline Linux means those vendor drivers/APIs are gone, like RKMPP and RKNPU. But the Hantro VPU driver should work well on this chip, and edge Linux 6.18 comes with a new mainline Rocket NPU driver.

Depends on which software you use, but if you want to try:

apt install linux-{image,dtb}-edge-rockchip64

EDIT: Ah right I remember Jellyfin has explicit support for RKMPP, probably not for the Hantro mainline VPU driver, what a shame :confused:.

If you want to return to vendor Linux, and you flashed a fresh image, do not install vendor U-Boot, just keep the “current” one. Vendor U-Boot requires a GPT partition table while our images use an MBR one now. But both bootloader branches should work just fine with both kernel branches. The only thing you need to do when switching to vendor Linux with mainline U-Boot is defining the device tree, since mainline U-Boot expects individual ones for 3E and 3W while vendor kernel has a combined one:

G_SUDO G_CONFIG_INJECT 'fdtfile=' 'fdtfile=rockchip/rk3566-radxa-zero3.dtb' /boot/dietpiEnv.txt