W ten sposób rozwiązałem moje problemy z przegrzewaniem, które nie zostały spowodowane przez określony proces, ale przez to, że mój laptop nie rozproszył ciepła spowodowanego pracą z dużym obciążeniem procesora przez dłuższy czas. Główną różnicą w stosunku do rozwiązania, które oferuje sam kod da monkey, jest to, że używam skalowania częstotliwości procesora, zamiast używać cpulimit w określonym procesie. Ponieważ i tak mam zainstalowany i działający Psensor, korzystam z Psensora. Sugerowany demon, taki jak małpa da da, powinien również działać, jednak wymagane są dwa progi (min. I maks.). W Psensorze (Preferencje czujnika-> Alarm) ustawiam alarm dla odpowiedniego czujnika, jeśli staje się wyższy niż górny próg (używam 85) lub niższy niż dolny próg (używam 80). W Preferencjach-> Czujniki-> Skrypt wykonywany po uruchomieniu alarmu nazywam mój skrypt heatcontrol.sh w następujący sposób:
/ALLUSER/heatcontrol.sh powersave ondemand 82
Pierwszym parametrem jest poprawny administrator_skalowania, który zmniejsza częstotliwość procesora, np. Powerave. Drugi parametr to domyślny scaling_governor - ondemand dla większości systemów. Trzeci parametr to temperatura między dolnym a górnym progiem (dokładna wartość nie jest ważna). Psensor dodaje dwa dodatkowe parametry: identyfikator czujnika i zgłaszaną temperaturę.
A to jest mój skrypt 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
Działa dobrze dla mnie (UBUNTU 14.04 LTS).
Jako nowicjusz w Linuksie i bash korzystałem z wielu zasobów, w tym:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status