Tengo una notebook que siempre a tenido problemas de temperatura,  una de las maneras que tenia de reducir la temperatura con de una base de ventilación pero no era suficiente.

La notebook es una Dell con un Core i7 de segunda generación y una tarjeta de vídeo híbrida doble, una Intel y una Nvidia, cuando la compre apenas encendía sin haber abierto nada todavía llegaba a 80°C, y la base apenas le bajaba entre 5°C o 10°C con suerte.

Esto debido a que por problemas de drivers y problemas de gestión de energía de Linux siempre se mantenían las 2 tarjetas de video activas en todo momento cuando en realidad solo debería estar una, en ese momento utilizaba Fedora y nunca logre desactivar la Nvidia.

Por esa razón cambie de nuevo a Debian, solo con ese cambio reduje la temperatura a 60°C y con el script de abajo reduje otros 10°C, para quedar en unos 50°C y hoy con mejoras en los drivers ronda los 40°C

La primera parte del script apaga la tarjeta de video y la segunda capa el turbo boost del procesador. Para la segunda parte necesitamos el paquete

#apt-get install msr-tools

Podemos guardar lo siguiente en un archivo y guardarlo por ejemplo en /bin/extinguisher y le damos permisos de ejecución con chmod +x /bin/extinguisher obviamente luego lo corremos con sudo

En este caso es para un CPU de 4 nucleos y 8 subprocesos por eso va del -p0 al -p7, en el caso de ser por ejempo de 2 nucleos y 4 subprocesos el script hay que cambiarlo y van las lineas del -p0 al -p3.

#!/bin/bash
#Apaga la segunda tarjeta de video
# Asegurarse que esta instalado firmware-linux-nonfree
mountpoint -q /sys/kernel/debug
mount -t debugfs none /sys/kernel/debug
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
cat /sys/kernel/debug/vgaswitcheroo/switch

#desactiva Turbo Boost
modprobe msr
wrmsr -p0 0x1a0 0x4000850089
wrmsr -p1 0x1a0 0x4000850089
wrmsr -p2 0x1a0 0x4000850089
wrmsr -p3 0x1a0 0x4000850089
wrmsr -p4 0x1a0 0x4000850089
wrmsr -p5 0x1a0 0x4000850089
wrmsr -p6 0x1a0 0x4000850089
wrmsr -p7 0x1a0 0x4000850089

Para volver a activas Turbo Boost podemos poner lo siguiente en otro archivo, colocarlo en /bin y darle permisos de ejecución de igual forma que el anterior.

#!/bin/bash
modprobe msr
wrmsr -p0 0x1a0 0x850089
wrmsr -p1 0x1a0 0x850089
wrmsr -p2 0x1a0 0x850089
wrmsr -p3 0x1a0 0x850089
wrmsr -p4 0x1a0 0x850089
wrmsr -p5 0x1a0 0x850089
wrmsr -p6 0x1a0 0x850089
wrmsr -p7 0x1a0 0x850089

 Mas que esperar que esto les sirva, lo que realmente espero es que no lo necesiten nunca.

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Alvaro De León

Subscribe now to keep reading and get access to the full archive.

Continue reading