Cpufreqd: Un demone per il CPU frequency scaling

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Debian-swirl.png 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="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 alternative 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, installare il pacchetto bootlogd .

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!




Guida scritta da: keltik 15:16, Set 28, 2005 (EDT) Swirl-auth20.png Debianized 20%
Estesa da:
Mm-barabba 03:27, 12 dic 2010 (CET)
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized