Inicio > Internet, Utilidades > Aumentar duración de batería en Linux

Aumentar duración de batería en Linux

Martes, 11 de marzo de 2008 Dejar un comentario Ir a comentarios

[Actualizado 12/03/08]

Seguramente aquellos que dispongan de un ordenador portátil, en ocasiones habrán tenido que trabajar haciendo uso de la batería en lugares donde no se dispone de un enchufe donde conectar la fuente de alimentación del equipo. Por defecto el Kernel de Linux viene con un gestor de energía como ACPI o APM que intenta minimizar el consumo de energía mediante el escalado de frecuencia y otras otras funcionalidades, e incluso algunos fabricantes como sony, toshiba o apple, desarrollan módulos para intentar controlar todos estos aspectos, pero aún así el tiempo de duración de la batería en Linux suele ser bastante corto.

Para incrementar el tiempo de duración de las baterías de nuestros equipos portátiles podemos adoptar ciertas medidas para intentar que el consumo de energía sea inferior. A continuación os comento algunas sugerencias, programas y buenas prácticas con el que conseguiréis ahorrar batería en vuestro portátil usando linux.

Escalado de frecuencia

Las principales distribuciones de GNU/Linux activan por defecto en el kernel el soporte de gestión de energía y el escalado de frecuencias para la CPU. El escalado de frecuencias consiste en una serie de directivas o “governors” que ajustan la frecuencia de la(s) CPU(s)en función a nuestras necesidades. Lo más común es que la directiva que esté activada sea “ondemand”, que traducido al castellana viene a decir “bajo demanda”. Es decir, la frecuencia de la CPU se adecuará según el uso de la CPU que estemos haciendo, en momentos de bajo uso la frecuencia descenderá al mínimo posible y en momentos de alto uso la frecuencia aumentará al máximo posible.

Para comprobar que directiva está seleccionada para una determinada CPU podemos examinar el contenido del fichero:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Una buena práctica para aumentar la duración de nuestra batería sería cambiar la directiva de escalado de frecuencia a “powersave”, en donde la frecuencia de la(s) CPU(s) será la mínima posible mientra esta directiva esté en uso. Esto podemos hacerlo de dos formas:

  • Editar el fichero que indiqué anteriormente y sustituir su contenido por: powersave
    echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
  • Utilizar el comando cpufreq-selector para seleccionar la cpu deseada y la directiva a utilizar
    sudo cpufreq-selector -c 0 -g powersave
    

Si miráis la ayuda del comando (con la opción –help) podéis ver que la opción -c sirve para especificar sobre que CPU vamos a realizar modificaciones. Naturalmente si disponemos de un procesador con más de un núcleo deberemos especificar la directiva a utilizar para cada uno de ellos.

Power Save Mode en módulos Wi-Fi

Como ya habréis oído los dispositivos Wireless consumen bastante energía al tener que estar continuamente emitiendo y captando señales en unas determinadas frecuencias. En mi caso el módulo ipw3945 incluye un modo de ahorro de energía que podemos controlar con el siguiente comando:

sudo iwpriv eth1 set_power 5

Debemos especificar la interfaz y el nivel de ahorro de energía que queremos activar. A través de la web del proyecto powertop podemos observar los siguientes datos que nos muestra por ejemplo el tiempo de retardo en producirse una llamada al sistema para despertase (wakeup):

Power save level: 5 (Timeout 25ms, Period 1000ms)
Power save level: 1 (Timeout 350ms, Period 400ms)

De esta forma estaremos ahorrando energía, eso sí, como consecuencia obtendremos un decremento en el rendimiento.

La utilidad powertop

La herramienta powertop es una aplicación liberada por Intel que permite ver cuales son los principales eventos del sistema que influyen en el consumo de energía en base a interrupciones del sistema. Además también muestra una serie de estadísticas acerca del tiempo en el que las distintas CPU’s están funcionando en las frecuencias permitidas por el procesador.

El programa podéis descargarlo e instalarlo mediante los sistemas de paquetes de las principales distribuciones GNU/Linux o bajarlo y compilarlo desde la Web del proyecto. Para ejecutarlo tan solo tendremos que poner en pantalla:

sudo powertop

Una vez ejecutad, en intervalos de 5 a 10 segundos, el programa recopila los datos oportunos del sistema para mostrarnos las estadísticas que he comentado anteriormente. Pero lo más interesante es que nos mostrará una serie de advertencias, siempre y cuando sean necesarias, para incrementar el tiempo de vida de nuestra batería y nos dará la opción de pulsar una simple tecla para realizar dicha acción. Os dejo un par de capturas del programa en cuestión.

Powertop - 1Powertop - 2

Salvapantallas

Si tenemos algún tipo de salvapantallas en nuestro equipo este puede hacer que se consuma mucha energía, sobre todo si es alguno en el que se haga uso de 3D y por lo tanto de la GPU. Una alternativa a la que podemos optar para el ahorro de energía, es apagar la pantalla completamente, y esto se suele conseguir mediante la tecnología DPMS de las X. Para controlar el tiempo que tendrá que transcurrir de inactividad para que se oscurezca la pantalla utilizaremos la siguiente línea de comandos:

xset dpms 0 0 30

En donde especificamos que después de 30 segundos de inactividad se apague completamente la pantalla.

Gestión de energía de discos duros

Muchos de los discos duros actuales tienen un soporte de gestión de la energía. Mediante el programa hdparm podemos establecer diferentes configuraciones en estos. Este programa tiene una gran cantidad de parámetros para utilizar por lo que para un estudio completo de la herramienta tendréis que acudir a sus “man pages”. Para lo que nos interesa, que es intentar ahorrar el máximo de energía podríamos escribir la siguiente línea:

hdparm -B 1 -S 12 /dev/sda

Donde le indicamos a nuestro disco duro SATA que pase al modo de ahorro de energía más agresivo y que se ponga en “standby” a los 60 segundos (se especifica en múltiplos de 5 segundos: 5*12=60).

Otras consideraciones

A parte de estos indicios también hay que aplicar la lógica común para conseguir ahorrar unos Watios :P . Siempre es buena idea tener fondos y temas de escritorio oscuros, ya que la pantalla es una de las fuentes principales de consumo de energía de la batería. Mientras más claros sean los colores mostrados en pantalla más energía consumirá el portátil (si tenemos en cuenta el modelo de color RGB, el blanco es [255,255,255] mientras que el negro es [0,0,0]).

Otra cosa que no todos hacen es desconectar el dispositivo Wifi si no lo vamos a utilizar. No todos los portátiles nos dan esta oportunidad pero si la tenemos hay que aprovecharla.

Resultados obtenidos

En mi caso he conseguido reducir el uso de energía de casi 30W a 15.4W, y en los momentos donde la pantalla se apaga pasa a consumir en torno a los 10W. Ahora la duración de la batería ha pasado de 2 horas y 15 minutos aproximadamente a 3 horas y media, dependiendo del uso que haga del sistema. Como podréis observar la mejora es más que notable.

Espero que si alguien tiene más datos que aportar en el asunto los comparta conmigo y actualizaré la entrada encantado ;) .Podéis encontrar mucha información acerca del tema en el siguiente enlace (en inglés).

GD Star Rating
loading...
Aumentar duración de batería en Linux, 8.6 out of 10 based on 5 ratings
Share
  1. Redstarphoenix
    Lunes, 20 de octubre de 2008 a las 19:53 | #1
    GD Star Rating
    loading...

    “las estimaciones de ACPI sobre el uso de corriente no están disponibles”

    Este es el mensaje que me aparece en powertop, pese a que puedo hacer algunas configuraciones no me deja ver el tiempo estimado de mi bateria (quizas porque la tengo en carga ahora mismo).

    He activado todos los parametros asi que en un rato colgaré cuando he podido ahorrar (hasta ahora me dura unos…50 minutos…me huele que necesitaré algo mas que una optimización de energia…)

  2. jesus hernan
    Jueves, 25 de febrero de 2010 a las 01:09 | #2
    GD Star Rating
    loading...

    de cuantas celdas es la bateria? mas datos porfavor

  3. Miércoles, 16 de junio de 2010 a las 15:50 | #3
    GD Star Rating
    loading...

    Hola, más que interesante, está grandioso!, lo publicaré en mi blog, la información es grandiosa, mi batería de un portátil Gateway NV5214u, dura 1:10 Horas, insuficiente, haré las pruebas para darle más tiempo ya que me interesa…. ojalá hubieran módulos inalámbricos que por hardware gastasen menos energía.

  4. Miércoles, 16 de junio de 2010 a las 17:49 | #4
    GD Star Rating
    loading...

    Gracias maximi89 por tu valoración :) . Algo seguro que aumentas la durabilidad de la batería, aunque en las últimas versiones del kernel de linux parece que cada vez se consume algo más >_< .

  5. Martes, 27 de julio de 2010 a las 03:07 | #5
    GD Star Rating
    loading...

    Al final no he obtenido nada en rendimiento, prácticamente es la misma duración, estas baterías de Lit Ion son tan malas…

    ojalá lleguen pronto las baterías de Nanotubos de Carbono, según entiendo hicieron 100 cargas y descargas y no hubo cambio alguno en su rendimiento, ahora en el tiempo que duran sigue siendo una verguenza… no pueden durar 1 hora… ojalá en el MIT lleguen a crear las baterías basadas en condensadores electrolíticos :D

  6. Martes, 27 de julio de 2010 a las 12:36 | #6
    GD Star Rating
    loading...

    Se ve que estás puesto en el tema eh jeje. Esta entrada la escribí hace ya más de 2 años y desde entonces mi batería ha ido perdiendo tiempo de duración gradualmente :( . También es cierto que el tiempo de vida de una batería depende mucho del uso que haga el dueño de ella … siguiendo los consejos que te vienen en los manuales de los respectivos portátiles se alarga bastante la cosa.

  7. Martes, 27 de julio de 2010 a las 19:33 | #7
    GD Star Rating
    loading...

    Leí por ahí que es recomendable los medios ciclos :D

    osea cargar completamente y luego descargar a la mitad… luego la vuelves a cargar… pero sigue siendo una verguenza estas baterías… sólo duran 1 hora, medio ciclo sería cargar cada vez que queden a la mitad… osea cada 30 o 40 minutos… plop!

  1. Lunes, 17 de enero de 2011 a las 21:56 | #1