07 enero 2008

CPU scaling en Debian Etch

Para comenzar el año de buena manera voy a compartir una guía que tenía guardada en mi cuenta de gmail referente al escalado dinámico de la frecuencia de CPU para los portátiles.

La utilidad que tiene el escalado de frecuencia básicamente es el ahorro de bateria de nuestros equipos, genera menos calor, etc etc.

La siguiente receta la he provado en 2 portatiles, en el mío xD un dell inspiron 630M y en el laptop de mi amigo Danilo, un dell inspiron 6400. En ambos equipos ha funcionado perfecto.

La receta es la siguiente:

1.- Asegurarse de que en el BIOS las opciones Cool'n'Quiet (AMD) o SpeedStep (Intel) estén activadas. En algunos casos el BIOS no trae las opciones por lo cual se puede suponer que están activadas por defecto e incluso pueden aparecer con otros nombres distintos a los mostrados arriba.

2.- Desinstalar el software de escalado de espacio de usuario:
apt-get remove powernowd cpudyn

3.- Instalar el módulo para el CPU

Lo primero es identificar el tipo de CPU que se posee: cat /proc/cpuinfo

A continuación se muestran los posibles módulos para algunos de los procesadores más populares:

AMD Sempron/Athlon/MP ( K7 )
Tipo de Socket: A, Slot A
modprobe powernow-k7

AMD Duron/Sempron/Athlon/Opteron 64 ( K8 )
Tipos de Socket: 754, 939, 940, S1 ( 638 ), AM2 ( 940 ), F ( 1207 )
modprobe powernow-k8

Intel Core Duo
modprobe speedstep-centrino

Intel Pentium M
modprobe speedstep-centrino

Otros (Desconocido)
Si tu procesador no funciona con ninguno de los módulos mostrados arriba, puedes intentar, aunque no se puede asegurar que funcione, el siguiente módulo: modprobe acpi-cpufreq

4.- Montando los módulos de escalamiento :

modprobe cpufreq_conservative
modprobe cpufreq_ondemand
modprobe cpufreq_powersave
modprobe cpufreq_stats
modprobe cpufreq_userspace

5.- Probando y configurando. Para mostrar los gobernadores disponibles:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

La salida que deberías observar es algo asi como...

powersave conservative ondemand performance

6.- Ejecutar los módulos al inicio. Dependiendo el modo que escojas, agrega una o todas las líneas al final de /etc/modules

cpufreq_conservative
cpufreq_ondemand
cpufreq_powersave
cpufreq_stats
cpufreq_userspace

Agrega también el módulo que se nombra en el paso 3.

7.- Instalar cpufrequtils. Esta es una simple herramienta que permite hacer uso de los módulos y
controlarlos desde la consola:

apt-get install cpufrequtils

Para probarlo: cpufreq-info

8.- Seleccionar un gobernador.
Los diferentes gobernadores controlan cómo las velocidades del procesador son escaladas. Las opciones son:

ondemand
Frecuencia de procesamiento basada en la carga.

conservative
Este modo es parecido al gobernador ondemand, el procesador se configura de alguna manera dependiendo del uso. Difiere en que el comportamiento del conservative hace el escalado de manera mucho más gradual que ondemand que realiza saltos a la máxima velocidad en el momento en que un proceso lo requiera.

performance
La CPU funciona solamente en la frecuencia máxima sin importar carga.

powersave
La CPU funciona solamente en la frecuencia mínima sin importar carga.

Prueba los gobernadores: cpufreq-set -g ondemand

Nota: Puedes usar el gobernador que desees.

En sistemas con más de un procesador, necesitas repetir el último comando para cada procesador que tengas especificando el parámetro -c (CPU). Por tanto el comando que se mostró arriba aplica para un solo procesador. En caso de tener un procesador de doble núcleo:

cpufreq-set -c 0 -g ondemand
cpufreq-set -c 1 -g ondemand

Para ver cuántos procesadores tienes, ejecuta: ls /sys/devices/system/cpu/

9.- Configurar cpufrequtils para que automáticamente configure el gobernador escogido en el inicio:
Edita el archivo /etc/default/cpufrequtils. Y cambia la línea:

ENABLE="false" a ENABLE="true"

Configura la variable GOVERNOR según el nombre del gobernador que escogiste en el paso 8.

10.- Eso es todo big_smile

Espero les funcione perfecto. Comenten como les fue.


Saludos

2 comentarios:

RIVE dijo...

Mira que es importante saberlo, en mi desktop con Etch ese era uno de los puntos que estrañaba de la distro, cambié a Lenny y pues ya funciona el escalado, pero igual guardaré tu "receta" me va a servir más delante.

Saludos y gracias.

Anónimo dijo...

Hola, tengo una Laptop toshiba con debian etch y siempre este era el detalle, excelente guia. la segui al pie de la letra y funciono perfecto, ahora ya esta el ventilador funcionando a cada rato, ni se caliente y dura mucho mas la pila :-), muchisimas gracias desde Guadalajara, Jalisco, Mexico.
Otto Krumm