lunes, 12 de marzo de 2018

Menos ruido, temperatura y consumo, en el i7 Ivy Bridge nanoPC


En la imagen se puede apreciar lo bien que queda este pequeño PC sobre una mesa, y con el i7 Ivy Bridge que tiene, asociado a 8GB de RAM y una unidad SSD de 256GB, no hay aplicación que se resista. Puede subir a una velocidad de 3,1GHz, y aunque refrigera con una especie de realimentación negativa que lo hace reposar en ausencia de trabajo hasta 800MHz (powersave), la temperatura se dispara. Su velocidad nominal es de 2GHz, y aún así, su temperatura y, sobre todo, el soplido del ventilador, en un momento dado  lo comprometen todo.
Ahora, con el cambio de sistema operativo a Debian Stretch, el rendimiento del equipo es mucho mayor, y el soplido ocasional del ventilador empezaba a traerme un poco de calle. No quedaba otra, o bajaba la velocidad de trabajo del microprocesador para aliviarlo térmicamente, o tenía que comprar otro.
La BIOS no tenía opciones directas en ACPI (Advanced Configuration and Power Interface) para deshabilitar la "Frecuencia Turbo (3,1GHz)", pero afortunadamente la velocidad el microprocesador, por software, se puede controlar. Así, os voy a describir como lograr bajar la velocidad nominal del microprocesador a 1,6GHz, mantener la condición de "powersave" para que cuando suba a 2GHz pueda descender a 1,6 cuando la exigencia de trabajo sea menor, manteniendo con ello un nivel de ruido y temperatura muy bajo que harán desaparecer los molestos soplidos, y el PC, sobrado de potencia, mantendrá el tipo sin problema alguno.

Para empezar, tendremos que deshabilitar P-State en el gestor de arranque múltiple o GRUB. P-State establece una serie de puntos de operación de voltaje y frecuencia para poder reducir la carga térmica en función del rendimiento que precisa el microprocesador al ejecutar una operación puntualmente. Esos puntos están preestablecidos con la variable "governor", que establece la escala y la frecuencia de trabajo en función de la demanda del microprocesador con los valores "perfomance", "powersave", "ondemand"," conservative", etc..
 Para poder personalizar la velocidad del microprocesador a los valores y rangos que yo deseo, ni con "ondemand" ni con "conservative", por ejemplo, lo conseguí; así, empezaré por deshabilitar en el archivo grub a intel_pstate.
Abrimos el Terminal de "Root" (Inicio -> Sistema -> Terminal de "Root"), y tecleamos 


mousepad /etc/default/grub

Lo editamos, y dejamos la línea GRUB_CMDLINE_LINUX_DEFAULT como sigue:


GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"


No olviden Guardar el archivo después de editarlo y ejecutar luego en el Terminal de root el comando update-grub

Al actualizar esta línea del GRUB nos podemos encontrar con dos cosas: que sólo actúa "powersave" en un único núcleo lógico (CPU0) de los cuatro que tiene el i7 Ivy Bridge, o que funcionen todos en el modo "ondemand"


Para que todos los núcleos lógicos (4 lógicos y 2 físicos) funcionen en el modo "powersave", creamos o editamos ( si ya existe) con Mousepad desde el explorador de archivos Thunar (abrir el administrador de archivos Thunar desde el Terminal de Root tecleando thunar, para disponer de permisos administrativos) el archivo /etc/default/cpufrequtils, y añadimos la siguiente línea:

GOVERNOR="powersave"


Guardamos el archivo, y reiniciamos.


Instalamos con Synaptic, si no los tenemos ya, 

sysfsutils
libsysfs2


Estos paquetes incluyen un archivo de configuración llamado sysfs.conf que nos permitirá configurar la frecuencia mínima y máxima a la que va a trabajar el microprocesador; en mi caso, con un i7 Ivy Bridge, editamos el archivo /etc/sysfs.conf con Mousepad desde el explorador de archivos Thunar ( recuerden abrirlo desde el Terminal de Root para poder guardar los cambios), y añadimos las siguientes líneas:




devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 2000000
devices/system/cpu/cpu1/cpufreq/scaling_max_freq = 2000000
devices/system/cpu/cpu2/cpufreq/scaling_max_freq = 2000000
devices/system/cpu/cpu3/cpufreq/scaling_max_freq = 2000000

devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 1600000
devices/system/cpu/cpu1/cpufreq/scaling_min_freq = 1600000
devices/system/cpu/cpu2/cpufreq/scaling_min_freq = 1600000
devices/system/cpu/cpu3/cpufreq/scaling_min_freq = 1600000 

Guardar y reinciar.

Tecleando cpufreq-info desde el Terminal de Root podemos verificar la nueva configuración:


También, si tenemos instalado los paquetes (podemos instalarlos con Synaptic si no los tenéis instalados) linux-cpupower y libcpupower1, podemos usar en la línea de comandos del Terminal de Root cpupower para verificar los cambios:


cpupower -c all frequency-info


Ahora ya no me castiga el oído derecho, y ya parece un ordenador distinto. El rendimiento del microprocesador es estupendo, y la temperatura, la velocidad del ventilador y el ruido, es ahora totalmente inferior. En la BIOS tengo configurado tambiénel PCHealth del siguiente modo:

CPU Fan Control Mode [Smart Control Mode]
Start Temperature [40ºC]
Start Fan DutyCycle [20%]
Highest Fan DutyCycle [50%]


Estos nanoPCs tienen asociado el mismo disipador de calor al microprocesador y el chip de vídeo, y lleva un concentrador para aumentar la eficiencia de la refrigeración con el ventilador.  50ºC es una temperatura nominal muy razonable para estos mini PCs.

No hay comentarios:

Publicar un comentario