Как я нахожу температуры без стороннего программного обеспечения?

Я работаю sensors-detect в моей системе с lm-sensors потому что моя система продолжает закрываться, когда я смотрю видео YouTube

Таким образом, я задаюсь вопросом, как я могу найти температуры вентилятора и CPU вручную без стороннего программного обеспечения как lm-sensors? Я просто не уверен, где они хранятся.

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
задан 24 July 2018 в 15:10

5 ответов

Это походит на то, что Вы хотите, /sys/class/hwmon и /sys/class/thermal.

Оба из них обеспечивают простой основанный на оболочке доступ к данным, которые Вы хотите (hwmon каталог будет также включать другие типы датчика). У каждого есть один каталог для каждого интерфейса датчика в Вашей системе (который может иметь больше чем один датчик).

Три других вещи отметить, хотя:

  • Если у Вас нет действительно системы с ошибками, работая sensors управляйте даже, после того как секунда не должна иметь никакого заметного эффекта. На самом деле регулярно чтение файлов в вышеупомянутых каталогах может иметь больше эффекта.
  • Графики являются Вашим другом здесь. Я предложил бы получить что-то как netdata или collectd, работающий, таким образом, Вы имеете в реальном времени (или псевдореальное время) данные для взгляда на.
  • Проверьте свои напряжения также. Чем Ваше описание могло также произойти из-за наличия источника питания, который не может не отставать от требований к питанию Вашей системы. Это будет обозначено напряжениями, отбрасывающими значительно, когда система будет являться объектом высокой загрузки.
10
ответ дан 23 November 2019 в 04:46

Я не знаю то, что Вы действительно хотите. Программа lm-датчика (и поэтому sensors команда), используют libsensor библиотеку; в случае, если Вы используете Ubuntu 18.04, это - libsensors4, версия 3.4.0-4. Это - та же библиотека, которая читает температуру как видно в sysкаталог.

Для подведения его датчики являются хорошим выбором. Наблюдать, что температура непрерывно использует

watch -n 1 sensors

Если Вы хотите записать программу, необходимо смотреть на libsensors с man libsensorsили смотрите в /usr/share/doc/. Необходимо включать #include <sensors/sensors.h>. Это будет использовать sensors.confфайлы/etc/sensors3.conf и/или/etc/sensors.conf. Далее (пользователи) конфигурация могут быть найдены в /etc/sensors.d/, если используется.

Если Вы думаете, что отсутствуете, некоторые датчики смотрят на /sys/class/thermal или связанный /sys/devices/virtual/thermal каталог.

Получить температуры всего теплового использования зон

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

77000
66000
67000

Температура измеряется в miliCelcius (мГц), в случае выше 77.0, 66.0, 67,0 °C.

Следить непрерывно за использованием

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

В этом каталоге можно также найти информацию об охлаждении (вентилятор) устройства, и как регуляторы PID программируются.

Я также хотел бы заявить, что некоторая защита перегрева является кодированными базирующимися очень аппаратными средствами (это - хорошая идея), куда данные помещаются в Вашу BIOS.

5
ответ дан 23 November 2019 в 04:46

Этот ответ об одном способе контролировать температуру процессора вручную для некоторых процессоров Intel через доступ к Машине определенным регистрам (MSR) непосредственно.

Первая вещь отметить, в этом случае, что читается из MSR, относительно Tcc, предельной температуры, таким образом, дополнительное вычисление требуется, чтобы определять фактическую температуру.

Обратитесь к Intel® 64 и Руководству Разработчика программного обеспечения Архитектуры IA-32, или в Вашем случае эквивалентный AMD.

В моем случае я хочу биты 22-16 из MSR в 0x1B1, иначе IA32_PACKAGE_THERM_STATUS. Tcc для моего более старого i7-2600K составляет 98 градусов.

Вот простой сценарий для контроля температуры (и частота ЦП) вручную:

#! /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

И вот некоторый демонстрационный вывод, где я добавляю некоторую загрузку ЦП спустя некоторое время (временный файл идет от 31 до 73 градусов):

$ 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
ответ дан 23 November 2019 в 04:46

Установите Psensor (psensor) из репозиториев Ubuntu по умолчанию и настройте Psensor для автоматического проигрывания аварийного звука каждый раз, когда температура выходит за предел определенного максимума пользователя. Цель этого состоит в том, чтобы позволить Вам услышать звук предупреждения, прежде чем Ваша система закроется, не добавляя дополнительное приложение наверху на Вашу систему.

Psensor отображает себя на рабочем столе так же мало значка термометра в области уведомлений в правом верхнем углу рабочего стола рядом с часами. Можно щелкнуть правой кнопкой по значку термометра в любое время для отображения аппаратных температур.

4
ответ дан 23 November 2019 в 04:46

Поскольку температура отображается в виде файла (/sys/class/thermal/thermal_zone0/temp) в системе Linux, мы можем найти ответ, прочитав файл. Чтобы узнать температуру только с помощью скрипта оболочки:

  1. Выполните команду: touch get_temperature.sh, чтобы создать новый пустой файл;

  2. Введите следующий код ниже:

#!/bin/sh

TEMP_RAW=$(cat /sys/class/thermal/thermal_zone0/temp)
# TEMP_CEL=$(expr $TEMP_RAW / 1000)
TEMP_CEL=$(echo "scale=2;$TEMP_RAW / 1000" | bc)
TEMP_CEL_W_SIGN=temp=${TEMP_CEL}\'C

# print
echo $TEMP_CEL_W_SIGN
  1. Чтобы сделать скрипт исполняемым , запустите: sudo chmod +x get_temperature.sh;

  2. Выполните скрипт, выполнив: ./get_temperature.sh.

Редактировать: Спасибо за совет в разделе комментариев!

0
ответ дан 8 October 2020 в 12:51

Другие вопросы по тегам:

Похожие вопросы: