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.


Ottobre 8, 2007 alle 4:11 pm
[...] a portata di click Ottobre 8th, 2007 — sonoffree Visto che l’articolo sul CPU scaling che ho tradotto dal wiki inglese è parecchio gettonato credo che molti utenti vogliano cambiare [...]
Ottobre 14, 2007 alle 2:07 am
Bellissimo! Stavo per fare una guida simile, meno male che ho cercato prima!
Ti consiglio questo articolo di Gentoo, che spiega come modificare il comportamento del cpufreqd tramite il file cpufreqd.conf!
http://www.gentoo.org/doc/en/power-management-guide.xml#doc_chap3
Ottobre 14, 2007 alle 11:16 am
Ottimo, grazie della segnalazione! Appena esce la Gutsy stabile provo tutto!
Ottobre 19, 2007 alle 7:48 pm
[...] 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 [...]
Novembre 10, 2007 alle 3:15 pm
E’ possibile cambiare gli step di frequenze predefinite? Io ho solo 800 e 1600 Mhz. Cmq non ho il file /etc/default/cpufrequtils, lo creo?
Novembre 10, 2007 alle 6:19 pm
un’altra domanda, se imposto conservative mi resta fisso a 800Mhz, se imposto onDemand mi resta fisso a 1600 Mhz, credo ci sia qualcoa che non va perchè prima usando powernowd le cose funzionavano!
Novembre 10, 2007 alle 10:13 pm
Ma non ti avevo detto di seguire l’altra? Comunque gli step non si possono cambiare, sono imposti da come può lavorare il processore teoricamete. OnDemand sceglie in base al carico di lavoro, sicuro che non stai facendo qualcosa?
Novembre 10, 2007 alle 10:42 pm
Che vuol dire che mi avevi detto di seguire l’altra? Io ho seguito la tua e come da te suggeritomi ho rimosso powernowd in favore di cpufreqd credendo che potessi migliorare le prestazioni di risparmio energetico..ma non è così perchè ondemand e conservative sono opzioni inutili per il mio processore.
Novembre 11, 2007 alle 9:03 am
Non ti avevo linkato la guida facile? Powernowd comunque controlla anche la batteria, l’illuminazione dello schermo e molti fattori che powernowd non fa. Poi è questione di gusti
Dicembre 8, 2007 alle 8:02 pm
come mai sui portatili consigli conservative al posto di on demand?
ciao
Dicembre 9, 2007 alle 6:17 pm
Ondemand fa scatti più rapidi e sale di frequenza anche se il cambio potenza necessario è minimo. COnservative è più progressivo
Dicembre 10, 2007 alle 8:37 pm
ah ok, ma la consigli anche se la cpu dispone di sole 2 frequenze tipo 800 mhz e 1600 mhz?ciao
ps. son maxresti su ubntu-it.org
ciao
Dicembre 10, 2007 alle 8:38 pm
Con quei due step lascia ondemand. Praticamente andrà sempre a 1600 tranne quando non fai proprio niente
Dicembre 12, 2007 alle 11:30 pm
ma per i turion x2 che si deve usare??e che comando vogliono?
Dicembre 17, 2007 alle 2:48 pm
Possibile che cpufrequtils non parta all’avvio?
Dando “sudo /etc/init.d/cpufrequtils start” funziona e viene caricato il “governor” corrispondente…
Ma all’avvio non sembra far nulla…
Avendo specificato nel file di configurazione “conservative”…
Dicembre 17, 2007 alle 4:07 pm
L’ultima volta che l’ho usato mi sono accorto che mi partiva sempre e solo con il governor ondemand, qualsiasi cosa facessi. Poi non ho più indagato perchè è arrivato il freddo.
Dicembre 17, 2007 alle 6:30 pm
AH… Mitico… Stavo impazzendo…
E ancora non ho capito se cpufreqd e cpufrequtils si pestano i piedi a vicenda…
Ho provato anche a editare il file di configurazione di cpufreqd ( /etc/cpufreqd.conf ) ma non ho ottenuto risultati…
Gennaio 1, 2008 alle 3:47 pm
A me il comando cpufreq-info restituisce
—————————————————————————
analisi della CPU 0:
modulo p4-clockmod
CPU per le quali e` necessario cambiare la frequenza contemporaneamente: 0
limiti hardware: 350 MHz – 2.80 GHz
frequenze disponibili: 350 MHz, 700 MHz, 1.05 GHz, 1.40 GHz, 1.75 GHz, 2.10 GHz, 2.45 GHz, 2.80 GHz
gestori disponibili: userspace, powersave, ondemand, conservative, performance
gestore corrente: la frequenza deve mantenersi tra 2.80 GHz e 2.80 GHz.
Il gestore “performance” puo` decidere quale velocita` usare
in questo intervallo.
la frequenza attuale della CPU e` 2.80 GHz.
—————————————————————————
Quindi il processore non può variare la frequenza?
C’è un modo per dare al gestore un altro intervallo?
Grazie
Gennaio 1, 2008 alle 4:14 pm
Dopo averlo settato in “conservative” torna alla modalità “performance” da solo, senza che io faccia nulla, e anche il comando restituisce performance…. in effetti secondo l’applet variazione di frequenza il processore va sempre al 100%, ma a me non sembra che vada tanto, e il monitor di sistema (applet) dice che il processore è in uso tra il 10 e il 30%, la temperatura è alta ma dopo un uso di 4-5ore consecutive, e la ventola è accesa ma non al massimo.
Con powernowd l’applet mi segnalava una variazione nella frequenza e riuscivo a settare la modalità…
il risultato di modprobe
sudo modprobe acpi_cpufreq
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.22-14-generic/kernel/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.ko): Device or resource busy
Forse dovevo tenermi powernowd?
Gennaio 1, 2008 alle 4:50 pm
Forse ho trovato
daniele@acertravelmate2501lmi:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
2800000
daniele@acertravelmate2501lmi:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
2800000
sai come cambiare quei files?
Gennaio 1, 2008 alle 5:22 pm
risolto, ho editato con nano i files in /sys/devices/system/cpu/cpu0/cpufreq
e adesso funziona, vedremo al riavvio.
Grazie
Gennaio 1, 2008 alle 5:32 pm
è inverosimile
i valori della applet sono tornati come prima, confermati dai comandi, i files editati si sono riscritti da soli…
Forse dovrei provare con cupdyn, visto che ho un pentium 4?
Gennaio 5, 2008 alle 11:28 am
Ho notato anche io questo problema passando da Feisty a Gutsy (ah, scusa ma ero in vacanza). Adesso avevo tolto, ma avevo modificato i valori che hai detto 3 post fa da root (con su, non sudo altrimenti non mi andava) e avevo fatto uno script perchè lo rifacesse a ogni riavvio. Però è strana la cosa
Gennaio 15, 2008 alle 5:20 pm
io non ho messo niente in etc/modules però funziona tutto lo stesso…grazie comunque dell’articolo!
Gennaio 23, 2008 alle 5:18 pm
io uso Fedora 8 e ho provato a seguire questa guidama ci sono delle cose che non mi tornano…
il file: etc/modules
in Fedora è: etc/modprobe.conf ??
l’ho letto da qualche parte ma non sono per niente sicuro, in ogni caso ho aggiunto lì la riga inerente al processore (powernow-k8) poi c’è un’altra cosa diversa, non ho questi governor:
powersave conservative ondemand performance
ma solo: ondemand userspace performance
Oltretutto (a parte il fatto che non so che faccia) il governor userspace non mi compare sulle preferenze di variazione della frequenza CPU.
Ultimissima cosa: il governor di default è ondemand ed è anche l’unico che posso usare in quanto gli altri non risco a selezionarli…è perchè devo essere root? e come faccio a poterli utilizzare anche da utente?
Gennaio 23, 2008 alle 5:49 pm
Allora, premetto che non ho mai provato Fedora oltre a qualche click. In teoria, modprobe.conf è tutt’altra cosa per la compilazione dei moduli del kernel, poi non hai gli altri governor perchè probabilmente il kernel di default di Fedora non li comprende come moduli e per cambiare governor, normalmente, bisogna essere root. Comnque ondemand è di default perchè mediamente va bene a tutti. Ti conviene chiedere nel forum di Fedora per queste cose, avendo usato solo Ubuntu non ti sarei di tanto aiuto
Gennaio 24, 2008 alle 5:09 pm
Ok grazie lo stesso!
Mi sa che ho toccato cose che non dovevo toccare…ora non mi parte più il gestore dei pacchetti e neanche quello degli aggiornamenti! ghgh
Febbraio 3, 2008 alle 3:14 pm
Complimenti davvero per la guida..mi è stata utilissima.. posso fare una domanda..da perfetto profano? ma non sottopone a più stress questo cambio continuo di frequenza che non lasciare sempre il processore alla frequenza massima..? Mi scuso se la domanda è un pochino stupida ma era semplicemente una mia semplicissima curiosità..ringrazio per le risposte!
Fabio
Febbraio 3, 2008 alle 6:36 pm
Oddio, se l’opzione è stata messa non vedo perchè dovrebbe stressare il processore. Poi non so che dirti.