Potrebbe non bastare:
Installai linux ormai anni fa, la prima distribuzione che avevo visto era fedora-3... io installai la 4 mi are di ricordare.
Non c'era verso di far tacere la ventola del mio pentium 4 da 3.2 GHz.
Ho cercato per tantissimo tempo ma nessuno era stato in grado di darmi una mano, e in google trovavo risultati troppo incasinati per capirci qualcosa, non sapevo nulla di linux, kernel, scaling ecc ecc.
Poi piano piano ho deciso con pazienza di capirci qualcosa.... la motivazione era semplice: col casino che faceva la ventola non potevo usare linux sul portatile....macchina principale che uso tuttora.
Piano piano ho così cercato informazioni e ho risolto:
Il kernel che usava fedora era compilato senza specificare una particolare famiglia di cpu, ma stava sul generico... e giustamente direi. Ho allora letto alcune guide sulla compilazione del kernel, cosa significa perchè farlo e come si fà.
Alla fine ho eseguito la seguente scaletta:
1- ricompilare il kernel specificando il tipo di processore o comunque la famiglia che più si avvicina al modello della mia cpu
2- nel mio caso ho attivato anche l'smp che fa vedere al sistema 2 cpu... Il mio processore a quanto pare necessita di questa specifica per poter controllare lo scaling.
3- scegliere un driver di scaling adatto al modello di cpu, nel mio caso acpi-cpufreq, è un driver un po' generico ma aquanto pare è quello che meglio si addice alla mia cpu... l'ho messo come modulo, ho escluso tutti gli altri anche perchè non fungono col mio processore e ne ho impostato il caricamento all'avvio.
4- Poi ti riporto la gestione dello scaling così come leggo nel mio config:
Codice: Seleziona tutto
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
Ecco, mi pare che non ci siano altri punti da specificare er quanto riguarda la configurazione kernel.
5- Con questo kernel avvio e riesco a controllare la cpu:
io uso il pacchetto cpufrequtils che comprende tra le altre l'applicazione cpufreq-info che ti mostra gli step che il driver scelto riesce a gestire per lo scaling della frequenza del processore.
Inoltre c'è cpufreq-set che consente di settare govrnors vari, o direttamente un valore della frequenza che leggi da cpufreq.info. Io metto tutto al minimo manualmente lanciando il comando cpufreq-set attraverso rc.local:
Codice: Seleziona tutto
cpufreq-set -f 1.86GHz -c 0
cpufreq-set -f 1.86GHz -c 1
Come vedi devo agire su le due cpu fittizie (configurazione kernel con smp).
Fine, in questo modo, riesco a forzare la mia cpu a girare sempre al minimo possibile. Poi se la carico particolarmente con varie applicazioni (tipicamente flashplayer e simili, ma anche avvio di programmi come firefox ecc ecc) ecco che il numero di giri della ventola aumenta un po', ma avviato il tutto torna a girare più piano e comunque la situazione risulta sempre vivibile.
Rovescio della medaglia: ho la cpu che gira ad una frequenza di 1.86 GHz, su una potenzialità di 3.2 Ghz.
La soluzione sarebbe scelgiere una configurazione più flessibile impostando un governor che prevede scaling attivo della frequenza, del tipo: "se non stai facendo nulla stai al minimo, se invece sei sotto pressione vai al massimo e scala i vari step di frequenza disponibili".
Ci sono a questo proposito governors tipo "ondemand" che dovrebbero fare proprio quello, tuttavia io ho riscontrato che se lo setto e avvio firefox, la cpu va al massimo, la ventola fa molto più casino ma il problema è che poi non ritorna ai valori normali di quiete, o comunque non ci torna abbastanza in fretta.
Così preferisco andare manualmente col governor userspace e se mi serve più cpu del solito settare manualmente con cpufreq-set lo step congruente con il lavoro che sto facendo...tipo se devo compilare un kernel, metto la frequenza al massimo e via. Quando poi ha finito rimetto al minimo. Non è molto elegante ma sicuramente efficace se si è davanti al PC.
Come detto altre volte. Potrebbe essere che ci siano configurazioni migliori di questa per il mio P4.3.2GHz. Quindi prendi quanto detto come un esempio di scaletta di cose da fare per arrivare a gestire la cpu... sulla base unicamente della mia esperienza, sia ben chiaro.
Se qualcuno ha le idee più chiare di me non ha che da farsi avanti e descrivere meglio di quanto ho potuto fare io la faccenda.
A titolo informativo, solo la slack-12.1 sembrava inizialmente in grado di rendermi controllabile la cpu (montava un kernel huge che Pat compila con smp attivo). In ogni caso ho ricompilato il kernel come al solito. Tutte le altre distribuzioni hanno sempre fatto a pugni con la mia strbeneta ventola e la soluzione che ho trovato è sempre stata la stessa: quindi riconfigurazione e ricompilazione kernel, caricamento driver opportuni e controllo della cpu con cpufreq-set.
Bisogna dire che la mia cpu non ha un driver specifico di gestione dello scaling (il driver che uso acpi-cpufreq fa quel che può, ma non è tagliato apposta sul mio P4 direi) e che la configurazine del mio portatile con un P4-3.2GHz non è prpriamente tipica per un portatile, per cui la ventola rumorosa è un aspetto intrinseco per come è fatto il mio PC.
In altre parole, la prova di mille distribuzione ritengo sia una perdita di tempo: l'hardware viene gestito dal kernel, è da lì che devi partire per adattare il pinguino al tuo processore secondo me.