Uno de los mayores problemas de Linux frente a Windows, en arquitecturas AMD Ryzen, es el control de temperaturas y velocidad de ventiladores. Por poner un par de ejemplos claros:
- En Windows puedo ver la temperatura de todos los sensores de mi motherboard, así como la gestión de ventiladores de la misma, sin ningún problema. En Linux solo me muestra la temperatura de CPU y GPU.
- En Windows, mi GPU (una Radeon RX590) detiene automáticamente los ventiladores de la misma cuando trabaja a temperaturas inferiores a 50º. En linux los ventiladores se encuentran permanentemente al 50%. Aunque es una gráfica muy silenciosa, el sonido se llega a notar.
No obstante, en Linux hay poco que no se pueda hacer, así que en este post vamos a ver como tratar estos dos puntos
Ver todos los sensores en lm-sensors
Instalación de paquetes
Una herramienta básica en Linux para poder ver temperaturas, voltajes, rpm, etc, es lm-sensors
, y su interfaz gráfica psensor
. Vamos a instalarlo poniendo un ubuntu como ejemplo, aunque el paquete puede ser instalado en cualquier distribución
|
|
En Arch, sería
|
|
Una vez instalado, podemos lanzar la autodetección de los sensores, aunque el número de ellos que detecte será muy bajo:
|
|
Podemos ver la información de nuestros sensores con
|
|
Detección del hardware.
Ahora nos toca buscar un poco de información. Es necesario conocer el chipset que utiliza nuestra placa base. En mi caso, (una MSI X470 Pro Carbon), monta un chip nuvoTon NCT 6795D.
Con esta información en la mano, es necesario buscar de nuevo el kernel driver que da soporte a este chip. En este caso concreto, sería el NCT6775
una vez que tenemos el kernel driver que nos aplica, vamos a probarlo:
|
|
Si ahora lanzamos sensors, nos debería mostrar mucha más información que antes:
|
|
Configuración
Como funciona correctamente, vamos a aplicar los cambios para que se lance automáticamente en cada inicio. Para ello modificamos el fichero /etc/rc.local
|
|
Y lo modificamos para que quede algo parecido a esto:
|
|
Modificamos los permisos:
|
|
Y con esto ya tenemos todo listo para obtener informacion de todos los sensores de nuestra placa base.
Controlar ventiladores
Utilizando el propio lm-sensors
, y fancontrol
, podemos controlar la velocidad y umbrales de todos los ventiladores de nuestro PC. En mi caso los tengo controlados desde la propia BIOS, pero me interesa que el comportamiento de los ventiladores de la GPU sea similar al de Windows: Que por debajo de 45-50 grados los ventiladores se detengan por completo.
En distribuciones basadas en arch, lo más rápido y cómodo es instalar la utilidad Corectrl desde los repositorios AUR, pero para otro tipo de distros es necesario compilar el código manualmente. Para ahorrarnos tiempo, vamos a utilizar fancontrol
|
|
Configuración
Ahora vamos a lanzar el asistente de configuración:
|
|
Esto nos lanzará un asistente muy claro en el que nos irá preguntado qué ventiladores queremos modular, los umbrales en que se activarán, la velocidad de cada uno de ellos, etc etc. Al finalizar nos generará el fichero de configuración en /etc/fancontrol
Un ejemplo de mi configuración:
|
|
Para iniciar el programa, lo lanzamos con
|
|
Con todo esto, ya tenemos un comportamiento más o menos similar al encontrado en Windows. Además, modificando los ficheros de configuración, podemos cambiar las alertas, etiquetas de los sensores, etc. También podemos utilizar esta información para utilizar en extensiones de gnome o KDE…. Pero todo esto lo veremos en otros post.