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
для логирования показателей и затем вывода красивых графиков, диаграмм
Иногда возможна ситуация, когда необходимо использовать сторонние модули для сенсоров. Узнать о поддерживаемых устройствах можно на официальном сайте 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
Можно проверять
$ 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
С дальнейшим широким полем для творчества
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.:
Если кто-то знает другие варианты, прошу поделиться