Cómo habilitar salvaguardas para la temperatura de la CPU

9

Mi escritorio tiene una mala costumbre. Cuando tengo varias aplicaciones de alta intensidad ejecutándose y mi CPU está en uso máximo durante un período de tiempo, la temperatura del núcleo aumenta y mi computadora se apaga automáticamente.

¿Hay alguna manera de monitorear (escribir un script) la temperatura de mi CPU en segundo plano y tener algún tipo de advertencia cuando supera una cierta temperatura?

Estoy ejecutando Opensuse con dwm como mi administrador de ventanas. Usualmente uso sensorspara ver la temperatura de mi CPU.

n0pe
fuente
1
¿Bajo Linux u otras variantes de Unix? El método para obtener la temperatura o ser notificado de los cambios de temperatura difiere entre las variantes de Unix.
Gilles 'SO- deja de ser malvado'
Mi mal @Gilles, agregué información a mi pregunta
n0pe
Después de ver que aumenta la temperatura, debe reducir la velocidad de su CPU.
Nils

Respuestas:

5

Puede escribir un script para mostrar su temperatura en la barra de estado de dwm, por ejemplo:

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

Su sensorssalida puede ser más compleja, dependiendo de su configuración: esto funciona en una de mis máquinas:

 awk '/temp1/ {print +$2"°C"}' <(sensors)

Si aplica parches en los colores de estado , también puede hacer que la salida cambie de color a medida que $tempalcanza valores más altos ...

Arch Wiki tiene una introducción a la configuración de un script de barra de estado básico y el sitio dwm incluye un ejemplo .xinitrc .

Puede ver mi dwm-statusscript para más detalles: http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status

jasonwryan
fuente
Esta es una gran idea que no pensé. Nunca tuve tiempo de jugar con la barra de estado de dwm, así que será divertido. Veré lo que puedo gestionar y comentaré.
n0pe
Funcionado a la perfección, y ahora tengo una barra de estado muy bien personalizado :)
n0pe
Excelente: te da bastante margen para trabajar ...
jasonwryan
2

Tengo exactamente el mismo problema y lo que uso es el paquete "cpufreqtools" (o simplemente "cpufreq" - ¡no lo recuerdo!).

Te da dos comandos: cpufreq-info y cpufreq-set

cpufreq-info enumera la velocidad actual de la CPU y las velocidades mínima y máxima. y los pasos disponibles también.

cpufreq-set es más útil para usted porque puede limitar la velocidad máxima que alcanzará su CPU.

Mi CPU propensa al sobrecalentamiento tiene las velocidades disponibles de 800MHz, 1.60GHz y 1.80GHz. Entonces, lo que hago es limitarlo a 1.60 GHz de esta manera:

cpufreq-set --max 1.60Ghz

¡Funciona de maravilla!

Si está más avanzado en sus habilidades con Linux, incluso podría incluirlo en un script de arranque para que siempre se ejecute tan pronto como se inicie Linux.

Buena suerte.

Daniel
fuente
cpufrequtils (ubuntu 16.04).
Green Tree
1

Creé un script para abordar directamente este tipo de problema de sobrecalentamiento. Limite su CPU según la temperatura deseada. Se ejecuta automáticamente en segundo plano así:

sudo ./temp_throttle.sh 80

Ese comando hará que los núcleos de tu CPU se ralenticen cuando alcancen los 80 grados centígrados. Cuando la temperatura baja, los núcleos de la CPU podrán volver a funcionar más rápido. Puedes encontrar temp_throttle aquí .

Sepero
fuente
1
En el futuro, no espere que todos ejecuten Ubuntu con su política predeterminada de sudo-todo. Mencione que uno tiene que permitir el script en la configuración de sudo o (mejor) simplemente escriba que requiere privilegios de root que se pueden lograr a través de sudo. O, en Linux, describa las capacidades (como en la capabilities(7)página de manual) requeridas.
Peter