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
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:
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.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
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.conf
files / 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.
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.