Cpufreqd: Un demone per il CPU frequency scaling
Versioni Compatibili Tutte le versioni supportate di Debian |
Introduzione
La maggior parte dei processori è da tempo in grado di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo.
Alcune caratteristiche di queste CPU sono: la scarsa dissipazione di calore (minor calore emesso, a parità di frequenza operativa, indica un'efficienza elettrica superiore) e la capacità di mutare la velocità del clock in base alla effettiva necessità di potenza di calcolo.
Molti di questi si comportano egregiamente in accoppiata con GNU/Linux: vediamo in breve come configurare il nostro sistema per trarne beneficio.
Configurazione del kernel
In linea di massima il kernel fornito dai recenti CD-ROM di installazione di Debian contiene già quanto necessario ad utilizzare al meglio il nostro processore.
La compilazione manuale di un kernel più aggiornato può ovviamente dare benefici ulteriori.
I supporti che dobbiamo abilitare nel kernel sono essenzialmente:
# CPU Frequency scaling CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y
In questo modo abilitiamo la capacità del kernel di interagire con lo speed-stepping del nostro processore e cioè la sua capacità di variare la propria frequenza operativa.
È anche necessario abilitare l'ACPI nel proprio kernel (il kernel Debian ha il supporto già abilitato).
Configurazione: cpufreqd
Cpufreqd è un demone che controlla il tipo di alimentazione fornita al portatile (batteria o rete elettrica) e stabilisce quale governor utilizzare.
Installiamo cpufreqd in pieno stile Debian:
# apt-get install cpufreqd
I governor (le modalità di sfruttamento dello stepping) abilitati sono diversi a seconda del tipo di processore, è possibile verificare quali sono quelli disponibili impartendo il comando:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
Tra i più comuni troviamo "performance", "ondemand" e "powersave".
Il primo (performance) verrà utilizzato quando il portatile è alimentato tramite rete elettrica e permetterà il funzionamento costante a piena frequenza, mentre il secondo (ondemand) interverrà quando il portatile è alimentato tramite batteria e scalerà la frequenza del processore fino a circa il 50% del suo totale, il terzo (powersave) interverrà con l'alimentazione a batteria riducendo la frequenza al minimo possibile.
Le frequenze disponibili si possono sapere impartendo il comando:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
Il file di configurazione di Cpufreqd è /etc/cpufreqd.conf, dove all'interno potrete modificare a vostro piacimento le configurazioni presenti anche se di default propone una soluzione standard che va bene per molti.
A volte si rende necessaria una modifica al file /etc/default/cpufreqd
, per indicare il giusto modulo, di seguito il mio file di configurazione:
# Cpufreqd startup configuration # CPU kernel module. # Leave empty if you wish to load the modules another way, # or if CPUFreq support for your cpu is built in. CPUFREQ_CPU_MODULE="" # Governor modules. # A list separated by spaces. They are needed by cpufreqd # to load your policies. The init script can automatically # try to load them. Leave empty to disable loading governor # modules at all, use "auto" to let the script do the job. CPUFREQ_GOV_MODULES="powersave"
Se il modulo del kernel non viene caricato automaticamente, a seconda del processore è possibile utilizzare "acpi_cpufreq" o uno degli altri driver in /lib/modules/$(uname -r)/kernel/drivers/cpufreq
.
Per verificare che tutto sia a posto e che il modulo sia caricato correttamente all'avvio, si consiglia la consultazione del file /var/log/boot .
Nel caso il log non sia presente, installare il pacchetto bootlogd
.
Guida scritta da: keltik 15:16, Set 28, 2005 (EDT) | Debianized 60% |
Estesa da:
| |
Verificata da:
| |
Verificare ed estendere la guida | Cos'è una guida Debianized |