C'est ainsi que j'ai résolu mes problèmes de surchauffe qui n'étaient pas causés par un processus spécifique, mais par l'échec de mon ordinateur portable à dissiper la chaleur causée par un fonctionnement sur une charge CPU élevée pendant des périodes plus longues. La principale différence avec la solution proposée par da code monkey lui-même est que j'utilise la mise à l'échelle de la fréquence du processeur, au lieu d'utiliser cpulimit sur un processus spécifique. Depuis que j'ai installé et exécuté Psensor de toute façon, je me connecte à Psensor. Un démon comme da code monkey suggéré devrait également fonctionner, mais deux seuils (min et max) sont requis. Dans Psensor (Préférences de capteur-> Alarme), je règle une alarme pour le capteur concerné si elle devient supérieure au seuil haut (j'utilise 85) ou inférieure au seuil bas (j'utilise 80). Dans Préférences-> Capteurs-> Script exécuté lorsqu'une alarme est déclenchée, j'appelle mon script heatcontrol.sh comme ceci:
/ALLUSER/heatcontrol.sh powersave ondemand 82
Le premier paramètre est un scaling_governor valide qui réduit la fréquence du processeur, par exemple, powersave. Le deuxième paramètre est le scaling_governor - ondemand par défaut pour la plupart des systèmes. Le troisième paramètre est une température entre le seuil bas et le seuil haut (la valeur exacte n'est pas importante). Psensor ajoute deux autres paramètres: un identifiant de capteur et la température signalée.
Et voici mon script heatcontrol.sh:
#!/bin/bash
# TempNZ is temperature reported by Psensor; strip of trailing °C
TempNZ=$5
bnum=`expr index "$TempNZ" "°"`
if (( bnum < 2 )); then
echo "ERROR"
fi
TempNZ=${TempNZ:0:$(($bnum-1))}
STR=$1
# Is this a low threshold alarm?
if [ "$TempNZ" -le "$3" ]; then
STR=$2
fi
sudo sh -c "echo '$STR' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
# echo new scaling_governor
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# play sound - audio feedback - optional
paplay /usr/share/sounds/ubuntu/stereo/message-new-instant.ogg
Fonctionne très bien pour moi (UBUNTU 14.04 LTS).
En tant que novice de Linux et bash, j'ai utilisé un certain nombre de ressources, notamment:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status