How to make sure my PI4 has the firmware that fixes hot cpu?

So you wouldn’t bother changing the governor to onDemand, if I I don’t use any usb?

just test… no risk

1 Like

@volumio so considering I run pi4 with digione and SPDIF, this won’t affect sound quality in any way?

No it won’t.
But I wouldn’t bother even changing it :wink:

1 Like

I already did, haha. The temperature is actually falling as we speak!

Will future updates of Volumio update the firmware version, considering it is from april?

Yes, as soon as the new 5.X kernel is stable enough for our use

1 Like

Awesome!

onDemand makes the unit run at 58-59 celcius when not in use. Since the FW is from April 2020 I don’t suppose the new 5x kernel will make much difference to the temp anyway. Will updates in Volumio change the governor back to performance?

I shall stop thinking about it as per your instructions :wink:

No, now that you edited a file manually, it will persist among updates

And yes, just focus on the music and stop thinking about temps :wink:

Will do! 10 degree celcius lower is still a pretty nice improvement though.

I have 6 Pi’s running synchronised Hi-res. None of them go above 52 playing non-stop, but all running PcP. (PcP does ‘on demand’ by default)

If you really want to dig in deep, there seem to be some good suggestions here about underclocking and other tweaks. But to me 59 still seems to be well below the danger zone anyway.

After I shut down the unit and powered it on again, the governor was changed back to performance?

Tested again, then restarted, and it changes back to performance?

The only way I managed to override Volumio is to use the following in /etc/rc.local

sleep 5
echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
exit 0

Sleep has to be there or Volumio just overrides it.

Perhaps @volumio should add an option for the user to change the governor in the UI, instead of it always running performance.

2 Likes

Change in this file:

/etc/default/cpufrequtils

Sorry but this not works on Volumio 3.x i try to modify rc.local even adding more seconds in “sleep” command but not work and governor is always set to “performance” at boot.
I even try the @billsq method but not works.
Someone find any solution?, maybe @volumio
Thanks

do you need this?
See what Volumio Systeminformation plugin gives:
(while playing, with touchdisplay, FusionDsp peppymeterbasic)

System Information

OS info

    Version of Volumio: 3.742
    Hostname: volumio-rpi4
    Kernel: 6.1.69-v7l+
    Governor: performance
    Uptime: 0 days, 2 Hrs, 51 Minutes, 27 Seconds


Board info

    Manufacturer: Raspberry Pi Foundation
    Model: Raspberry Pi 4 Model B Rev 1.1 Raspberry Pi / 4B - 1.1 /
    Version: b03111 / 4B - 1.1
    Firmware Version: Oct 17 2023 15:39:16 - 30f0c5e4d076da3ab4f341d88e7d505760b93ad7


CPU info

    Brand: BCM2711
    Speed: 1.5 GHz
    Family: Cortex-A72
    Model: 3
    Number of cores: 4
    Physical cores: 4
    Average load: 4%
    Temperature: 58°C

I’ve just see my cpu status with
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
i only need to set the cpu governor to “ondemand” at boot bypassing the “performance” standard governors

Something that works…

sudo nano /bin/volumio_cpu_tweak

and set your governor

#!/bin/bash

# MPD AFFINITY CONTROL
CORES=`cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1`
MPD_PID=`/bin/pidof mpd`

echo "Setting RT Priority for mpd"
/usr/bin/chrt -f -p -a 35 $MPD_PID

if [ "$CORES" -gt 2 ]; then
   echo "Setting MPD Affinity"
   /usr/bin/taskset -p 3 $MPD_PID
     else
   echo "Not enough cores to set MPD affinity"
fi

# CPU GOVERNOR CONTROL

# DEFAULT GOVERNOR
GOVERNOR="ondemand"

# Define the array of strings for devices that require the conservative governor
GOVERNOR_CONSERVATIVE_DEVICES=("Raspberry Pi Compute Module" "Raspberry Pi 5")

# Check if the file /sys/firmware/devicetree/base/model exists, in this case we are running on a Raspberry Pi
if [ -f /sys/firmware/devicetree/base/model ]; then
  model_content=$(cat /sys/firmware/devicetree/base/model)

  # Check if the model content contains any of the strings in the array
  for device in "${GOVERNOR_CONSERVATIVE_DEVICES[@]}"; do
    if [[ $model_content == *"$device"* ]]; then
      GOVERNOR="conservative"
      break
    fi
  done
fi

echo "VOLUMIO CPU TWEAK: Setting CPU Governor: $GOVERNOR"
/usr/bin/cpufreq-set -g $GOVERNOR

exit 0

save and reboot…
NOTA : I didn’t check if it prevent futur update and I saw no effect on temperature :wink:

OS info

Version of Volumio: 3.742
Hostname: volumio-rpi4
Kernel: 6.1.69-v7l+
Governor: ondemand
Uptime: 0 days, 0 Hrs, 7 Minutes, 6 Seconds

Board info

Manufacturer: Raspberry Pi Foundation
Model: Raspberry Pi 4 Model B Rev 1.1 Raspberry Pi / 4B - 1.1 /
Version: b03111 / 4B - 1.1
Firmware Version: Oct 17 2023 15:39:16 - 30f0c5e4d076da3ab4f341d88e7d505760b93ad7

CPU info

Brand: BCM2711
Speed: 1.5 GHz
Family: Cortex-A72
Model: 3
Number of cores: 4
Physical cores: 4
Average load: 19%
Temperature: 57°C