El paquete powersave se ocupa de la
función de ahorro de energía cuando un portátil funciona en el modo de
batería. No obstante, algunas de sus funciones resultan también muy
interesantes para estaciones de trabajo o servidores, como por ejemplo el
modo suspend/standby, la función de las teclas ACPI y la activación o
desactivación automática de discos duros IDE.
Este paquete incorpora todas las funciones de gestión de energía del
ordenador y soporta cualquier hardware que utilice ACPI, APM, discos IDE y
las tecnologías PowerNow! o
SpeedStep. powersave agrupa todas las prestaciones de los
paquetes apmd, acpid, ospmd y cpufreqd (actualmente cpuspeed). Los daemons de estos paquetes no
deben ejecutarse de forma paralela al daemon de
powersave.
Incluso aunque el sistema no disponga de todos los componentes de hardware mencionados arriba (APM y ACPI se excluyen mutuamente), se recomienda utilizar el daemon de powersave para regular la función de ahorro de energía. Este daemon detecta automáticamente cualquier cambio en la configuración del hardware.
![]() | Información sobre powersave |
|---|---|
Puede obtener información adicional sobre el paquete
powersave en
| |
En general, la configuración de powersave está distribuida en varios archivos:
/etc/sysconfig/powersave/common
Este archivo contiene opciones de configuración general para el daemon
de powersave. Aquí se puede definir, por ejemplo,
la cantidad de mensajes de depuración (en
/var/log/messages) a través del valor asignado a la
variable POWERSAVE_DEBUG.
/etc/sysconfig/powersave/events
El daemon de powersave requiere este archivo para
procesar los sucesos (events) que se
producen en el sistema. A estos sucesos se les puede asignar acciones
externas o internas (ejecutadas por el daemon). Se habla de una acción
externa cuando el daemon intenta activar un archivo ejecutable guardado
en /usr/lib/powersave/scripts/. En cuanto a las
acciones internas predefinidas, son las siguientes:
ignore
throttle
dethrottle
suspend_to_disk
suspend_to_ram
standby
do_suspend_to_disk
do_suspend_to_ram
do_standby
throttle ralentiza el procesador en la medida definida
en POWERSAVE_MAX_THROTTLING. El valor asignado a esta
variable depende del perfil usado en ese momento.
dethrottle hace que el procesador recupere su máxima
potencia. suspend_to_disk,
suspend_to_ram y standby provocan
el evento del sistema para el modo sleep. Las tres
últimas acciones se ocupan en general de desencadenar el modo
sleep, pero siempre deben asignarse a eventos del
sistema concretos.
Los scripts para ejecutar los eventos se encuentran en el directorio
/usr/lib/powersave/scripts:
Notificación por medio de la consola, X Window o una señal acústica de que se ha producido un evento.
Activa el salvapantallas.
Muy útil si la imagen está distorsionada tras un suspend/standby.
Guardar la configuración y cerrar la sesión de GNOME, KDE u otro gestor de ventanas.
Guardar la configuración de GNOME o KDE y apagar el sistema.
Si por ejemplo se han asignado los siguientes valores a la variable
POWERSAVE_EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk
do_suspend_to_disk", tan pronto como el usuario dé a
powersaved la orden para el modo
Suspend to disk, se ejecutarán los scripts o acciones
especificados en el mismo orden en el que aparecen. El daemon inicia el
script externo
/usr/lib/powersave/scripts/prepare_suspend_to_disk
y, una vez que este se ha ejecutado correctamente, realiza la acción
interna do_suspend_to_disk. Esto significa que el
daemon pone al ordenador definitivamente en modo sleep
después de que el script haya descargado los módulos y detenido los
servicios críticos.
A continuación un ejemplo de una acción modificada para el hecho de pulsar un
botón sleep:
POWERSAVE_EVENT_BUTTON_SLEEP="notify suspend_to_disk".
En este caso se informa al usuario sobre el suspend mediante el script
externo notify. A continuación se produce el evento
POWERSAVE_EVENT_GLOBAL_SUSPEND2DISK que origina las
acciones mencionadas arriba y garantiza que el sistema pase al modo
suspend.
El script notify puede personalizarse por medio de la
variable POWERSAVE_NOTIFY_METHOD en el archivo
/etc/sysconfig/powersave/common.
/etc/sysconfig/powersave/cpufreqEste archivo contiene variables para optimizar el ajuste dinámico de la frecuencia de la CPU.
/etc/sysconfig/powersave/batteryEn él se definen los límites de las baterías y otras opciones de configuración específicas de la batería.
/etc/sysconfig/powersave/sleep
En este archivo puede definir qué módulos deben descargarse y qué
servicios detenerse antes de pasar al modo sleep.
Estos módulos y archivos serán cargados e iniciados de nuevo cuando el
sistema se restablezca. El archivo le permite también retrasar un modo
sleep desencadenado para, por ejemplo, poder guardar
archivos modificados. Las opciones predeterminadas afectan sobre todo a los módulos USB y
PCMCIA. Si el cambio a los modos suspend o standby falla, la causa suele
estar en ciertos módulos concretos. En la Sección 16.5.4, “Posibles problemas y sus soluciones” puede encontrar información
adicional sobre cómo aislar e identificar el error.
/etc/sysconfig/powersave/thermal
Aquí se activa el control para el ajuste del calor y la refrigeración.
Puede obtener información adicional sobre este tema en el archivo
/usr/share/doc/packages/powersave/README.thermal.
/etc/sysconfig/powersave/scheme_*Este archivo contiene los esquemas o perfiles que regulan el ajuste del consumo de energía en función de los distintos escenarios de aplicación. Algunos de estos perfiles están ya preconfigurados y pueden utilizarse sin más. Aquí también puede almacenar perfiles personalizados.
Los modos sleep están desactivados por defecto ya que
todavía fallan en algunos ordenadores. Básicamente existen tres modos
sleep ACPI y dos APM:
Guarda el contenido de la memoria en el disco duro. El ordenador se apaga completamente y no consume electricidad.
Guarda los estados de todos los dispositivos en la memoria principal. Sólo la memoria principal consume electricidad.
Apaga algunos dispositivos en función del fabricante.
Asegúrese que las siguientes opciones predeterminadas están definidas
correctamente en el archivo
/etc/sysconfig/powersave/events para que los modos
suspend/standby o resume puedan procesarse adecuadamente (los valores son
los predeterminados tras la instalación de SUSE LINUX):
POWERSAVE_EVENT_GLOBAL_SUSPEND2DISK=
"prepare_suspend_to_disk do_suspend_to_disk"
POWERSAVE_EVENT_GLOBAL_SUSPEND2RAM=
"prepare_suspend_to_ram do_suspend_to_ram"
POWERSAVE_EVENT_GLOBAL_STANDBY=
"prepare_standby do_standby"
POWERSAVE_EVENT_GLOBAL_RESUME_SUSPEND2DISK=
"restore_after_suspend_to_disk"
POWERSAVE_EVENT_GLOBAL_RESUME_SUSPEND2RAM=
"restore_after_suspend_to_ram"
POWERSAVE_EVENT_GLOBAL_RESUME_STANDBY=
"restore_after_standby"
En el archivo /etc/sysconfig/powersave/battery puede definir tres
estados de carga de la batería (expresados en forma de porcentaje). Cuando
se alcanzan dichos estados, el sistema avisa al usuario o lleva a cabo una
acción determinada.
POWERSAVED_BATTERY_WARNING=20 POWERSAVED_BATTERY_LOW=10 POWERSAVED_BATTERY_CRITICAL=5
En el archivo de configuración
/etc/sysconfig/powersave/events se definen las
acciones/scripts que han de ejecutarse cuando se rebasa un determinado
nivel de carga. En la Sección 16.5.1, “Configuración del paquete powersave” se describe cómo cambiar
las acciones predeterminadas para los botones.
POWERSAVE_EVENT_BATTERY_NORMAL="ignore" POWERSAVE_EVENT_BATTERY_WARNING="notify" POWERSAVE_EVENT_BATTERY_LOW="notify" POWERSAVE_EVENT_BATTERY_CRITICAL="wm_shutdown"
Es posible hacer que el funcionamiento del sistema dependa directamente de la forma de suministro de energía. Así por ejemplo, el consumo de energía puede reducirse al utilizar el sistema con baterías y, a la inversa, el rendimiento del sistema puede aumentar de manera automática en cuanto se conecte de nuevo a la red de suministro eléctrico. Entre los parámetros sobre los que se puede influir directamente cabe destacar la frecuencia de la CPU y la función de ahorro de energía de los discos IDE.
Tal y como se define en el archivo
/etc/sysconfig/powersave/events, el script
powersave_proxy se encarga de ejecutar determinadas
acciones al conectar/desconectar el ordenador a la red eléctrica. En
/etc/sysconfig/powersave/common puede definir los
escenarios (denominados “perfiles” o “schemes”)
que deben utilizarse:
POWERSAVE_AC_SCHEME="performance" POWERSAVE_BATTERY_SCHEME="powersave"
Los perfiles se almacenan en diversos archivos del directorio /etc/sysconfig/powersave. Su nombre está
formado por scheme_<nombre_perfil>. En el ejemplo
se hace referencia a dos perfiles: scheme_performance
y scheme_powersave. Los perfiles
performance, powersave,
presentation y acoustic están ya
preconfigurados. El módulo de gestión de energía de YaST (véase la Sección 16.6, “El módulo de gestión de energía de YaST”) le permite editar o borrar
perfiles ya existentes, crear nuevos perfiles o modificar la
correspondencia entre los perfiles y las formas de suministro de energía.
En caso de que utilice ACPI, puede controlar la reacción del sistema a las
teclas ACPI (power, sleep, cubierta abierta o cubierta cerrada).
En el archivo /etc/sysconfig/powersave/events se define
la ejecución de las acciones correspondientes. Puede obtener información
adicional sobre cada una de las opciones posibles en este archivo de
configuración.
Al pulsar la tecla power, el sistema apaga el gestor de ventanas correspondiente (KDE, GNOME, fvwm...).
Si se pulsa la tecla sleep, el sistema pasa a modo suspend-to-disk.
La apertura de la tapa del portátil no provoca ninguna reacción.
Al cerrar la tapa del portátil se activa el salvapantallas.
Si el uso del procesador no sobrepasa un nivel determinado durante un
periodo de tiempo definido, puede reducir todavía más su potencia. Para
ello, defina en POWERSAVED_CPU_LOW_LIMIT el nivel de uso
que el procesador no debe rebasar durante un periodo de tiempo determinado
(que puede especificar en POWERSAVED_CPU_IDLE_TIMEOUT)
para que se reduzca la potencia de la CPU.
Todos los mensajes de error y avisos del sistema se recogen en el archivo
/var/log/messages. Si a primera vista tampoco encuentra
aquí la causa del problema, asigne el valor 7 o incluso
15 a la variable DEBUG en el archivo
/etc/sysconfig/powersave/common y reinicie el daemon
para que los mensajes de powersave sean más
extensos e informativos. Al hacerlo, los mensajes de error en
/var/log/messages serán algo más detallados, lo que le
ayudará a identificar el problema. La sección siguiente cubre los problemas más frecuentes que pueden aparecer en relación con
powersave.
Si surgen problemas con ACPI, utilice el comando
dmesg|grep -i acpi para buscar
los mensajes relacionados con ACPI en la salida de
dmesg.
Para solucionar el error puede ser necesario actualizar la BIOS. Con este fin visite la página web del fabricante del portátil, busque una versión actual de la BIOS e instálela. Informe al fabricante de su sistema de que debe observar la especificación actual de ACPI.
Si el fallo sigue ocurriendo después de actualizar la BIOS, busque en las siguientes páginas web un DSDT más actual para sustituir la tabla DSDT de su sistema, la cual parece estar defectuosa:
Descargue de http://acpi.sourceforge.net/dsdt/tables
un DSDT adecuado para su sistema y asegúrese de que el archivo está
descomprimido y compilado (lo reconocerá por la extensión
.aml, ACPI Machine Language, del archivo). Si este es
el caso, pase al punto 3.
Si la extensión del archivo descargado es .asl
(ACPI Source Language), debe compilarlo con la herramienta
iasl incluida en el paquete pmtools. Para ello ejecute el comando
iasl -sa
<nombre_archivo>.asl. La versión más actual de
iasl (Intel ACPI Compiler) está disponible en http://developer.intel.com/technology/iapc/acpi/downloads.htm.
Copie el archivo DSDT.aml a su sistema (por
ejemplo a /etc/DSDT.aml). A continuación edite
/etc/sysconfig/kernel y modifique la ruta del
archivo DSDT en caso necesario. Inicie mkinitrd
(paquete mkinitrd). Cuando
desinstale el kernel y utilice mkinitrd para crear un
initrd, el nuevo DSDT será integrado y cargado durante el
arranque.
Compruebe por medio de las fuentes del kernel (paquete kernel-source) si el procesador está
soportado y si debe utilizar un módulo del kernel u opción de módulo
específicos para activar la frecuencia de la CPU. Esta información está
disponible en /usr/src/linux/Documentation/cpu-freq/*.
En caso de que sea necesario emplear un módulo u opción determinados,
configúrelo en las variables CPUFREQD_MODULE y
CPUFREQD_MODULE_OPTS del archivo
/etc/sysconfig/powersave/cpufreq.
Se conocen varios problemas relacionados con el kernel que pueden ser causa de que el modo suspend/standby no funcione en sistemas ACPI:
Los sistemas con más de 1 GB de RAM no soportan (todavía) el modo suspend.
Los sistemas con multiprocesador o con un procesador P4 (con hyperthreading) no soportan actualmente el modo suspend.
El problema también puede deberse a una implementación defectuosa del DSDT (BIOS). En este caso instale un nuevo DSDT como se ha descrito anteriormente .
En sistemas ACPI y APM, cuando el sistema trata de descargar módulos defectuosos, el
ordenador se cuelga o el modo suspend no se
desencadena. También puede ocurrir que no se descarguen o detengan módulos
o servicios que eviten el paso al modo suspend. En ambos casos se
recomienda localizar el módulo defectuoso que ha impedido el modo
sleep. Para ello pueden utilizarse los archivos de
registro del daemon powersave en
/var/log/<sleep_mode>. Si el ordenador ni
siquiera pasa al modo sleep, la causa del problema debe
buscarse en el módulo descargado en último lugar. Puede utilizar las
siguientes opciones de configuración en el archivo
/etc/sysconfig/powersave/sleep para descargar los
módulos problemáticos antes de efectuar un suspend o standby.
POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2DISK="" POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2RAM="" POWERSAVE_UNLOAD_MODULES_BEFORE_STANDBY="" POWERSAVE_SUSPEND2DISK_RESTART_SERVICES="" POWERSAVE_SUSPEND2RAM_RESTART_SERVICES="" POWERSAVE_STANDBY_RESTART_SERVICES=""
Si se utiliza suspend/standby en entornos de red cambiantes o en conexión
con sistemas de archivos montados de forma remota como Samba o NIS, se recomienda montarlos con automounter o
añadir los servicios correspondientes (por ejemplo smbfs o
nfs) a las variables mencionadas arriba. En caso de que
un programa acceda a un sistema de archivos montado de forma remota antes
de iniciarse el modo suspend/standby, el servicio no podrá detenerse
correctamente ni el sistema de archivos ser compartido de forma adecuada.
Después de restablecer el sistema puede que el sistema de archivos esté
dañado y deba montarse de nuevo.
En sistemas con ACPI, el sistema operativo puede pedir a la BIOS una notificación cuando se rebasa un nivel determinado de carga de la batería. La ventaja de este método es que no es necesario leer continuamente el nivel de la batería, lo que repercutiría negativamente en el rendimiento del ordenador. No obstante, puede ocurrir que, a pesar de que debería funcionar según la BIOS, esta notificación no se produzca ni siquiera al rebasar el límite.
Si observa este fenómeno en su sistema, asigne el valor
yes a la variable
POWERSAVED_FORCE_BATTERY_POLLING en el archivo
/etc/sysconfig/powersave/battery para forzar la lectura del estado
de la batería.