Regarding R5S getting warmer than usual while completely idle, I have an hypothesis. Doing some research, I discovered that some embedded CLI only distros are building the kernel with the following options:
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREEMPT_VOLUNTARY_BUILD=y
I have DietPi 9.9 running both on an OrangePi5 and on a NanoPi R5S. While idle, OrangePi5 is at room temperature, and R5S is always warm, almost hot, usually 10C above room temperature.
Checking CONFIG_PREEMPT on both, I noticed that Kernel in OrangePi5 is compiled with the options I mentioned above, while R5S has kernel preemption enabled, see below:
DietPi 9.9 on OrangePi5:
root@opi5:~# uname -a
Linux opi5.home 6.1.84-vendor-rk35xx #1 SMP Tue Dec 24 13:36:04 UTC 2024 aarch64 GNU/Linux
root@opi5:~# gzip -cd /proc/config.gz | grep PREEMPT
CONFIG_PREEMPT_VOLUNTARY_BUILD=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_DYNAMIC is not set
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
root@opi5:~#
DietPi 9.9 on R5S:
root@DietPi:~# uname -a
Linux r5s 6.6.56-current-rockchip64 #1 SMP PREEMPT Thu Oct 10 10:50:06 UTC 2024 aarch64 GNU/Linux
root@DietPi:~# gzip -cd /proc/config.gz | grep PREEMPT
CONFIG_PREEMPT_BUILD=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
# CONFIG_PREEMPT_DYNAMIC is not set
CONFIG_PREEMPT_RCU=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
root@DietPi:~#
Perhaps I will open a separate thread to further evolve this hypothesis.