Let’s be frank, the default fan curve in the rockchip kernel is abysmal.
To make the official Radxa fan spin in the right situations and not make much noise, do this:
- Go to a folder (Documents, let’s say), create a file called
fanctrl-my.dts
with this content:
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&fan0>;
__overlay__ {
cooling-levels = <141 141 141 141 141 141 146 146 151>;
};
};
};
- save the file, open terminal in that directory and write
dtc -O dtb -o fanctrl-my.dtbo fanctrl-my.dts
sudo cp fanctrl-my.dtbo /lib/firmware/6.1.0-*-rockchip/device-tree/rockchip/overlay/
- edit the file
/etc/default/u-boot
as explained here: https://github.com/Joshua-Riek/ubuntu-rockchip/discussions/686#discussioncomment-9064653 - validate that the overlay is detected
- reboot
The constant speed changing on the default curve is responsible for the terrible coil whine. This overlay keeps the CPU almost always below 65 °C during any torture tests (ambient ~25 °C) and makes little noise.