Обзор средств мониторинга за температурой

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

Я попробую описать как можно извлечь подобную информацию.

lm_sensors

Одной из утилит мониторинга аппаратного обеспечения является sys-apps/lm_sensors.
Многие GUI-программки, -плазмоиды и другие -оиды, пользуются данными, которые предоставляет lm_sensors. Некоторые из них могут быть собраны с USE-флагом lm_sensors. Чтобы сильно не заморачиваться, можно добавить USE lm_sensors прямо в make.conf.
Итак:

 # emerge -av lm_sensors

После установки приступаем к его настройке, для которой есть простой, но тем не менее функциональный скрипт – sensors_detect.

 # sensors-detect

На все вопросы, отвечаем YES. Примерный вывод может быть таким

После, необходимо запустить демон lm_sensors

 # /etc/init.d/lm_sensors start

и попробовать считать данные сенсоров.

$ sensors

У меня получился вот такой вывод.

Для нормального функционирования lm_sensors требуется включить в ядро CONFIG_HWMON и найденные модули сенсоров CONFIG_SENSORS_*.

В дальнейшем, этими результатами можно пользоваться в разных плагинах или апплетах, например xfce4-sensors-plugins, conky, sensors-applet или виджетах от superkaramba.

Также можно собрать lm_sensors с флагом sensorsd и использовать net-analyzer/rrdtool для логирования показателей и затем вывода красивых графиков, диаграмм :slight_smile:

Иногда возможна ситуация, когда необходимо использовать сторонние модули для сенсоров. Узнать о поддерживаемых устройствах можно на официальном сайте lm_sensors

hddtemp

Для мониторинга температуры HDD можно использовать app-admin/hddtemp.
Устанавливаем:

 # emerge -av app-admin/hddtemp

Настраиваем:

 # echo 'HDDTEMP_DRIVES="/dev/sda /dev/sdb"' » /etc/conf.d/hddtemp

Или другими словами, добавить в переменную все HDD, которые хотим мониторить и запускаем демона.

 # /etc/init.d/hddtemp start

Можно проверять :slight_smile:

$ nc localhost 7634
или
 # hddtemp /dev/sd[ab]

А дальше эти результаты также можно использовать в разных апплетах и виджетах.

Кстати, узнать о поддерживаемых устройствах можно вот так:

 # hddtemp --drivebase

Не нужно огорчаться, если своего HDD вы там не увидите. hddtemp будет использовать самые распространненые параметры данной марки HDD.
Например, моего WDC Red 1Tb в списке нет, но тем не менее:

 # hddtemp /dev/sdb
ВНИМАНИЕ: Диск /dev/sdb не включен в базу данных поддерживаемых приводов.
ВНИМАНИЕ: Но с использованием распространенных параметров он что-то выдает.
ВНИМАНИЕ: Заметьте, что показанная температура может таковой не являться.
ВНИМАНИЕ: См. опции --help, --debug и --drivebase.
ВНИМАНИЕ: И не забудьте, что можно добавить привод в hddtemp.db
/dev/sdb: WDC WD10EFRX-68PJCN0:  37°C или °F

NVIDIA

Обладатели NVIDIA, использующие nvidia-drivers могут использовать “встроенное” средство nvidia-smi для мониторинга за состоянием карты. К сожалению, nouveau не может мониторить состояние карты, так как не реализует smi.
Например, запрос для мониторинга за температурой может быть вот таким (результат):

nvidia-smi -q -d TEMPERATURE

С дальнейшим широким полем для творчества :slight_smile:

Memory

Также есть возможность мониторить различную информацию о памяти.
Для этого необходимо установить sys-apps/i2c-tools

 # emerge -av sys-apps/i2c-tools

Убедитесь в том, что ядро собрано с поддержкой EEPROM

 # grep -i eeprom /boot/config-`uname -r`*
или 
 # zgrep -i eeprom /proc/config.gz

Также удостоверьтесь, что для устройства SMBus Controller модуль ядра загружен.

 # lspci -v | grep -A 5 -i smbus

Загрузите необходимые модули:

 # modprobe -a eeprom

и запустите

 # decode-dimms

К сожелению, ещё нет корректной поддержки в ядре моего SMBus Controller, поэтому, покажу результат с другой машины.

P.S.: Если кто-то знает другие варианты, прошу поделиться :slight_smile:

Для нвидии еще: nvidia-settings -q ‘GPUCoreTemp’ для ати: aticonfig --odgt

Теперь и пользователи nouveau мониторят температуру.
lm_sensors её прекрасно показывает.
Пример:

nouveau-pci-0100
Adapter: PCI adapter
temp1:        +53.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +105.0°C, hyst =  +2.0°C)
                       (emerg = +110.0°C, hyst =  +5.0°C)