Ahorro de energía en iBook G4 con Debian GNU/Linux

Introducción y objetivos:

Una de las facetas más importantes del sistema operativo en los portátiles es el ahorro de energía para que la batería dure el más tiempo posible.

Eso es lo que vamos a intentar conseguir con nuestra Debian instalada en un iBook G4.

Los conceptos y pasos principales sirven para cualquier tipo de portátil, no sólo máquinas de Apple. Sin embargo, otros como la suspensión a RAM dependen un poco más del equipo en cuestión (si tiene APM, ACPI o PMU...).

Todo lo que aquí cuento debería valer, como poco, para iBooks y PowerBooks. Todo lo que cuente que no dependa del pmud o pbbuttonds también sirve para portátiles x86.

Nuestros principales enemigos derrochadores de energía son la pantalla, el disco duro y el procesador principalmente. El resto de dispositivos, lógicamente, también consumen pero estos son los que más.

Para hacernos una idea de lo que pretendemos, este va a ser el esquema a seguir:

Empezando:

Como poco, necesitamos que nuestro núcleo soporte el control de energía. En portátiles x86 esto se consigue mediante APM o ACPI. ACPI permite hacer más cosas pero también da algún problema más.

Nosotros en nuestro iBook necesitamos soporte para PMU en el núcleo. Si venis de Debian GNU/Linux en un iBook G4 ya lo tenéis preparado, sino tenéis que aseguraros de que vuestro núcleo lo soporta. Comprueba que tienes el /dev/pmu o:

	Platform options  --->  
		[*] Power Management support  
	
	Device Drivers  --->
  		Macintosh device drivers  --->  	 
  			[*] Support for PMU  based PowerMacs
			[*] Power management support for PowerBooks
	
activados en el menú de configuración del núcleo.

Generalmente los núcleos de las distribuciones traen todas las opciones necesarias ;)

La Pantalla:

Control de brillo:

En los iBook y PowerBook lo tenemos fácil. El demonio pbbuttonsd se encarga de todo ello.

Algunas personas me han comentado que tuvieron problemas porque no existía el /dev/pmu a pesar de configurarlo. Al parecer instalando el paquete pmud (y desinstalándolo, porque entra en conflicto con pbbuttonsd) todo quedó arreglado.

Antes la gestión de energía se hacía con pmud, pero lleva bastante sin actualizarse y al final pbbuttonds (que sólo servía para controlar las teclas de función) se le ha equiparado.

Para configurarlo, podemos usar powerprefs

Apagado automático: DPMS

DPMS es el estándar VESA para la gestión de energía en monitores.

Probablemente tu distribución ya tenga por defecto una opción de "apagar" la pantalla. Realmente lo que hace es ponerla negra, pero no la apaga realmente.

En consola:

El paquete console-tools nos permite hacerlo. Para ello modificamos el /etc/console-tools/config:

	# Tiempo que tarda en ponerse en negro, en minutos
	BLANK_TIME=3
	# Tiempo que tarda en apagarse
	POWERDOWN_TIME=5
	
Dependerá de lo que uséis la terminal, pero a mi me parecen unos valores correctos.

En XFree/X.org:

Pues vamos a modificar el /etc/X11/XF86Config-4 o /etc/X11/xorg.conf. En la sección Monitor, modificamos la línea:

	Option	"DPMS"	"true"
	
Y en la sección ServerLayout:
	Option	"StandbyTime"	"3"
	Option	"SuspendTime"	"5"
	Option	"OffTime"	"8"
	
Los tiempos están también en minutos.

El procesador

Podemos manejar manualmente la frecuencia del procesador, pero a mí eso no me parece interesante. En Power Managemente Guide lo tenéis en detalle.

Mejor que se encargue automáticamente un demonio de ello. En el mismo enlace teneis una tabla con las características de los principales. Aquí nos vamos a centrar sólo en cpudyn y cpufreqd, porque son gestionan la frecuencia de forma diferente.

cpudyn fue pensado para subir la frecuencia de la CPU cuando se necesite, independientemente de si está conectado a la batería o no. Es decir, toma la decisión en función de la carga.

cpufreqd es mucho más completo (también más complejo), y puede tomar la decisión en función de si estamos usando la batería y la carga del sistema.

A mí con cpudyn me es suficiente y es el que he elegido. Si vosotros necesitais (o quereis) hacer distinción entre el estado de la batería, os recomiendo que echéis un ojo al manual de cpufreqd.

El fichero de configuración de cpudyn está en /etc/default/cpudyn. Os recomiendo que le echéis un ojo por si os interesa cambiar la configuración por defecto. cpudyn también suspende los discos duros, en este momento no sé si hace algún conflicto con el laptop-mode del que más abajo hablaremos.

De momento, asegúrate que la opción DISKS sólo apunta a los discos duros que tengas (en el iBook, yo sólo dispongo de /dev/hda).

El disco duro:

Esta probablemente esta sea la parte más difícil de dejar 100% fina.

Por dónde seguir:

Si quieres seguir profundizando te recomiendo como poco el Battery Powered Linux Mini-HOWTO y Power Management Guide. Aunque este último está más orientado a Gentoo, siempre se pueden sacar buenas ideas para el resto de distribuciones.

Referencias: