Activando Cool'n'Quiet de AMD en Debian (Paso a paso)


  • 0

    Sacado de una web extranjera, funciona a la perfección (al menos en mi caso :D)

    1.- Verificamos que la BIOS de nuestra placa base tiene habilitado el Cool'n'Quiet.

    2.- Linux puede maneja el cambio de frecuencia dinámico con una serie de módulos que deben ser habilitados en la compilación del kernel, en el caso de Debian vienen precompilados por defecto, para las otras distribuciones lo mas probable es que también vengan precompilados, pero para salir de dudas…

    $ nano /boot/config-$(uname -r)
    
    

    En el fichero resultante, buscamos una sección como la que tenemos abajo:

    #
    # 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 nos interesa son los CONFIG_X86_POWERNOW_Kx=m, (x= 6 7 8), deben estar asignados con m ("m" significa que se carga como módulo), si no estuvieran te tocará recompilar el kernel añadiendo los módulos que necesites.

    3.- Instalar powernowd, que se encarga de gestionar los módulos necesarios:

    $ aptitude install powernowd
    
    

    4.- Arrancar el módulo necesario (en este caso para AMD64) mediante el comando:

    $ modprobe powernow-k8
    
    

    5.- Agregamos al fichero /etc/modules el módulo necesario:

    $ nano /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
    sbp2
    uvcvideo
    powernow-k8

    6.- Arrancamos powernowd:
    
    

    $ 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 - 2000Mhz (3 steps)

    7.- Comprobamos que funciona con gkrellm o mediante mediante el comando:
    
    

    $ cat /proc/cpuinfo | grep -i mhz

    En mi caso:
    
    

    $ sudo cat /proc/cpuinfo |grep -i mhz
    cpu MHz : 1000.000

    Como mi procesador es un 3200+ trabaja a 2 GHz, podemos ver como ahora esta trabajando a una frecuencia menor (cuando no hace prácticamente nada), lo cual indica que hemos hecho un buen trabajo con los pasos anteriores.
    
    8.- Ahora tenemos que indicar que queremos que la frecuencia del procesador sea según la necesidad de cálculo, esto lo logramos modificando el archivo "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", que por defecto tiene una única linea "userspace", remplazando esta única linea por "ondemand".
    
    Este cambio no es permanente así que tenemos que cambiar el archivo cada vez que inicie el sistema, podemos añadir la siguiente linea a un archivo que siempre se ejecute al iniciar el sistema, un script, en Debian modificamos "/etc/rc.local".
    

    $ nano /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
    
    ```
    Y ya está, con esto deberíamos tener ya funcionando la frecuencia dinámica del procesador que usa Cool'n'Quiet, en mi caso reduje la temperatura del procesador de 42 a 36 grados en idle.
    
    Esto también funcionaría con otros procesadores que tengan tecnologías similares, lo único que debemos hacer es cargar el módulo correspondiente a nuestro procesador (en lugar de powernow-k8). Los módulos más comunes son:
    
    AMD Sempron/Athlon/MP ( K7 )
    Tipo de Socket: 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, C2D, Pentium M
    modprobe speedstep-centrino


  • 1

    No tengo controladas las temperaturas bajo Linux (lo tengo abandonado por culpa del WoW) pero echaré un vistazo a ver si Ubuntu controla esto por defecto o tengo que seguir los pasos de Debian. Buen aporte ;).



  • 2

    Creo recordar que en ubuntu solo tienes que instalar gkrellm y podras ver los sensores del micro con el modulo de gkrellm corespondiente. Creo que ubuntu iniciaba el modulo powernowd por defecto, pero no el módulo del procesador (no controla las frecuencias) aunque igual me equivoco…





Has perdido la conexión. Reconectando a Hardlimit.