Power management/Guide
En los últimos años, la gestión de la energía ha sido una de las características diferenciadoras en la búsqueda del equipo portátil perfecto. El sistema operativo ofrece soporte a varias funcionalidades. En esta guía, cubrimos cómo configurar una instalación Gentoo de modo que gestione los recursos que tengan un alto consumo de forma flexible y automática.
- Añadir instrucciones de los controladores de frecuencia de CPU faltantes de la configuración del kernel.
Introducción
Acerca de este documento
Este documento describe cómo configurar las características de gestión de la energía en equipos portátiles. Aunque alguna de la información contenida en esta guía se puede aplicar a la gestión de la energía en equipos servidor, este documento no está orientado a este tipo de equipos. Por favor, sea cuidadoso cuando aplique esto a un sistema que no sea portátil.
Dentro de este documento, lo primero será centrarse en las herramientas para el modo portátil ya que ofrece un conjunto completo de funcionalidades. Sin embargo, también haremos referencia a otras herramientas que podrían ofrecer un enfoque más detallado en los ajustes individuales. En estos casos, se debe deshabilitar la característica de las herramientas para el modo portátil de modo que ambas herramientas no rivalizan por el control de los mismos recursos.
Acerca de laptop_mode
El ajuste laptop_mode es un ajuste de configuración dentro del núcleo que optimiza la E/S permitiendo que los discos giren más despacio (y no se arranquen de nuevo justo después de operaciones que están en cola).
Acerca de laptop-mode-tools
Las herramientas del modo portátil (Laptop Mode Tools) se incluyen en un paquete de software (app-laptop/laptop-mode-tools) que permite al usuario optimizar las funciones de ahorro de energía. Permite la gestión del ajuste laptop_mode setting en el núcleo Linux y dispone de características adicionales que permiten el ajuste de otras características relacionadas con la energía dentro del sistema.
Configuración del núcleo Linux
Configuración mínima del núcleo
Existen diferentes fuentes del núcleo en Portage. Recomendamos utilizar sys-kernel/gentoo-sources, sin embargo, si se desea soporte avanzado para hibernación, se podría necesitar TuxOnIce.
Para habilitar propiamente las funciones de la gestión de energía en el kernel de linux, habilite la siguiente configutación.
Power management and ACPI options --->
-*- Device power management core functionality
[*] ACPI (Advanced Configuration and Power Interface) Support --->
<*> AC Adapter
<*> Battery
-*- Button
-*- Video
<*> Fan
<*> Processor
<*> Thermal Zone
[*] CPU Frequency scaling --->
Default CPUFreq governor (ondemand) --->
-*- 'performance' governor
<*> 'powersave' governor
<*> 'userspace' governor for userspace frequency scaling
-*- 'ondemand' cpufreq policy governor
<*> 'conservative' cpufreq governor
<*> ACPI Processor P-States driver
Selccionando los controladores de frecuencia del CPU
Intel P-state
Para la nueva serie de procesadores Intel Core (basados en la microarquitectura Sandy Bridge o nueva), use el controlador Intel P-State.
En este caso los gobernadores userspace, ondemand y conservative son innecesarios. El gobernador performance debe ser seleccionado por default. [1]
Power management and ACPI options --->
-*- Device power management core functionality
[*] ACPI (Advanced Configuration and Power Interface) Support --->
<*> AC Adapter
<*> Battery
-*- Button
-*- Video
<*> Fan
<*> Processor
<*> Thermal Zone
[*] CPU Frequency scaling --->
Default CPUFreq governor (performance) --->
-*- 'performance' governor
<*> Intel P state control
Habilitando controladores adicionales
Para procesadores utilizados en laptops desde el 2011 usted podría querer habilitar funciones avanzadas - Thermal y powercap sysfs.
Controlador thermal sysfs
Device Drivers --->
-*- Generic Thermal sysfs driver --->
(0) Emergency poweroff delay in milli-seconds
[*] Expose thermal sensors as hwmon device
-*- Enable writable trip points
Default Thermal governor (step_wise) --->
[*] Fair-share thermal governor
-*- Step_wise thermal governor
-*- Bang Bang thermal governor
-*- User_space thermal governor
[ ] Thermal emulation mode support
[*] Power allocator thermal governor
<M> Intel PowerClamp idle injection driver
<M> X86 package temperature thermal driver
< > Intel SoCs DTS thermal driver
ACPI INT340X thermal drivers --->
<M> ACPI INT340X thermal drivers
<M> Intel PCH Thermal Reporting Driver
Controlador powercap sysfs
Adicionalmente, se puede habilitar la tecnología Running Average Power Limit – RAPL. Tanto PowerTOP como turbostat son conscientes del RAPL. Para habilitar RALP use:
Device Drivers --->
[*] Generic powercap sysfs driver --->
<M> Intel RAPL Support
Para hacer uso del demonio (daemon) térmico de Linux primero necesita instalarlo sys-power/thermald y habilitarlo por este medio:
root #
rc-config add thermald
o
root #
systemctl enable thermald
dptfxtract de Intel puede ser utilizado para autogenerar un thermald.conf.xml para el sistema.
Finalización de la configuración del kernel
Para una descripción más detallada consultar el artículo sobre el núcleo y la gestión de energía.
Construir e instalar el nuevo núcleo (si es necesario) y reiniciar.
Usar las herramientas para modo portátil (Laptop Mode Tools)
Instalación
No sorprende saber que la instalación del software Laptop mode tools se realiza de forma fácil mediante:
root #
emerge --ask app-laptop/laptop-mode-tools
.
Si embargo este paquete acepta características adicionales u opcionales a través de la configuración con ajustes USE. Por ello, en primer lugar echaremos un vistazo a los ajustes USE permitidos y qué significan para el paquete.
Ajuste USE | Descripción | Se sugiere su uso cuando... |
---|---|---|
acpi
|
Depender de sys-power/acpid, de modo que los cambios en el sistema se capturan y las características de ahorro de energía se habilitan o deshabilitan de forma automática. | El portátil no es tan antiguo (del año 2003 y más tarde). |
apm
|
Depender de sys-apps/apmd de modo que los cambios en el sistema se capturan y las características de ahorro de energía se habilitan o deshabilitan de forma automática. | El portátil es muy antiguo. |
bluetooth
|
Depender de net-wireless/bluez, se habilita laptop-mode-tools para gestionar los ajustes de bluetooth (se habilita o deshabilita el servicio basándose en la disponibilidad de la batería) | El portátil (y el núcleo) ofrece soporte para bluetooth. |
scsi
|
Depender de sys-apps/sdparm, se habilita laptop-mode-tools para gestionar los parámetros de disco SCSI (no SATA). | El portátil utiliza discos SCSI. |
Se puede comprobar que existen dos ajustes USE que parecen incompatibles: acpi
y apm
. ¿Qué ocurre aquí?
- El ajuste USE
apm
habilita el soporte de la Gestión Avanzada de Energía, y los anteriores (al año 2000) estándares de las características para la gestión de la energía dentro del sistema. - El ajuste USE
acpi
habilita el soporte para la Configuración e Interfaz de Energía Avanzadas , el sucesor de APM. Todos los portátiles modernos ofrecen soporte para ACPI.
Dependiendo del sistema, se necesitará habilitar acpi
o apm
. En el resto de esta guía se asume que el portátil es lo suficientemente actual para poder utilizar ACPI.
Así, con el conjunto de ajustes USE, instalar laptop-mode-tools:
root #
emerge --ask app-laptop/laptop-mode-tools
.
Configuración
El hecho de tener laptop-mode-tools instalado en el sistema no habilita de forma automática las características de ahorro de energía que se pueden necesitar. Para configurar el paquete, en primer lugar se debe echar un vistazo a /etc/laptop-mode/laptop-mode.conf. Este el el fichero de configuración principal del paquete y está muy bien descrito (mediante comentarios).
Sin embargo, este no es el único fichero de configuración con el que se trabaja. El paquete laptop-mode-tools soporta añadidos (plugins o módulos) que tienen su propio fichero o ficheros de configuración. Estos ficheros se localizan en /etc/laptop-mode/conf.d y se nombran del mismo modo que el módulo que representas (por ejemplo intel-sata-powermgmt.conf).
Uno de los ajustes más importantes en todos los ficheros de configuración consiste en indicar si el paquete laptop-mode-tools debería gobernar un ajuste en particular o no. Esto es importante si se quiere combinar laptop-mode-tools con otros servicios de gestión de la energía como cpufreqd. En este caso se necesita definir CONTROL_CPU_FREQUENCY=0
:
CONTROL_CPU_FREQUENCY=0
Las siguientes secciones ayudan al usuario a configurar laptop-mode-tools para que se ajuste a sus necesidades específicas. Cuando se termine, arrancar el servicio laptop_mode y asegurarse de que se arranque en cada inicio del sistema.
Con OpenRC:
root #
rc-service laptop_mode start
root #
rc-update add laptop_mode default
Con systemd:
root #
systemctl enable laptop-mode.service --now
Cómo funciona laptop-mode-tools
Cuando se corre el servicio laptop_mode, el software comprobará en qué estado se encuentra el sistema. Los estados se definen como:
- Battery, se activa cuando el sistema está funcionando con energía procedente de la batería. Los ficheros de configuración utilizan el prefijo
BATT_
para los ajustes relacionados con este estado - AC, se activa cuando el sistema está funcionando con energía procedente de la red. Los ficheros de configuración utilizan el prefijo
AC_
para los ajustes relacionados con este estado - Laptop Mode, se activa cuando se habilita el modo portátil. Los ficheros de configuración utilizan el prefijo
LM_
para los ajustes relacionados con este estado - No Laptop Mode, se activa cuando se deshabilita el modo portátil. Los ficheros de configuración utilizan el prefijo
NOLM_
para los ajustes relacionados con este estado
Los prefijos AC/BATT_ y LM/NOLM_ se pueden combinar para obtetener un prefijo AC_LM_.
Cuando se arranca el servicio laptop_mode, conmutará los modos basados en los eventos que sucedan (y, por supuesto, se basará en los ajustes de la configuración). Por ejemplo, el ajuste ENABLE_LAPTOP_MODE_ON_BATTERY=1
asegurará que la herramientas del modo portátil cambian a laptop mode cuando se utilice la batería. En este caso, se utlizarán los ajustes que comienzan por LM_
, LM_BATT_
, BATT_LM_
y BATT_
.
Para asegurarse de que los ajustes no interfieren, no se permitirán que se solapen. En el siguiente ejemplo, el primer conjunto (para CPU_MAXFREQ
) es valido, sin embargo, el segundo (para CPU_MINFREQ
) no lo es.
## Conjunto válido
BATT_CPU_MAXFREQ=fastest
LM_AC_CPU_MAXFREQ=fastest
NOLM_AC_CPU_MAXFREQ=fastest
## Conjunto inválido
BATT_CPU_MINFREQ=fastest
LM_AC_CPU_MINFREQ=fastest
# Lo siguiente incluye AC y BATT, sin embargo BATT ya está definido
NOLM_CPU_MINFREQ=fastest
Configurar la gestión de la frecuencia de la CPU
El soporte para la gestión de la gestión de la frecuencia de la CPU en las herramientas del modo portátil permiten el cambio de frecuencias. Soporta el ajuste del gobernador de la frecuencia de la CPU y las frecuencias máxima y mínima. El fichero de configuración que se utiliza en este caso es /etc/laptop-mode/conf.d/cpufreq.conf
El Gobernador de frecuencia de la CPU es una directriz del nivel del núcleo que define cómo éste seleccionará la frecuencia de la CPU. Ya se seleccionaron los gobernadores que se utilizaron en la configuración del núcleo anteriormente. Recapitularemos:
performance
siempre selecciona la máxima frecuenciapowersave
siempre selecciona la mínima frecuenciauserspace
no selecciona nada en particular, por el contrario, deja que decida el usuario (o cualquier proces que el usuario esté corriendo el cual decidirá en nombre del usuario)ondemand
escalará la frecuencia de la CPU hasta la máxima cuando haya cargaconservative
escalará la frecuencia de la CPU de forma gradual cuando haya carga
Cuando se conmuta entre red eléctrica y batería o modo portátil (o no), se selecciona el gobernador apropiado (así como su mínima y máxima frecuencia).
Configurar el brillo de la pantalla
Con /etc/laptop-mode/conf.d/lcd-brightness.conf, las herramientas del modo portátil pueden gestionar el brillo de la pantalla LCD.
El fichero utiliza actualmente /proc/acpi/video/VID/LCD/brightness (incidencia 499544) para ajustar los valores para el brillo de la pantalla. Los núcleos actuales ya no ofrecen esto, en su lugar se necesitará ajustar esto en /sys/class/backlight/acpi_video0/brightness.
Los valores posibles que se pueden utlizar están entre cero y el valor de /sys/class/backlight/acpi_video0/max_brightness, siendo cero el valor más bajo para el brillo.
Configurar otros servicios
Una característica interesante de laptop-mode-tools es el soporte que ofrece a la recarga de algunos servicios en particular (por ejemplo la bitácora del sistema) después de conmutar su fichero de configuración. Esto se gestiona a través de /etc/laptop-mode/conf.d/configuration-file-control.conf
Si se habilita, la aplicación laptop_mode conmutará el o los ficheros de configuración de los servicios mencionados con el mismo fichero, pero con un sufijo -nolm-ac , -lm-ac o -batt. Entonces enviará una señal o recargará los servicios apropiados de modo que puedan utilizar el nuevo fichero de configuración.
Usar cpufreqd
El paquete sys-power/cpufreqd es obsoleto y se ha eliminado del árbol de Portage. Todavía se puede utilizar el paquete sys-power/ncpufreqd para núcleos 2.6.x.
Instalación
La aplicación cpufreqd permite al usuario gestionar la frecuencia de la CPU con un enfoque más granular que el que ofrece laptop-mode-tools. Sin embargo, antes de entrar en detalles sobre la instalación de cpufreqd, echemos un vistazo a los ajustes USE que soporta.
Ajuste USE | Descripción | Se sugiere su uso cuando... |
---|---|---|
acpi
|
Habilita el soporte para ACPI, permitiendo que se notifique a cpufreqd acerca de eventos específicos así como la gestión de la energía a través del interfaz ACPI. | El portátil no es tan antiguo (del año 2003 y más tarde). |
apm
|
Habilita el soporte para APM, permitiendo que se notifique a cpufreqd acerca de eventos específicos así como la gesión de la energía a través del interfaz APM. | El portátil es muy antiguo |
lm_sensors
|
Habilita el soporte para los sensores hardware de Linux (a través del paquete sys-apps/lm_sensors), permitiendo conmutar entre perfiles basándose en los resultados que ofrecen los sensores hardware. | Se utilicen eventos avanzados a través de lm_sensors. |
nforce2
|
Habilita soporte para NForce, permitiendo a cpufreqd cambiar el reloj FSB de NForce FSB y la frecuencia de la tarjeta de vídeo. | Se dispone de una tarjeta gráfica NVidia con chipset NForce. |
nvidia
|
Habilita soporte para la configuración de la tarjeta gráfica NVidia (a través del interfaz nvclock de NVidia), permitiendo a cpufreqd cambiar la frecuencia de la tarjeta de vídeo de las tarjetas gráficas NVidia. | Se dispone de una tarjeta gráfica NVidia. |
pmu
|
Habilita el complemento Power Management Unit de cpufreqd. Esto permite que el software pueda sondear la interfaz de administración de la energía del núcleo Linux, obteniendo información más detallada sobre la carga de la batería. | El portátil no ofrece soporte para ACPI ni para APM. |
Los ajustes USE acpi
, apm
y pmu
se solapan, de modo que solo uno de ellos puede estar activo. Si el portátil es lo suficientemente reciente, la mejor apuesta es acpi
. Si no, apm
ofrece todo lo que se necesita. Si no se puede utilizar APM, pruebe con pmu
.
Cuando se hayan configurado los ajustes USE, es el momento de instalar cpufreqd.
root #
emerge --ask cpufreqd
Configuración
La aplicación cpufreqd monitoriza el estado del sistema mediante varios complementos. Basándose en las sugerencias que se reciben sobre estos complementos, se ajusta la directriz para gobernar la frecuencia de la CPU.
cpufreqd se puede configurar a través del fichero /etc/cpufreqd.conf. Contiene tres secciones diferenciadas:
- La sección
[General]...[/General]
contiene información general de configuración. - La sección
[Profile]...[/Profile]
define las directrices a las que el demonio de cpufreqd conmutará. Esta sección es muy similar a la información que se utiliza para ajustar manualmente la directriz de la frecuencia de la CPU utilizando cpufreq-set. - La sección
[Rule]...[/Rule]
es la bestia de carga del demonio cpufreqd, la cual define lo que el demonio hace cuando conmuta a un perfil distinto.
Echar un vistazo a la regla ejemplo.
[...]
[Profile]
name=On Demand High
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]
[Rule]
name=AC Off - High Power
ac=off
battery_interval=70-100
profile=On Demand High
[/Rule]
[...]
En el ejemplo de arriba, cpufreqd cambiará el perfil del sistema a On Demand High (también se muestra en el extracto de arriba). Este perfil por si mismo utiliza el gobernador bajo demanda con una frecuencia mínim del 40% (en otras palabras, una CPU de 2 GHz tendrá bajo esta directriz una frecuencia mínima de 800 MHz).
La aplicación cpufreqd puede ofrecer un enfoque más granular sobre el escalado de la frecuencia de la CPU. Pero no solo esto, se puede ajustar la frecuencia de la CPU basándose en otras métricas disponibles. La configuración por defecto ofrece una regla ejemplo: Cuando se está viendo una película, se desea el máximo rendimiento (a menos que la temperatura de la CPU suba demasiado).
Una vez se haya configurado cpufreqd, es el momento de arrancarlo (y asegurarse de que se carga de forma automática). ¡Asegúrese de que se ha deshabilitado la gestión de la frecuencia de la CPU por parte de otras herramientas (como laptop-modo-tools)!
root #
rc-update add cpufreqd default
root #
/etc/init.d/cpufreqd start
Ver también
Recursos externos
- Página oficial de las herramientas del modo portátil (Laptop Mode Tools), incluye información acerca del modo portátil.
- PowerTOP, una aplicación interactiva que ayuda a los usuarios a encontrar los procesos que están forzando que la UCP se despierte más a menudo.
- Un artículo ThinkWiki acerca de cómo reducir el consumo de energía (en Linux). Este artículo ofrece una lista exhaustiva de medidas que se pueden tomar. Se debe observar que las herramientas del modo portátil implementan la mayoría de éstas (si se configura de forma adecuada).
Referencias
- ↑ Dominik Brodowski. Intel P-State driver, [https://www.kernel.org /doc/Documentation/cpu-freq/index.txt CPU frequency and voltage scaling code in the Linux(TM) kernel]. Recuperado el 12 de Junio del 2016.