Come abilitare le protezioni per la temperatura della CPU


9

Il mio desktop ha una brutta abitudine. Quando ho diverse applicazioni ad alta intensità in esecuzione e la mia CPU è al massimo utilizzo per un periodo di tempo, la temperatura interna aumenta e il mio computer si spegne automaticamente.

Esiste un modo per monitorare (scrivere uno script) la temperatura della mia CPU in background e ricevere una sorta di avviso quando supera una certa temperatura?

Sto eseguendo Opensuse con dwm come gestore delle finestre. Di solito uso sensorsla temperatura della mia CPU.


1
Sotto Linux o alcune altre varianti unix? Il metodo per ottenere la temperatura o essere informato delle variazioni di temperatura differisce tra le varianti unix.
Gilles 'SO- smetti di essere malvagio' il

Mio cattivo @Gilles, ho aggiunto informazioni alla mia domanda
n0pe

Dopo aver visto l'innalzamento della temperatura, dovresti limitare la CPU.
Nils,

Risposte:


5

È possibile scrivere uno script per visualizzare la temperatura nella barra di stato di dwm, ad esempio:

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

Il tuo sensorsoutput potrebbe essere più complesso, a seconda della tua configurazione: funziona su una delle mie macchine:

 awk '/temp1/ {print +$2"°C"}' <(sensors)

Se esegui la patch in statuscolours , puoi anche far sì che l'output cambi colore mentre i $tempvalori di hit sono più alti ...

Arch Wiki ha un'introduzione alla configurazione di uno script della barra di stato di base e il sito dwm include un esempio .xinitrc .

Puoi vedere la mia dwm-statussceneggiatura per maggiori dettagli: http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status


Questa è davvero una grande idea a cui non ho pensato. Non ho mai avuto il tempo di giocare con la barra di stato di DWM, quindi sarà divertente. Vedrò cosa posso gestire e commenterò.
n0pe

Ha funzionato perfettamente e ora ho una barra di stato ben personalizzata :)
n0pe

Eccellente: ti dà un po 'di spazio per lavorare con ...
Jasonwryan,

2

Ho esattamente lo stesso problema e quello che uso è il pacchetto "cpufreqtools" (o semplicemente "cpufreq" - non ricordo!).

Ti dà due comandi: cpufreq-info e cpufreq-set

cpufreq-info elenca la velocità attuale della CPU e le velocità min e max. e anche i passaggi disponibili.

cpufreq-set è più utile per te perché puoi limitare la velocità massima che la tua CPU raggiungerà mai.

La mia CPU soggetta a surriscaldamento ha le velocità disponibili di 800 MHz, 1,60 GHz e 1,80 GHz. Quindi, quello che faccio è limitarlo a 1,60 GHz in questo modo:

cpufreq-set --max 1.60Ghz

Funziona come un fascino!

Se sei più avanzato nelle tue abilità Linux, potresti persino inserirlo in uno script di avvio in modo che venga sempre eseguito non appena il tuo Linux viene avviato.

In bocca al lupo.


cpufrequtils (ubuntu 16.04).
Green Tree,

1

Ho creato uno script per affrontare direttamente questo tipo di problema di surriscaldamento. Limitare la CPU in base alla temperatura desiderata. Funziona automaticamente in background in questo modo:

sudo ./temp_throttle.sh 80

Questo comando rallenta i core della CPU quando raggiungono gli 80 gradi Celsius. Quando la temperatura scende, i core della CPU potranno funzionare di nuovo più velocemente. Puoi trovare temp_throttle qui .


1
In futuro, non aspettarti che tutti eseguano Ubuntu con la sua politica sudo-everything predefinita. O menzionare che si deve consentire lo script nella configurazione sudo o (meglio) semplicemente scrivere che richiede i privilegi di root che possono essere raggiunti tramite sudo. Oppure - su Linux - descrivere le capacità (come nella capabilities(7)pagina man) richieste.
peterph,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.