Risparmio energetico: cosa usare?

A volte, quando mi trovo davanti un nuovo PC su cui voglio abilitare il risparmio energetico, mi trovo a domandarmi quale sia il modulo del kernel giusto da caricare, vista la diversità tra il nome del driver e quello che il produttore dà al chip in questione. Ecco quindi una lista dei moduli per le CPU più comuni:

  • powernow_k6: per le CPU AMD K6 mobile (K6-2+ e K6-3+)
  • powernow_k7: per AMD Athlon, Duron e i Sempron a 32 bit
  • powernow_k8: per le CPU AMD a 64 bit: Athlon 64, Turion 64, Sempron 64, Opteron 64
  • p4_clockmod: per pentium 4, Celeron D, Pentium D, Celeron M
  • speedstep_centrino: per Pentium M (Centrino), Core Duo, Core 2 Duo
  • longrun: per CPU Transmeta
  • longhaul: per CPU Via Cyrix (quelli delle Epia, per esempio)
  • e_powersaver:per CPU VIA C7

Purtroppo ho scoperto anche che il p4_clockmod che devo usare per il mio Pentium-D non risparmia energia, ma aiuta solamente a ridurre la temperatura.

Per automatizzare la gestione del frequency scaler ci sono diversi programmi, ma quello che trovo migliore è powernowd che, nonostante il nome, è compatibile con tutte le CPU, perché non è altro che un’interfaccia al sysfs del kernel, che si occupa di tutto. Powernowd non fa altro che verificare il carico sulla CPU a intervalli costanti (configurabili, di default una volta al secondo) e, se sale oltre un certo limite (di default 80%, io l’ho impostato al 50%) aumenta la frequenza della CPU secondo un algoritmo, anch’esso configurabile (di default schizza al massimo e poi scende lentamente, ma si può impostare al contrario, oppure che salga e scenda gradualmente). Quando l’utilizzo scende sotto una certa soglia (di default 20%) cala la frequenza secondo l’algoritmo impostato. Non ha un file di configurazione, solo alcuni semplici flag che, in Debian, si impostano in /etc/default/powernowd in modo che lo script di avvio li trovi.

Mentre testavo questi aggeggini mi sono capitati davanti anche due pacchetti deb molto utili: cpufrequtils e sysfsutils. Il primo fornisce alcuni comandi per interrogare e impostare i parametri di cpufreq, appunto. Usando powernowd non dovrebbero essere necessari (gestisce tutto lui), ma cpufreq-info può essere utile per avere informazioni dettagliate sulle capacità di risparmio energetico della CPU.

sysfsutils fornisce il comando systool per interrogare i vari sottosistemi riconosciuti dal kernel attraverso il file-system virtuale /sys. Onestamente non l’ho usato molto, e non saprei nemmeno immaginarne un uso, che sicuramente c’è per utilizzi avanzati.