Cooling CPU in software S905X2/S922?

create a file called autostart.sh put the commands in it use something like nano or notepad++ (make sure its UTF8 and Linux LF). put the fle in the ConfigFiles directory.

autostart.sh (94 Bytes)

I have uploaded my file as a template.

#!/bin/sh

(
echo 'interactive' > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
) &

Here’s my box playing a 1080p file h265

2 Likes

After some more testing I have concluded for myself that actually the “Hotplug” governor is the best (on my S905x box). It acts much like the interactive governor by going through all the speed steps but with the added benefit that it can shut off cores seperately. Also, while using the interactive governor I noticed some micro-stutter. Subtle, but still there.

So again, just put this line in your autostart file:

echo hotplug | tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor >/dev/null

You only need to run this command on the first core, the other cores are linked to it.

1 Like
#!/bin/sh

(
echo 'schedutil' > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo '1000000' > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
) &

Gives 45Deg C during 1080p playback and not much higher in the Gui with dirty regions set at 3.

In my S912 there is no path to
sys/devices/system/cpu/cpufreq/policy0/scaling_governor

only to
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Sorry that is for a s905x2 box I will power up an s912 box and get back to you.

If my S912 box is typical it has 2 sets of 4 cores the first set of 4 cores uses
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
and is set to ondemand Minimum frequency 1Ghz (1000000) Maximum 1.5Ghz (1512000)
Available Frequencies 100000 250000 500000 667000 1000000 1200000 1512000

The second set of 4 are controlled by
/sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
and is set to ondemand Minimum frequency 1Ghz (1000000) Maximum 1Ghz (100000). So the scaling governor has no effect.
Available Frequencies 100000 250000 500000 667000 1000000

I tried the following but it only makes a couple of degrees C difference as the S912 has already got the ondemand governor enabled. The box does idle at 600Mhz even playing UHD content.

#!/bin/bash
echo 500000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
echo 500000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

On the S905x2 the default is ‘performance’ so the cpus run flat out all the time so there is a dramatic drop in power/temperature by changing the governor to interactive/schedutil.

1 Like

In my S912 I have tried

echo 667000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
echo 667000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

and I am very satisfied to go from 1000Mhz to 667Mhz minimum CPU speed. In idle conditions I have seen temperatures of 57ºC (66ºC playing HDTV) for the first time, which has its logic:

Heat generated in low speed state:

1000Mhz = 100% heat generated (default)
667Mhz = 67% heat generated (2/3 = 0.67)*

With a speed of 500Mhz I have not seen added advantages.

(*) https://en.wikipedia.org/wiki/CPU_power_dissipation

1 Like

I don’t think P(ower)=F() requency^2 is an accurate measure for this type of CPU at these frequencies. Any reduction in power is a good thing looking at the S905X2 stats most of the core are sat around 80% of the time Waiting For Interrupts.

I had to go back to the default settings. One of the HDTV channels has micro freezes at intervals of a few seconds.

What is this console? Can you share infor please?

Has anybody tested this on an S905 device?

Changing the governor from performance to interactive will reduce GUI performance and overall user experience.

I turned it off before I upgraded although the box 9.2.1 seems kinder to the CPU but I have not done many tests.

Ondemand doesn’t do much of the job with default parameters. Almost all the time the frequency is at maximum, 1908, as in performance mode, even in idle.
Do you know how to make the value 100 to remain in the up_threshold file (
/ sys / devices / system / cpu / cpufreq / policy0 / ondemand / up_threshold) after restart?
I can change, it works, but after restart it returns to the initial value 50.
Thanks.

Put this line in file /storage/.config/autostart.sh

echo 100 >/sys/devices/system/cpu/cpufreq/policy0/ondemand/up_threshold

In x96 I only have policy0, do I put just the first line?

Yes. just first one.

Something is wrong, it does not work. Again it is the value 50 and the frequency at 1908. After restart.

Maybe something set the value after boot - try to delay setting yours value. If doesn’t work use longer delay (20 seconds).

(
  sleep 5
  echo 100 >/sys/devices/system/cpu/cpufreq/policy0/ondemand/up_threshold
)&