sabato 5 giugno 2010

Aspire One, Xubuntu: monitorare la temperatura

Che ne dite se vi propongo un metodo per monitorare la temperatura del processore e lo stato della ventola di raffreddamento?
Tutto è nato leggendo i vari changelog del modulo "acerhdf" ed esplorando le varie cartelle del filesystem. A quanto pare è possibile stabilire lo stato della ventola di raffreddamento con il comando "cat /sys/class/thermal/cooling_device2/cur_state":

light-kun@ryuk:~$ cat /sys/class/thermal/cooling_device2/cur_state
0
light-kun@ryuk:~$

In realtà esistono altri device nella cartella come "cooling_device0" e "cooling_device1", ma solo quello sembra dare informazioni corrette! Se la ventola di raffreddamento è in funzione il comando restituisce il valore "1", altrimenti "0". Per la temperatura, invece, si può leggere il valore letto dal sensore con il comando "cat /sys/class/thermal/thermal_zone0/temp":

light-kun@ryuk:~$ cat /sys/class/thermal/thermal_zone0/temp
50
light-kun@ryuk:~$

Interessante no? Perché non integrare queste informazioni nel pannello superiore del desktop? Vi dico come fare, seguitemi. Per realizzare questo plugin personalizzato mi sono servito di Generic Monitor, un plugin di Xfce per eseguire comandi Linux! Di default questo plugin generico non è installato su Xubuntu, si può rimediarlo in pochi secondi con questo comando:

light-kun@ryuk:~$ sudo apt-get install xfce4-genmon-plugin

Procediamo con l'occorrente, che ne dite di due icone che ci indicheranno lo stato della ventola di raffreddamento:


Sul mio Aspire One uso l'icona di sopra per indicare l'evento: "la cpu non è raffreddata dalla ventola", mentre con questa:


indico l'evento: "la ventola di raffreddamento è stata azionata". E la temperatura? Faremo stampare il valore della temperatura in un piccola finestra di suggerimento ogni volta che il puntatore del mouse si sofferma sull'icona del plugin. Ho chiamato la prima icona "cpu.png" e la seconda "cooling.png", se volete seguire i comandi che a breve vi dirò è preferibile mantenere questi nomi.
Organizziamo le icone in una cartella a parte:

light-kun@ryuk:~$ sudo mkdir /opt/cputemp
light-kun@ryuk:~$ sudo mv /home/light-kun/Scaricati/cpu.png /opt/cputemp/
light-kun@ryuk:~$ sudo mv /home/light-kun/Scaricati/cooling.png /opt/cputemp/

Adesso occorre scrivere lo script che verrà eseguito da GenMon, date il seguente comando:

light-kun@ryuk:~$ sudo mousepad /usr/bin/read_temp.sh

e incollate nell'editor questo codice:

#!/bin/sh
temp=$(cat /sys/class/thermal/thermal_zone0/temp)
state=$(cat /sys/class/thermal/cooling_device2/cur_state)

if [ ${state} -eq 1 ]; then
   echo "<img>/opt/cputemp/cooling.png</img>"
else
   echo "<img>/opt/cputemp/cpu.png</img>"
fi
echo "<tool>Temperatura CPU: ${temp}C°</tool>"



Salvate il file prima di uscire, ad esempio premendo i tasti "Ctrl" ed "s". Ora bisogna assegnare allo script i permessi per l'esecuzione con:

light-kun@ryuk:~$ sudo chmod +x /usr/bin/read_temp.sh

Non ci resta che aggiungere al pannello il plugin attraverso Generic Monitor. Premere il tasto destro del mouse sul pannello superiore e dal menu selezionare la voce "Aggiungi nuovi elementi...". Dall'elenco dei plugin selezionare la voce "Generic Monitor" e premere sul bottone "Aggiungi":


Ecco come compilare i parametri richiesti da Generic Monitor:


Lo script viene eseguito ogni 5 secondi (il valore scritto nella casella in corrispondenza di "Period(s)"). Se la ventola di raffreddamento è accesa (valore di state uguale a 1) viene mostrato nel pannello l'icona che raffigura la ventola (l'icona "cooling.cpu"), altrimenti quella che raffigura la cpu (cpu.png). Sostando, invece, il mouse sull'icona del plugin (una delle due presenti in quel momento) compare un messaggio con il valore della temperatura della cpu!


E' attraverso questo script che ho scoperto che la ventola di raffreddamento si accende, a volte, 5C° prima del valore di fanon. Forse si tratta di una strategia preventiva del modulo "acerhdf", succede anche voi?
Ho sperimentato più di qualche valore, nel tentativo di trovare il giusto compromesso a seconda dell'uso. La batteria del mio Aspire One è ormai segnata da quasi due anni di attività. Uso l'Aspire One quasi sempre con l'antenna wifi accesa e fisso il livello di luminosità su 3/9. I valori che propongo di seguito si basano proprio su queste condizioni:

  • uso leggero, la cpu effettua raramente il passaggio della frequenza di clock a 800MHz, un'applicazione (leggera) in esecuzione: ad esempio un editor di testo o il browser (l'antenna wifi è accesa solo per scaricare le pagine necessarie): propongo per il "fanon" 55°C e per il "fanoff" 48°C, l'autonomia media raggiunta è stata di 92 minuti;
  • uso medio, la cpu effettua a intermittenza il passaggio della frequenza di clock a 1600MHz, almeno due applicazioni in esecuzione: ad esempio un editor di testo e un browser. Il computer viene usato per consultare pagine Internet e scrivere documenti: propongo per il "fanon" 60°C e per il "fanoff" 53°C, l'autonomia media raggiunta è stata di 78 minuti;
  • uso pesante: la cpu è quasi sempre impegnata da uno o più processi, la frequenza di clock passa la maggior parte del tempo a 1600MHz. E' l'uso più dispendioso per l'Aspire One. Questo scenario si verifica ad esempio quando usiamo giochi (come Turbo slider, NetPanzer, FooBillard e l'emulatore Snes) o vediamo filmati in streaming: propongo per il "fanon" 65°C e per il "fanoff" 59°C, l'autonomia media raggiunta è stata di 62 minuti;

Trovare il giusto compromesso non è semplice! Il problema è che più la temperatura sale e più la ventola fatica a farla scendere (sotto il valore di "fanoff"). Per l'uso pesante consiglio di avvicinare i valori di fanon e fanoff per un semplice motivo: in questo scenario la temperatura si aggirerà facilmente in un intorno che va dai 55C° ai 65C° e la ventola resterà quasi sempre accesa poichè il flusso d'aria generato non è in grado di far abbassare la temperatura. Meglio allora distanziare i suddetti di pochi gradi, in questo modo assisteremo ad una gestione della ventola ad intermittenza (piuttosto che tenerla sempre accesa!). Sono comunque soddisfatto, raggiungere dopo quasi due anni più di 60 minuti di autonomia è un buon risultato. Meglio comunque preventivare l'acquisto di una nuova batteria.

4 commenti:

  1. ciao, ho seguito la guidea e tulizzato l'applet, soltanto che al riavvio esso scompare. potresti aiutarmi ?

    RispondiElimina
  2. Quindi ad ogni riavvio, se vuoi rimettere l'applet, devi aggiungere nuovamente il plugin?
    Che distribuzione stai usando? Ricorda di salvare la sessione (mettendo il segno di spunta sull'omonima voce del menu per spegnere il computer) ogni volta che spegni il computer, forse è per questo che al successivo riavvio non trovi nulla.

    RispondiElimina
  3. sto usando xubuntu 11.10, ma non trovo il segno di spunta..

    RispondiElimina
  4. Trovi il segno di spunta per la voce "Salva la sessione per i prossimi accessi" quando dal menu "Applicazioni" selezioni la voce "Esci".

    RispondiElimina