Guida facile al Cpu Scaling

Molti nuovi utenti si lamentano di Linux perchè consuma più corrente di Windows. Ciò è parte verità, ma come sempre l’open source offre molti metodi per limitare questo consumo. La guida seguente sarà un riassunto della precedente, ma fatta nella chiave più semplice che ci sia. La consiglio a tutti quelli che hanno un processore che supporti il Cpu Scaling. Per gli utenti che usano notebook, vi consiglio di seguire la guida più completa perchè ha altre funzioni per la batteria e lo schermo, ma se intanto volete provare seguite pure questa che è meno invasiva.

Innanzitutto controllate che la vostra CPU supporti il Cpu Scaling. Normalmente lo supportano tutti gli ultimi processori a partire dagli ultimi P4. Se non lo sapete cercate nel sito del produttore. E se ancora non lo scoprite, riavviate il pc e spulciate il bios fino a trovare una funzione che si chiama “SpeedStep” per gli Intel o “Cool’n'quite” per gli AMD e attivatela.

Ora mettete sulla barra di Gnome l’applet “Variazione frequenza CPU”. Per fare ciò cliccate con il destro sulla barra, selezionate “Aggiungi al pannello…” e trovate l’applicazione sotto “Sistema & Hardware”. Probabilmente iniziere a vedere una barra verde che va su e giù.

Il passo seguente farà una magia che adesso non capirete probabilmente. Da terminale date la seguente riga

sudo chmod +s /usr/bin/cpufreq-selector

Bene, ora il passo decisivo. Bisogna modificare un file, quindi aprite il terminale e date

sudo gedit /etc/modules

E aggiungete alla fine la riga che trovate sotto al modello del vostro processore nella lista seguente

AMD Sempron/Athlon/MP ( K7 )
Socket Types: A, Slot A

powernow-k7

AMD Duron/Sempron/Athlon/Opteron 64 ( K8 )
Socket Types: 754, 939, 940, S1 ( 638 ), AM2 ( 940 ), F ( 1207 )

powernow-k8

Intel Core Duo

speedstep-centrino

Intel Pentium M

speedstep-centrino

Intel Pentium 4

p4_clockmod

Se nessuna delle precedenti andrà, provate con la seguente

acpi-cpufreq

Salvate e riavviate il pc. Se tutto è andato bene, clickando sull’applet aggiunta prima con il sinistro potete scegliere il governor per il cpu scaling. Consiglio Ondemand per i desktop o i laptop collegati alla corrente e conservative per i desktop a batteria. Provate e fatemi sapere!

P.S.: se vi si attivano troppi gradini di scaling e i primi vanno troppo piano (per esempio io i primi due da 425 e 850mhz non li uso), potete impostare la frequenza minima così.

sudo gedit /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

E cambiare la frequenza che trovate con la minima che volete. Salvate e chiudete. In questo modo lo scaling partirà dal gradino subito sopra.

CPU scaling a portata di click

Visto che l’articolo sul CPU scaling che ho tradotto dal wiki inglese è parecchio gettonato credo che molti utenti vogliano cambiare governor o stabilire la frequenza del processore a mano senza ricorrere alla riga di comando e senza ricordarsi particolari codici. Bene, leggendo dal blog di AlgA Tux, ho trovato una comoda applet che si integra alla barra di Gnome e che consente proprio questo.

Ecco qui i pacchetti. Lo sto provando e è molto comodo. Provatelo!

Aggiornamento.

Sotto suggerimento di Loopback mi sono dato da fare per capire come avere la stessa funzionalità senza installare nulla di nuovo. Ebbene è più facile del previsto. Date

sudo chmod +s /usr/bin/cpufreq-selector

Poi aggiungete alla barra di GNome l’applet “Variazione frequenza CPU” che trovate sotto “Sistema & Hardware”, chiudete tutto e fate click sull’icona che è apparta sulla barra…risultato

Cpu scaling

Appena installato Ubuntu, ho messo i controlli dell’utilizzo della CPU e della RAM nella tray. Con mio stupore mi sono accorto che c’era anche il monitoraggio della frequenza e con questo ho avuto la dimostrazione che il kernel Linux pratica di dafault il CPU scaling. Per non lo sapesse, ciò significa che il sistema, quando lavora poco, fa calare la frequenza del processore, con il risultato di scaldare di meno e consumare meno energia (funzione molto comoda quindi a qui ha un portatile). Il mio P4 oscillava però solo tra 3 frequenze ovvero loa massima (3,4 ghz) e i 2,8 ghz. Perplesso mi sono messo in cerca e ho trovato in una guida inglese una bella guida che mi accingo a tradurre di per attivare a pieno questa funzione.

La seguente guida sostituirà powernowd con cpufreqd. La differenza tra i due programmi è che il primo si adegua solo al carico del sistema, mentre il secondo anche allo stato della batteria e di altri fattori. Questa guida quindi, di per sè, è indicata ai portatili. Per gli utenti che non hanno voglia di seguire tutta la procedura, vogliono solo provare o hanno un desktop, consiglio quest’altra guida che attiva a pieno powernowd.

Prima di tutto, accertatevi che la vostra CPU e scheda madre supporti il CPU scaling. Per fare ciò spulciate tra la configurazione del BIOS fino a quando trovate la voce “Cool’n'Quiet” se avete AMD o “SpeedStep” se avete Intel e attivate tale opzione. Entrate in Ubuntu e lanciate il terminale. Adesso si lavora!
1 Innanzitutto bisogna disinstallare powernowd e quindi

sudo apt-get remove powernowd

2 Bisogna disinstallare anche un altro programma, cpudyn

sudo apt-get remove cpudyn

3 Ora dovete informarvi sul tipo della vostra CPU o se non lo sapete cercate il nome digitando da terminale

cat /proc/cpuinfo

Di seguito elenco i possibili processori supportati. Quando lo trovate ricordatevi il comando scritto sotto di esso.

AMD Sempron/Athlon/MP ( K7 )
Socket Types: A, Slot A

powernow-k7

AMD Duron/Sempron/Athlon/Opteron 64 ( K8 )
Socket Types: 754, 939, 940, S1 ( 638 ), AM2 ( 940 ), F ( 1207 )

powernow-k8

Intel Core Duo

speedstep-centrino

Intel Pentium M

speedstep-centrino

Intel Pentium 4

p4_clockmod

Nel caso nessuno dei precedenti soddisfi le vostre esigenze provate questa riga

acpi-cpufreq

4 Bene, passiamo alla configurazione. Date questo comando per farvi mostrare i governatori installati

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

Dovreste ottenere una riga come questa

powersave conservative ondemand performance

5 Ora dobbiamo far partire i moduli all’avvio. Dal terminale bisogna modificare le ultime linee all’interno di /etc/modules. Quindi date

sudo nano /etc/modules

e aggiungete le seguenti righe

cpufreq_conservative
cpufreq_ondemand
cpufreq_powersave
cpufreq_stats
cpufreq_userspace

Come ultimissima riga aggiungete quella riguardante la vostra CPU, scelta nel punto 3

6 Esiste un semplice tool per usare i moduli, installiamolo dando

sudo apt-get install cpufrequtils

per testare che lavori date

cpufreq-info

7 Ultimo passo, installare un governatore. Il governatore è l’insieme di regole che gestirà il CPU. I principali sono 4, adesso ve li spiego

ondemand: in base al lavoro che fate lui aumenta o diminuisce la frequenza. La velocità di cambiamento è molto rapida.

conservative: è simile a ondemand ma non salta di botto, è come se aspettasse un po’. La consiglio a chi ha portatili

performance: tiene sempre la potenza al massimo

powersave: come dice il nome allunga la vita delle batterie fuori maniera, infatti una la frequenza minima sempre

Io uso di solito ondemand e mi trovo bene. Per settarlo dovete dare

cpufreq-set -g ondemand

Se il vostro pc è dotato dell’ HT o è un dual-core, dovete impostare entrambe le CPUs.

cpufreq-set -c 1 -g ondemand

Per vedere quante CPU avete date da terminale

ls /sys/devices/system/cpu/

8 Rendere il governatore selezionato il predefinito al boot. Date

sudo nano /etc/default/cpufrequtils

E cambiate questa riga

ENABLE="false"

in

ENABLE="true"

Una precisazione. Se dopo aver attivato avete fastidi perchè per passare da una frequenza bassissima a una più alta qualche millisecondo passa, vi consiglio di limitare il range di frequenze in cui il governor lavora. Per fare ciò basta indicare le frequenze volute (espresse in Hz) sempre nel file sopracitato.

Ecco qua, il lavoro è finito, se tutto è andato per il verso giusto ora sarete come me, con un P4 che lavora a 425 mhz e produce 5 gradi in meno di calore! Spero di essere stato utile!

Aggiornamento: per passare velocemente da un governor all’altro o settare una frequenza particolare leggere quest’altro articolo.