Cpufreqd: Un demone per il CPU frequency scaling
Versioni Compatibili ERRORE: valore non valido ( Tutte le versioni di Debian )! Vedi qui. |
Introduzione
Molti processori studiati per PC portatili sono 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 CDROM 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" e "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) interverra con l'alimentazioen 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 modifcare 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="acpi_cpufreq" # 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"
Come altenative a "acpi_cpufreq" è possibile utilizzare a seconda del tipo di processore
- powernow_k7
- speedstep-centrino
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 abilitarlo modificando il file /etc/default/bootlogd come riportato:
# Run bootlogd at startup ? BOOTLOGD_ENABLE=Yes
Conclusioni
L'utilizzo di questa tecnologia permette al mio portatile un'autonomia, con un utilizzo non gravoso (uso tipico: ufficio), di circa 3 ore; mentre con MS Windows - avvantaggiato da tutta una serie di altre utility e di driver specifici - l' autonomia media era (prima di essere piallato senza rimpianti) 3,20 ore: non male dopotutto per GNU/Linux!
keltik 15:16, Set 28, 2005 (EDT)
barabb@ 03:27, 12 dic 2010 (CET)