Tengo una computadora portátil (thinkpad) con 2 cpus. Actualmente puedo leer las temperaturas de la CPU de los archivos a continuación con 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
Mi pregunta es por qué el núcleo almacena esta información en tantos lugares diferentes y cuál es el archivo "estándar" para leer la temperatura de una CPU.
¿Está sucediendo esto debido a systemd (estoy usando Arch Linux) o distribuciones de Linux no systemd como Slackware tienen un enfoque diferente?
fuente
Primero,
/sys/class
es una forma conveniente de encontrar cosas/sys
. Encontrarás que todo lo que hay dentro es en realidad un enlace simbólico; Estoy bastante seguro de que su primera estrofa está vinculada a su tercera estrofa.La segunda estrofa es el núcleo que lee la temperatura directamente desde la CPU / chipset. La tercera estrofa es el núcleo que obtiene el valor del BIOS a través de ACPI. Si bien en su sistema pueden dar la misma respuesta, no es necesario (por ejemplo, el BIOS podría estar usando sensores diferentes, promediando algunos juntos o aplicando algún ajuste específico de la placa).
Finalmente, cada estrofa tiene dos lecturas diferentes porque probablemente hay dos termómetros. O al menos, la API del hardware lo permite.
fuente
Eche un vistazo a los archivos * _label para ver lo que se informa: aquí está mi i5:
(grep "" solo se usa como "gato con nombres de archivo")
Entonces, aquí hay una temperatura total de la CPU, más una temperatura por núcleo.
En un sistema más grande, con múltiples CPU, puede ver docenas de entradas.
fuente