Как узнать температуру оборудования в Linux?

Трудно не согласиться с тем, что современное оборудование, не имеющее «на борту» температурные датчики может считаться «современным» и вообще полноценным. Ведь именно от температурных параметров зависит эффективная работа самого «железа». В Linux-системах существует масса свободных инструментов для доступа к температурным характеристикам работы оборудования и их мониторинга. О них более подробно и будет изложено в данной статье.

Зачем следить за температурой оборудования?

Обычных пользователей этот вопрос, конечно, может совсем и не волновать. За температурами следят администраторы, геймеры, тестеры и оверклокеры. Представитель из каждой из обозначенных категорий деятельности делает это в целях, непосредственно связанных с родом деятельности. Так, например, для администратора критически важно не допустить перегрева, иначе велик риск завалить систему. Для тестеров важно выявить стабильные характеристики режимов работы оборудования в различных режимах использования. В том числе и температурных. Практически во всех случаях, когда речь идёт о комнатном использовании оборудования, в частности, компьютерного железа, важно не допускать именно высоких температур. Ведь вся современная электроника построена на полупроводниках. Для которых «комфортным» для рабочих температур является диапазон от -40 до +60 градусов по Цельсию. По этой причине все геймеры и оверклокеры так стремятся оснастить свои системы максимально эффективными системами охлаждения. Подобный подход позволяет существенно компенсировать температурный нагрев в самых требовательных приложениях и играх. А также при разгоне тех же процессоров и графических чипов.

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

В настоящее время среди всего разнообразия, для Linux существует лишь одна по-настоящему универсальная и свободная утилита, предоставляющая доступ к целому комплексу доступных в системе датчиков. И не только температурных. Это Lm-sensors. Кроме неё также полезно использовать HDDTemp и Udisks2. Которые, как понятно из названий, работают с накопителями — HDD и/или SSD. Эти утилиты дополняют функционал Lm-sensors, предоставляя доступ к температурам накопителей. С чем сама Lm-sensors справляется плохо.

Lm-Sensors

Хотя Lm-sensors и не может полноценно читать информацию о температуре накопителей, но всё же обладает довольно мощными возможностями. Она позволяет также узнать данные о частоте вращения установленных в системе вентиляторов. При этом доступ возможен в том числе и к датчикам на периферийных устройствах. А не только на основной (материнской) плате.

Эта утилита обновляется разработчиками не так часто, но всё-таки ещё поддерживается. Далеко не всегда можно поспеть за самыми новыми веяниями в сфере компьютерного «железа», получить доступ к его спецификации, разработать и протестировать соответствующие обновления. Однако, даже в таких условиях Lm-sensors позволяет получить данные о температурах всех критически важных компонентах системы. Таких как CPU, GPU и основных параметрах чипсета.

Lm-sensors доступна практически в любом дистрибутиве Linux в стандартном репозитории. Обычно соответствующий пакет называется lm-sensors. Для его установки, например, в системах Ubuntu следует выполнить команду:

$ sudo apt-get install lm-sensors

Сразу после установки Lm-sensors настоятельно рекомендуется выполнить начальную конфигурацию утилиты. Это необходимо для полного детектирования доступных в системе датчиков. Иначе информация, выдаваемая утилитой lm-sensors будет, скорее всего, неполной. Следующая команда поможет просканировать доступное оборудование, а также определить наиболее подходящий драйвер для считывания параметров датчиков:

$ sudo sensors-detect

Дальше необходимо на все выдаваемые запросы отвечать утвердительно, т. е. «yes». Поскольку в этом случае сканирование будет полноценным. Следует отметить одну важную деталь: иногда запросы предлагают разное написание ответов, это может быть «yes», «YES» или даже «Yes». Вводить ответ нужно в точности как он предложен в конкретном запросе — это влияет на результат сканирования. В завершении утилита предложит установить модуль ядра, содержащий оптимальный драйвер для считывания показаний датчиков для конкретной системы:

Driver `nct7802':
* Bus `SMBus PIIX4 adapter port 0 at 0b00'
Busdriver `i2c_piix4', I2C address 0x2a
Chip `Nuvoton NCT7802Y' (confidence: 8)

To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
nct7802
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!
Do you want to add these lines automatically to /etc/modules? (yes/NO)

В данном случае, как можно видеть, lm-sensors в качестве оптимального драйвера определила «nct7802». Также приведены инструкции для ручного добавления модуля этого драйвера в сценарий загрузки ядром. Вместе с тем также возможна автоматическая правка файла /etc/modules. Что более предпочтительнее и рекомендуется поступать именно таким образом. Далее необходимо перезагрузить систему и далее, выполнив следующую команду, убедиться, что модуль «nct7802» загружен:

lsmod | grep nct7802
nct7802 36864 0

Данный вывод говорит о том, что модуль загружен. Теперь, для просмотра значений всех доступных для утилиты lm-sensors (тех, что она смогла обнаружить ранее при сканировании) достаточно выполнить команду:

$ sensors
k10temp-pci-00c3
Adapter: PCI adapter
Tdie: +36.5°C (high = +70.0°C)
Tctl: +36.5°C

amdgpu-pci-1f00
Adapter: PCI adapter
vddgfx: +0.75 V
fan1: 1166 RPM (min = 300 RPM, max = 3300 RPM)
temp1: +37.0°C (crit = +91.0°C, hyst = -273.1°C)
power1: 3.00 W (cap = 240.00 W)

iwlwifi-virtual-0
Adapter: Virtual device
temp1: N/A

nct7802-i2c-0-2a
Adapter: SMBus PIIX4 adapter port 0 at 0b00
in0: +3.39 V (min = +0.00 V, max = +4.09 V)
in1: +0.75 V
in2: +1.05 V (min = +0.00 V, max = +2.05 V)
in3: +0.91 V (min = +0.00 V, max = +2.05 V)
in4: +1.23 V (min = +0.00 V, max = +2.05 V)
fan1: 0 RPM (min = 0 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp4: +43.0°C (low = +0.0°C, high = +85.0°C)
(crit = +100.0°C)
temp6: +0.0°C

Как видно, набор обнаруженных датчиков довольно внушительный. Есть даже показания температуры для модуля Wi-Fi. Не хватает, правда, значений оборотов охлаждающего вентилятора процессора и значений температур зон VRM. Но это уже издержки свободного ПО.

Для того, чтобы иметь возможность наблюдения за параметрами в непрерывном режиме, нужно выполнить команду sensors совместно с командой watch:

$ watch -n3 sensors

Здесь ключ -n задаёт периодичность обновления вывода, в данном случае это 3 секунды. Если он не задан, то по-умолчанию обновление будет происходить каждые 2 секунды. Для выхода из непрерывного режима нужно нажать сочетание клавиш <Ctrl + C>.

HDDTemp

Для мониторинга температур устройств хранения. Например жестких дисков и/или твердотельных накопителей удобно использовать утилиту hddtemp. Соответствующий пакет «hddtemp» также доступен для большинства Linux-дистрибутивов. Для доступа к показаниям температуры конкретного устройства нужно выполнить команду:

$ watch hddtemp /dev/sdb
Every 2,0s: hddtemp /dev/sdb MSI-M7-ROSA: Wed Jul 31 15:12:15 2019
/dev/sdb: CT240BX500SSD1: 46°C

Здесь, как можно догадаться, в качестве параметра передаётся интересующее устройство. В данном случае это/dev/sdb.
Для того, чтобы данные получаемые утилитой hddtemp могли использовать другие программы мониторинга (например psensor), необходимо запустить hddtemp в качестве демона:

$ sudo hddtemp -d /dev/sdb

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

Psensor – GUI-мониторинг температур в Linux

После того, как установлены и настроены все основные инструменты для мониторинга температур. Такие как lm-sensors и hddtemp, можно (и даже нужно) для удобства вывести это в одном приложении с использованием графиков и лог-файлов. Для этого предназначена очень популярная в среде Linux утилита psensor. Она обладает графическим пользовательским интерфейсом и способна агрегировать данные от всех самых популярных утилит-провайдеров всевозможных системных параметров, таких как температуры, обороты вентиляторов, объём RAM и т. д. Пакет для установки также доступен практически в каждом дистрибутиве Linux и обычно называется «psensor».
Psensor умеет довольно гибко управлять настройкой и отображением значений датчиков. Разобраться в пользовательском интерфейсе не составляет особого труда, он довольно прост:

Рис. 1: Графическая утилита psensor — мониторинг температур, оборотов вентиляторов и других системных параметров в Linux .

При запуске psensor обычно располагается в системном трее в виде значка термометра. Вызов главного окна psensor осуществляется из контекстного меню значка.

Заключение

В заключение стоит напомнить, что утилиты lm-sensors и hddtemp на сегодняшний день являются основными и самыми универсальными инструментами для мониторинга системных параметров в Linux. Эти утилиты консольные и являются поставщиками данных для инструментов с графическим интерфейсом: виджеты рабочего стола, сторонние утилиты-агрегаторы, такие как psensor. Ещё одним очень мощным агрегатором является Сonky. Но это куда более сложный в настройке инструмент, заслуживающий отдельного рассмотрения.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: