🛠 Dompter la chauffe : throttling à 70 °C, dissipateur et pilotage CPU

Banana Pi BPI-CM4 (Amlogic A311D, Raspberry Pi CM4 form factor) · avance · Schéma : IMG-bananapi-cm4-avance-3-maitriser-thermique-banapi-cm4.svg — module BPI-CM4 coiffé d'un petit dissipateur sur l'A311D ; en médaillon, courbe de fréquence : effondrement à 1000 MHz sans refroidissement contre 1800 MHz maintenu avec dissipateur.

Objectives

The BPI-CM4 is a champion of thermal throttling: throttling starts around 70 °C and, in a bare module under stress-ng, the frequency collapses in just 5 seconds — after 10 minutes, a module without cooling runs at 1000/1000 MHz compared to 1800/1398 MHz with a simple small heatsink (published measurements). You will reproduce the test, instrument both big.LITTLE clusters (4× A73 + 2× A53, separate cpufreq policies) and arbitrate between heatsink, frequency cap, and governor.

Hardware

Complete Code

sudo apt update && sudo apt install -y stress-ng linux-cpupower

# État des politiques de fréquence (une par cluster big.LITTLE)
for p in /sys/devices/system/cpu/cpufreq/policy*; do
  echo "$p : $(cat $p/scaling_governor) $(cat $p/cpuinfo_cur_freq 2>/dev/null)"
done

# Températures (thermal zones amlogic)
for z in /sys/class/thermal/thermal_zone*/; do
  echo "$(cat $z/type 2>/dev/null) : $(($(cat $z/temp 2>/dev/null)/1000)) °C"
done

# Test de 10 min avec enregistrement des fréquences
sudo stress-ng --matrix 0 --timeout 10m &
while sleep 15; do
  date +%T; paste -sd' ' /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
done

# Plafonner les A73 à 1,8 GHz pour un régime silencieux
sudo cpupower frequency-set -d 1GHz -u 1.8GHz

Expected Verification

Without a heatsink: visible drop within seconds towards floor frequencies, stabilization around 1000 MHz per core after 10 minutes. With a heatsink: significantly higher maintenance (order of magnitude 1800/1398 MHz). Reference power consumption measured on this setup: 1.8 W at idle, 4.1 W at full stress-ng load.

Common Errors

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials