Abilitare il risparmio energetico delle schede audio HDA Intel sui portatili

Mer, 06/07/2011 - 23:29
Ritratto di aksaf

Abilitare il risparmio energetico delle schede audio HDA Intel sui portatili

Inviato da aksaf 1 commento

Ho notato che sul mio portatile quando lo si sconnette dalla rete elettrice la scheda audio integrata HDA Intel non va in modalità risparmio energetico.
La soluzione provvisoria sarebbe di forzare ad 1 il valore di /sys/module/snd_hda_intel/parameters/power_save (#  echo 1 > /sys/module/snd_hda_intel/parameters/power_save) ma una soluzione più elegante e, soprattutto, meno effimera, consiste nel modificare il file /usr/lib/pm-utils/power.d/intel-audio-powersave, almeno per la cara openSUSE 11.4.

Il file /usr/lib/pm-utils/power.d/intel-audio-powersave infatti si presenta(va) così (saltare alle righe >= 20 se si ha fretta):

     1  #!/bin/sh
     2
     3  # Allow the driver to put the audio hardware to sleep
     4  # once the driver has been inactive for a second.
     5  # This hook should work with at least the ac97 and hda codecs.
     6
     7  INTEL_AUDIO_POWERSAVE=${INTEL_AUDIO_POWERSAVE:-true}
     8
     9  help() {
    10  cat <<EOF
    11  --------
    12  $0: Intel Audio powersave parameters.
    13
    14  This hook has 1 tuneable parameter. 
    15  INTEL_AUDIO_POWERSAVE = controls whether we will try to save power on battery.
    16  Defaults to true.
    17
    18  EOF
    19  }
    20
    21  audio_powersave() {
    22      [ "$INTEL_AUDIO_POWERSAVE" = "true" ] || exit $NA
 -->23      for dev in /sys/module/snd_*/parameters/power_save; do
    24          [ -w "$dev/parameters/power_save" ] || continue
 -->25          printf "Setting power savings for $s to %d..." "$dev##*/" "$1"
    26          echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed.
    27      done
    28  }
    29
    30  case $1 in
    31      true) audio_powersave 1 ;;
    32      false) audio_powersave 0 ;;
    33      help) help;;
    34      *) exit $NA
    35  esac
    36
    37  exit 0

Notare le righe 23 e 25, per cui se si prova ad avviarlo direttamente con # intel-audio-powersave true o attraverso # /usr/sbin/pm-powersave true /sys/module/snd_hda_intel/parameters/power_save continua a valere 0 e anche un'occhiata a /var/log/pm-powersave.log lo dimostra (o meglio non mostra il messaggio "Setting power savings for...", come ci si aspetterebbe)...
In breve: modificando le 2 righe di sopra in queste (dopo un backup del file /usr/lib/pm-utils/power.d/intel-audio-powersave in /usr/lib/pm-utils/power.d/intel-audio-powersave_ORIG-SAVE):

23    for dev in /sys/module/snd_*; do
25       printf "Setting power savings for %s to %d..." "${dev##*/}" "$1"

e rifacendo le stesse prove di sopra le cose sembrano andare a posto.
... E finalmente la cara scheda sonora va a riposo quando si stacca la spina Smile

P.S.: Con un minimo di indagine risulta che il file che si ottiene è identico all'/usr/lib/pm-utils/power.d/intel-audio-powersave di Ubuntu Narvalo... saperlo prima Smile





Commenti

Ritratto di aksaf
#1

Inviato da aksaf il Gio, 07/07/2011 - 08:57.

Re: Abilitare il rrisparmio energetico delle schede audio ...

Aggiornamento:


si potrebbe voler spostare il file di backup altrove, per non eseguirlo ad ogni cambio di stato di pm-powersave (# mv /usr/lib/pm-utils/power.d/intel-audio-powersave_ORIG-SAVE /root/). Si tratta solo di uno scrupolo, dato che in pratica il vecchio script non fa nulla (di male).