La mayor comunidad de Debian en español

COOL 'n' QUIET EN DEBIAN.


Imagen de adayler

By adayler- Publicado31 Diciembre 2007

Aun que no es algo complicado a continuación describiré el proceso de acctivación (si vale el termino) de esta teccnologia propia de los procesadores AMD, primeramente decir que cool 'n' quiet es una tecnologia que permite tener una frecuencia de trabajo de procesador variable, en función a al esfuerzo de cáculo que requiera el usuario, de esta manera se logra un considerable ahorro de energia. (http://www.amd.com/es-es/0,,3715_12353,00.html)

Lo que nesesitamos para ello es un procesador AMD superior a k6, una placa madre que admita esta funcionalidad (practicamente todas en la acctualidad), y una distribución de linux, en mi caso yo estoy con debian etch, pero la siguiente receta es tambien valida para las demas distribuciones.

1.- Verificamos que en el bios de nuestra placa madre este habilitado cool 'n' quiet [enable], el como habilitarlo depende de tu placa madre, normalmente esta en la sección CPU.

2.- Linux puede manejar esta tecnología mediante una serie de módulos que deben ser habilitados en la compilación del kernel, en el caso de debian etch estos ya los viene agregados por defecto, para las otras distribuciones lo mas probable es que tambíen los traigan agregados, pero para salir de dudas podemos darnos una vuelta por /boot/config-<uname -r>, y en algun lugar de este archivo debe de haber algo parecido a:
$ vim /boot/config-<uname-r>

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=m
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
CONFIG_X86_GX_SUSPMOD=m
CONFIG_X86_SPEEDSTEP_CENTRINO=m
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
CONFIG_X86_SPEEDSTEP_ICH=m
CONFIG_X86_SPEEDSTEP_SMI=m
CONFIG_X86_P4_CLOCKMOD=m
CONFIG_X86_CPUFREQ_NFORCE2=m
CONFIG_X86_LONGRUN=m
CONFIG_X86_LONGHAUL=m

Lo que principalmente nos interesa son los CONFIG_X86_POWERNOW_Kx=m, (x= 6 7 8), debe estar asignados con m (m -> indica que se cargará como módulo), de no estarlo será nesesario reconpilar el kernel, pero modificando estos a estos valores el archivo de configuración del nuevo kernel.

3.- Instalar powernowd que es un demonio en cargado de gestionar estos módulos.

apt-get install powernowd -> En debian, y sus deribados

yum install powernowd -> En alguna distro basada en redhat

4.- Arrancar el módulo corespondiente, esto lo logramos mediante el comando:

modprobe powernowd-k8 -> Para un AMD64

Solamente variar el número de kx del 6 hasta el 8, si no se sabe cual procesador tiene, hasta que deje de salir "FATAL: Module powernowd_k7 not found", u dispositivo no encontrado.

5.- Una ves que sabemos que modulo tenemos que arrancar lo agregamos al fichero /etc/modules mediante su editor de texto favorito, en mi caso.

$ sudo kwrite /etc/modules

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

loop
nvidia
powernow-k8

6.- Arrancamos powernowd, en mi caso:

$ sudo powernowd

powernowd: PowerNow Daemon v0.97, (c) 2003-2006 John Clemens
powernowd: Found 1 scalable unit: -- 1 'CPU' per scalable unit
powernowd: cpu0: 1000Mhz - 2200Mhz (4 steps)

7.- Verificamos, podemos ver la frecuencia actual del procesador mediante le comando:

cat /proc/cpuinfo |grep -i mhz

En mi caso:

$ sudo cat /proc/cpuinfo |grep -i mhz

cpu MHz : 1000.000

Como mi procesador trabaja como máximo a 2200 se puede ver que ahora esta trabajando a una frecuencia menor (cuando no hace prácticamente nada), lo cual indica que si trabaja correctamente el módulo.

8.- Frecuencia por demanda, es nesesario indicar que queremos que la velocidad del prcesador se de segun la demanda, esto lo logramos modificando el archivo /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor, que por defecto tiene una única lines "userspace", rempazando esta únicaq linea por "ondemand".

Pero este cabio no es permanente asi que debemos cambiar este archivo cada ves que se inicie el sistema, esto lo podemos hacer añadiendo la siguiente linea a un archivo que siempre se ejecute al iniciar el sistema, un script, puede estar ubicado en /etc/rc.local , o en el caso de otras distribuciones /etc/conf.d/local.start, en mi caso por usar debian etch tuvo que se en la primera opcion.

$ sudo kwrite /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
exit 0

9.- solo nos queda :

cat /proc/cpuinfo

En mi caso:

$ sudo cat /proc/cpuinfo

processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 47
model name : AMD Athlon(tm) 64 Processor 3500+
stepping : 2
cpu MHz : 1000.000
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm ts fid vid ttp tm stc
bogomips : 2016.26
clflush size : 64

y final mente a Disfrutar . . .:-)

Tags
Imagen de darkxer0x
Enviado por darkxer0x el 4 Enero, 2008 - 10:59.

Bueno, solo decir que a mi el Cool `n` quiet de amd no me va (problema de hardware). Hasta tuve que instalar windows para enseñarselo al de la tienda que no iba... Y todo para que me cambiaran placa base, cpu..., y siguiera sin ir.
Evidentemente me tuve que comer la cpu sin el cool `n` quiet, aunque si no fuera estudiante, vamos que si habria denunciado a amd...
En fin, suerte a los que podais usarlo :)
En cuanto al tuto, ¿no hacia falta activar el ACPI 2.0?? Por lo menos eso venia en el manual de mi placa base...

Imagen de ekaitza
Enviado por ekaitza el 4 Enero, 2008 - 15:21.

Respuesta a Bueno, solo decir que a

Yo lo tengo funcionando sin problema en un AMD Athlon(tm) 64 X2
Dual Core Processor 5400+

Las frecuencias de trabajo me van desde los 1000 Mhz hasta los
280 Mhz.

Imagen de aneolf
Enviado por aneolf el 4 Enero, 2008 - 19:15.

Respuesta a Bueno, solo decir que a

En Ubuntu me sale:

$ vim /boot/config-<uname-r>
bash: error de sintaxis cerca de token no esperado `newline'

Imagen de minaya
Enviado por minaya el 5 Enero, 2008 - 12:46.

Respuesta a En Ubuntu me sale:

$ vim

ejecutalo así:
vim config-$(uname -r)

---
No es más rico el que más tiene sino el que menos necesita.

Imagen de aneolf
Enviado por aneolf el 5 Enero, 2008 - 13:37.

Respuesta a ejecutalo así:
vim config-$(uname -r)

---
No es

Finalmente lo conseguí con

$ vim /boot/config-$(uname -r)
...
#
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=m
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
CONFIG_X86_GX_SUSPMOD=m
CONFIG_X86_SPEEDSTEP_CENTRINO=m
...

Pero después me encuentro con

$ sudo apt-get install powernowd
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo información de estado... Hecho
powernowd ya está en su versión más reciente.
0 actualizados, 0 se instalarán, 0 para eliminar y 0 no actualizados.
$ modprobe powernowd-k8
FATAL: Module powernowd_k8 not found.
$ modprobe powernowd-k7
FATAL: Module powernowd_k7 not found.
$ modprobe powernowd-k6
FATAL: Module powernowd_k6 not found.

por si acaso tiene algo que ver:

$ uname -r
2.6.20-16-generic

Un saludo

Imagen de adayler
Enviado por adayler el 6 Enero, 2008 - 03:33.

Respuesta a Finalmente lo conseguí con

$ vim

> $ uname -r
> 2.6.20-16-generic

Supongo que recompilaste el kernel . . . o descargaste alguno ya
compilado para amd, del repo de ubuntu.

Pues al parecer el día que escribí este artículo mi ortografía
estaba que daba pena :-(

no es : $ modprobe powernowd-k8

lo correcto es : $ modprobe powernow-k8

Lo ves la 'd' esta por de mas, mil disculpas a todos . . .

Con eso deberia ser suficiente.

Imagen de janofx
Enviado por janofx el 6 Enero, 2008 - 05:24.

Respuesta a Finalmente lo conseguí con

$ vim

prueba con descargar otro kernel... aunque me parece que en ubuntu eliminaron los kernel personalizados para AMD... pero deverian haber para 486 que te deberian funcionar...

Con respecto al tutorial... muy buen dato nunca esta demas
saludos...

Imagen de aneolf
Enviado por aneolf el 7 Enero, 2008 - 10:56.

Respuesta a > $ uname -r
> 2.6.20-16-generic

Supongo

No, nada de eso. Todavía no me atrevo a tanto. Se trata del kernel que update instala por defecto.

Ahora, con:

$ modprobe powernow-k8

ha funcionado todo correctamente.

Muchas gracias por la ayuda.

Imagen de darkblacklife
Enviado por darkblacklife el 8 Enero, 2008 - 04:30.

Los procesadores de intel pentium 4 de 64 bits EM64T socket 775 que se supone son analogos a los amd64... traen este mismo soporte??? pregunto por que no se hasta donde son parecidos

gracias

Imagen de diskoppix
Enviado por diskoppix el 9 Enero, 2008 - 02:40.

Muy buen artículo,aunque yo que desde hace unos meses tengo un AMD64 ,al no ser un portátil ,había dejado en temas pendientes implementar esa tecnología.Ya estoy tardando...

Relacionado con COOL 'n' QUIET EN DEBIAN.



Buscador

Búsqueda avanzada

Inicio de sesión

Encuesta

¿Que haces cuando tienes un problema?
Utilizo google hasta para encontrar la hora
70%
Leo los manuales hasta hartarme
8%
Utilizo esDebian que para algo está
15%
Esto con windows no pasaba
3%
Formateo
0%
Mirar en las listas de correo y bug tracker
0%
Ninguna de las anteriores
5%
Total de votos: 66

En línea

En este momento hay 7 usuarios y 24 invitados en línea.