NanoPi Zero2 missing CPU temp/freq

Hi there,

Just finished moving my DietPi setup from an ancient Raspberry Pi Zero W to a newly ordered NanoPi Zero2. I used the latest Zero2 DietPi image from the website, downloaded today, and while it mostly seems to be working fine, CPU temp is showing as N/A.

Obviously tried running dietpi-update, and had a peek in /sys/class/thermal and /sys/class/hwmon, but can’t find any sensors. Also tried using lm-sensors which didn’t detect anything either.

# uname --all
Linux Zero2 6.18.37-current-rockchip64 #1 SMP PREEMPT Sat Jun 27 10:06:50 UTC 2026 aarch64 GNU/Linux

Not sure if it’s related, but I also noticed that the lower CPU scaling frequencies seem to be missing. No idea how much of an impact it has in practice, but I obviously want to keep power consumption as low as possible.

# cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
1200000 1416000 1608000 1800000 2016000

Thanks, I just recognized that the mainline kernel builds were accidentally overriding the vendor kernel builds. Fixed with: dietpi-build: remove conditional for _mailine suffix · MichaIng/DietPi@b2b97f0 · GitHub
New images on the way:

Incomplete mainline Linux support is known, including dysfunctional USB: NanoPi Zero2 USB not working with mainline kernel · Issue #8250 · MichaIng/DietPi · GitHub

Okay @fencejens new images are in place. The ones from the download page do now use vendor kernel as expected, which has functional USB and CPU stats.

It is probably easier to just flash a new image. But let me know if you did already some setup steps and want to change the kernel in place.

I got everything set up already, so it’d be nice to know how to update in place.

This would be the steps to change the kernel in place:

packages=()
dpkg-query -l | grep -q '^ii[[:blank:]]*linux-headers-current-rockchip64[[:blank:]:]' && packages+=('linux-headers-vendor-rk35xx')
dpkg-query -l | grep -q '^ii[[:blank:]]*linux-libc-dev-current-rockchip64[[:blank:]:]' && packages+=('linux-libc-dev-vendor-rk35xx')
G_AGI linux-image-vendor-rk35xx "${packages[@]}" linux-u-boot-radxa-zero3-vendor
G_AGP linux-{image,headers,libc-dev}-current-rockchip64
G_EXEC_OUTPUT=1 G_EXEC /boot/dietpi/func/dietpi-set_hardware flash-u-boot-mmc
G_EXEC sed --follow-symlinks -i 's/ttyS0/ttyFIQ0/' /boot/dietpiEnv.txt
if systemctl -q is-enabled serial-getty@ttyS0
then
G_EXEC_OUTPUT=1 G_EXEC /boot/dietpi/func/dietpi-set_hardware serialconsole 0 ttyS0
G_EXEC_OUTPUT=1 G_EXEC /boot/dietpi/func/dietpi-set_hardware serialconsole 1 ttyFIQ0
fi

This is the full failsafe path, just in case others stumble above this topic:

  • Migrates headers as well, if installed
  • Carefully switches the serial console device, which has different names in vendor and mainline kernel. This is critical on the NanoPi Zero2, since it is a headless SBC without functional /dev/tty1. If the kernel does not have any functional console= cmdline entry, boot fails. Hence the serial console device must be correct.