J'ai un ordinateur portable (thinkpad) avec 2 processeurs. Actuellement, je peux lire les températures du processeur dans les fichiers ci-dessous avec cat (1):
cat /sys/class/thermal/thermal_zone0/temp
cat /sys/class/thermal/thermal_zone1/temp
cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input
cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_input
cat /sys/devices/LNXSYSTM:00/LNXCPU:00/thermal_cooling/subsystem/thermal_zone1/temp
cat /sys/devices/LNXSYSTM:00/LNXCPU:01/thermal_cooling/subsystem/thermal_zone0/temp
Ma question est pourquoi le noyau stocke ces informations sur tant d'endroits différents et lequel est le fichier "standard" pour lire la température d'un processeur?
Est-ce que cela se produit à cause de systemd (j'utilise Arch Linux) ou des distributions Linux non-systemd comme Slackware ont une approche différente?
la source
Première,
/sys/class
c'est un moyen pratique de trouver des choses/sys
. Vous trouverez que tout à l'intérieur est en fait un lien symbolique; Je suis sûr que votre première strophe est liée à votre troisième strophe.La deuxième strophe est le noyau qui lit la température directement depuis le CPU / chipset. La troisième strophe est le noyau obtenant la valeur du BIOS via ACPI. Alors que sur votre système, ils peuvent donner la même réponse, ils n'en ont pas besoin (par exemple, le BIOS peut utiliser des capteurs différents, en faire une moyenne ensemble ou appliquer un ajustement spécifique à la carte).
Enfin, chaque strophe a deux lectures différentes car il y a probablement deux thermomètres. Ou du moins, l'API du matériel le permet.
la source
Jetez un œil aux fichiers * _label pour voir ce qui est signalé - voici mon i5:
(grep "" est juste utilisé comme "chat avec des noms de fichiers")
Voici donc une température totale du CPU, plus une température par cœur.
Sur un système multi-CPU plus grand, vous pouvez voir des dizaines d'entrées.
la source