web-dev-qa-db-fra.com

Comment trouver les températures sans logiciel tiers?

J'exécute sensors-detect sur mon système avec lm-sensors car mon système s'arrête de fonctionner lorsque je regarde des vidéos youtube

Je me demande donc comment puis-je trouver manuellement les températures du ventilateur et de l'unité centrale de traitement sans logiciel tiers, tel que lm-sensors? Je ne suis pas sûr de savoir où ils sont stockés.

processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 16
model       : 6
model name  : AMD Athlon(tm) II X2 240e Processor
power management: ts ttp tm stc 100mhzsteps hwpstate

x86_64

9
user610658

Cela ressemble à ce que vous voulez, c'est /sys/class/hwmon et /sys/class/thermal.

Ces deux solutions fournissent un accès simple, basé sur l'environnement, aux données souhaitées (le répertoire hwmon inclura également d'autres types de capteurs). Chacun a un répertoire pour chaque interface de capteur de votre système (qui peut avoir plus d'un capteur).

Trois autres choses à noter cependant:

  • Sauf si vous avez un système vraiment mauvais, exécuter la commande sensors même une fois par seconde ne devrait pas avoir d'effet perceptible. En fait, la lecture régulière des fichiers dans les répertoires susmentionnés peut avoir plus d’effet.
  • Les graphiques sont votre ami ici. Je suggérerais de faire fonctionner quelque chose comme netdata ou collectd pour que vous ayez des données en temps réel (ou presque) à consulter.
  • Vérifiez vos tensions aussi. Ce que vous décrivez pourrait également être dû à une alimentation électrique qui ne peut pas répondre aux besoins de votre système. Cela sera indiqué par des tensions chutant de manière significative lorsque le système est soumis à une charge élevée.
10
Austin Hemmelgarn

Cette réponse concerne un moyen de surveiller manuellement la température du processeur pour certains processeurs Intel en accédant directement aux registres MSR (Machine Specific Registers).

La première chose à noter est, dans ce cas, ce qui est lu dans le MSR est relatif à la Tcc, la température limite, de sorte qu'un calcul supplémentaire est nécessaire pour déterminer la température réelle.

Reportez-vous au Manuel du développeur de logiciels architectes Intel® 64 et IA-32 , ou l’équivalent AMD dans votre cas.

Dans mon cas, je veux les bits 22 à 16 du MSR à 0x1B1, autrement dit IA32_PACKAGE_THERM_STATUS. Le Tcc pour mon ancien i7-2600K est de 98 degrés.

Voici un script simple pour surveiller manuellement la température (et la fréquence du processeur):

#! /bin/dash
#
# temp_mon3 Smythies 2016.10.05
#       a simplified version of temp_mon2,
#       for monitoring temp.
#       Note: it is on purpose that -a is not used.
#       Also CPU0 frequency (1 is good enough, when all
#       are loaded).
#
# temp_mon2 Smythies 2016.09.29
#       Monitor Package temperatures.
#       Use clock modulation to control temps.
#       i.e. simulate the second to last level
#       of defense.
#       Use simple primatives.
#       run as Sudo
#       hardcoded for my tcc of 98 degrees.
#
echo ... begin package temperature monitoring ...

#
# In case I forgot (which I often do)

modprobe msr

#
# first let the drastic effect of the Sudo command decay
# Done later in temp_mon3.

#
# some stuff

COMMAND="rdmsr --bitfield 22:16 -u 0x1B1"
COMMAND2="cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq"

#
# then get on with it

while [ 1 ];do
  sleep 4
  TEMP_RAW=$(eval $COMMAND)
  CPU0_FREQ=$(eval $COMMAND2)
  TEMP_ACT=$((98-TEMP_RAW))
  echo "$TEMP_ACT   $CPU0_FREQ"
done

Et voici quelques exemples de sortie, où j'ajoute un peu de charge de processeur après un certain temps (la température varie de 31 à 73 degrés):

$ Sudo ./temp_mon3
[Sudo] password for doug:
... begin package temperature monitoring ...
31   1605275
31   1605154
32   1605164
30   1605148
31   1605176
51   3511279
54   3511278
55   3511279
57   3511283
58   3511279
60   3511278
61   3511284
63   3511279
64   3511280
64   3511280
66   3511280
67   3511278
68   3511280
68   3511281
69   3511278
71   3511280
70   3511281
71   3511281
71   3511280
72   3511276
72   3511277
73   3511283
73   3511279
^C
9
Doug Smythies

Je ne sais pas ce que tu veux vraiment. Le programme lm-sensor (et donc la commande sensors) utilise la bibliothèque libsensor; si vous utilisez Ubuntu 18.04, il s’agit de libsensors4, version 3.4.0-4. C'est la même bibliothèque qui lit la température, comme on peut le voir dans le répertoire sys.

Pour résumer, les capteurs sont un bon choix. Pour surveiller la température en permanence, utilisez

watch -n 1 sensors

Si vous voulez écrire un programme, vous devez jeter un oeil sur libsensors avec man libsensors ou jeter un oeil dans le /usr/share/doc/. Vous devez inclure #include <sensors/sensors.h>. Il utilisera les sensors.conffiles / etc/sensors3.conf et/ou / etc/sensors.conf. Une configuration supplémentaire (utilisateurs) peut être trouvée dans /etc/sensors.d/, si elle est utilisée.

Si vous pensez que certains capteurs manquent, consultez le répertoire /sys/class/thermal ou le répertoire lié /sys/devices/virtual/thermal.

Pour obtenir les températures de toutes les zones thermales, utilisez

$ cat /sys/devices/virtual/thermal/thermal_zone?/temp

77000
66000
67000

La température est mesurée en milligrammes (mC), dans les cas supérieurs à 77,0, 66,0, 67,0 ° C.

Pour regarder continuellement utiliser

watch -n 1 cat /sys/devices/virtual/thermal/thermal_zone?/temp

Dans ce répertoire, vous pouvez également trouver des informations sur vos appareils de refroidissement (ventilateurs) et sur la programmation des régulateurs PID.

Je voudrais également indiquer que certaines protections contre la surchauffe sont codées très matériellement (c’est une bonne idée), où les données sont placées dans votre bios.

5
abu_bua

Installez Psensor (psensor) à partir des référentiels Ubuntu par défaut et configurez-le pour qu'il émette automatiquement une alerte sonore lorsque la température dépasse un maximum déterminé par l'utilisateur. Le but de cette opération est de vous permettre d’entendre un son d’avertissement avant votre système s’arrête sans ajouter de charge système supplémentaire pour votre système.

Psensor s’affiche sur le bureau sous la forme d’une petite icône de thermomètre dans la zone de notification située dans le coin supérieur droit du bureau, à côté de l’horloge. Vous pouvez cliquer avec le bouton droit sur l'icône du thermomètre à tout moment pour afficher les températures matérielles.

4
karel