Мониторинг температуры процессора и жесткого диска в Debian

понедельник, апреля 06, 2009

Как известно, готовь сани летом. А вот мониторинг температуры процессора и жесткого диска предлагаю подготовить весной. Как известно, летом температура процессора и диска может возрастать, ведь не у всех же есть кондиционеры.

Для мониторинга температуры процессора и жесткого диска в Debian есть утилиты lm-sensors и hddtemp, а также GUI-апплеты, способные получать информацию через эти утилиты.


Мониторинг температуры процессора

Приведенные ниже команды должны выполняться от суперпользователя (root), либо при помощи sudo.

1. Установите пакеты lm-sensors и sensord:
aptitude install lm-sensors sensord

2. Теперь переходим к определению самих сенсоров:
sensors-detect

После выполнения данной команды запустится конфигуратор, который будет задавать вопросы. Внимательно читаем и отвечаем либо yes, либо no. Я везде отвечал утвердительно, даже в последнем вопросе? когда конфигуратор предложил внести в файл /etc/modules следующие строку:
coretemp

Делается это для того, чтобы модуль coretemp автоматически загружался при старте системы. Если на данном этапе конфигурирования ответить отрицательно, то каждый раз, когда Вы захотите проверить температуру процессора, Вам придется подгружать модуль вручную командой:
modprobe coretemp

3. Загружаем модуль (даже если Вы разрешили его подгружать автоматически, после конфигурирования его нужно загрузить, так как изменения в файле /etc/modules отразятся на системе только в процессе ее загрузки):
modprobe coretemp

4. Проверяем (команду можно вводить от обычного пользователя):
sensors

Температура процессора должна отображаться в строке Core 0:, если процессора два, то температура каждого из них будет отображаться в строчках Core 0: Core 1: или Core 1: Core 2: соответственно.

Чтобы мониторить температуру в реальном времени, необходимо воспользоваться GUI-утилитами:

sensors-applet - для Gnome
ksensors - для KDE
xfce4-sensors-plugin - для XFCE

Данные утилиты ставятся на панель Вашего любимого DE и отображают изменения температуры в реальном времени. Установить их можно командой:
aptitude install sensors-applet
aptitude install ksensors
aptitude install xfce4-sensors-plugin

Настройка апплета в Gnome:

Кликаем на панели правой кнопкой мышки, затем:
1. добавить на панель
2. выбираем hardware sensors monitor

После этого на панели появится куча мониторчиков с температурой, это не хорошо, нужно оставить только то что нужно:
1. кликаем апплету правой кнопкой мышки
2. выбираем пункт "настройка"
3. переходим на вкладку сенсоры
4. снимаем галочки напротив ненужных сенсоров, я выбрал только сенсор температуры процессора, который лежит в пункте libsensors и называется Core0
В этой же менюшке можно настроить внешний вид отображения каждого конкретного сенсора, но с этим думаю разберетесь сами!
Настройка апплетов для KDE и XFCE аналогична, и немного отличается оформлением самих апплетов и меню настройки.

Мониторинг температуры жесткого диска
1. Установите пакет hddtemp:
aptitude install hddtemp

2. Мониторим температуру, запустив команду от root:
hddtemp /dev/sda

sda - имя устройства, у Вас может быть другим
3. Мониторинг через GUI.
Чтобы мониторить температуру диска через вышеупомянутые утилиты, необходимо установить /usr/sbin/hddtemp как SUID root. Делать это нежелательно, так как потенциально, это может позволить использовать hddtemp для нарушения компьютерной безопасности. Тем не менее, как настроить:
dpkg-reconfigure hddtemp

На вопрос Установить /usr/sbin/hddtemp как SUID root, ответьте утвердительно.
Поссле этого выберите сенсор hdd в настройках вышеупомянутых GUI-утилит.

P.S. Корректность работы lm-sensors и hddtemp зависит как от работы железа компьютера, так и от поддержки этого железа самими утилитами. Встречаются случаи, когда температура процессора или жесткого диска отображается некорректно. Рекомендую сравнивать показания lm-sensors и hddtemp с данными из BIOS.

P.P.S.
Уже написав статью, нашел две интересные статьи на эту же тему в блогах, которые я читаю, поэтому рекомендую к прочтению следующие материалы:
http://mydebianblog.blogspot.com/2006/07/blog-post_24.html
http://strannick.blogspot.com/2007/11/s-trevogoi-glyadya-na-gradusnik.html

Update!
Снимать показания датчика можно и с помощью conky. Подробности в статье "Мониторинг температуры процессора при использовании conky"

9 коммент.:

6 апреля 2009 г. в 13:11 Programmaster комментирует...

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

Во-первых, у меня не нашлось sensors-detect, но sensors работают и так.
Во-вторых, я что-то не могу понять, что значит второй блок текста:
acpitz-virtual-0
Adapter: Virtual device
temp1: +40.0°C (crit = +75.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +51.0°C

Где это в моём компе 51°C?

Ну а hddtemp работает, да. Стоит только упомянуть, что запускать его надо от рута, а в качестве параметра можно передать не только имя раздела (например, тот же /dev/sda1), но и имя устройства (/dev/sda) — результат будет одинаков.

6 апреля 2009 г. в 21:41 duke комментирует...

2Programmaster

Спасибо за вопросы и советы! :)

По смыслу, температура процессора, это датчик Core0, но она нереально высокая, если у тебя не лаптоп конечно. Следовательно программа возможно неправильно работает с твоим железом.

acpitz-virtual-0 - я давно гуглил на эту тему, так и не на шел ответа, что за виртуальные сенсоры. На моем лаптопе 5 штук таких.

Про hddtemp, статью поправил.

То что sensors-detect не запускается - это странно. Пакет sensord установлен?

7 апреля 2009 г. в 09:03 Programmaster комментирует...

Да, sensord не был установлен :) Добавь это в статью.
После установки прогнал sensors-detect, подгрузил модули, скомандовал показать значения датчиков — и получил кучу инфы, которую раньше видел только в биосе, в частности, вольтаж на материнке, количество оборотов куллера и температуру процессора :)
Кстати, ты говорил, что 51°C — это слишком много. Взгляни (я удалил из вывода то, что не являлось температурами):
acpitz-virtual-0
Adapter: Virtual device
temp1: +40.0°C (crit = 75.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: 50.0°C

dme1737-i2c-0-2e
Adapter: SMBus nForce2 adapter at 4c00
RD1 Temp: FAULT (low = -127.0°C, high = +127.0°C) ALARM
Int Temp: +42.4°C (low = -127.0°C, high = +127.0°C)
CPU Temp: +58.8°C (low = -127.0°C, high = +127.0°C)

Что скажешь? :)

P.S. Это десктоп, ноутом я пока не обзавёлся :(

7 апреля 2009 г. в 09:54 Murz комментирует...

Давно пользуюсь lm-sensors, но что-то у меня то ли с железом невезуха какая-то то ли руки ;)
На 3 из 4 моих серверов (обычные десктоп-тачки) не удается настроить, то ничего не находит то постоянно одни и те же цифры, то неверные цифры - меняются верно (как кулер пальцем остановишь - растет), но не совпадают с реальными. Например, в комнате +21 градус, а у процессора показывает +15...
Порылся немного в гугле но так и не нашёл где это тюнится и как узнать правильные значения - не градусником же тыкать в проц ;) Несовпадение - на мамка ASUS на nforce-чипсете 630.
На чипсете Intel DG965RY (965) Fedora 10 вообще не находит ни одного сенсора "Sorry, no sensors were detected."

На intel 810 c процом pentium 2 - 2 температуры а какая что значит непонятно:
temp1: +48°C (high = +57°C, hyst = +65°C) sensor = thermistor
temp2: +37.0°C (high = +47°C, hyst = +52°C) sensor = diode

7 апреля 2009 г. в 10:18 duke комментирует...

2Programmaster
sensord у меня по зависимостям lm-sensors подтянулся, тем не менее в статью добавлю этот момент :)
temp1:(могут быть еще 2, 3, 4, 5) - я не знаю что это за сенсоры, но они точно не показывают температуру процессора. Температуру процессора показывают сенсоры core. Почему говорю что 50 - много, обычно такая температура характерна для лаптопов, на десктопе 40 градусов - норма. Может быть показания не верны, так как не всегда железо корректно определяет температуру. У тебя кстати в скобках для температуры процессора не указан критический уровень, так что может действительно данные не совсем верные.

2Murz
Спасибо за Ваш комментарий.
Мне кажется, что lm-sensors не всегда корректно работают с датчиками, либо сами датчики не всегда корректно работают :)
Почитав Ваш комментарий, решил добавить в статью информацию, что температура не всегда может отображаться корректно.

temp1 и temp2, Вы уверены что это температура процессора? Попробуйте запустить sensors-detect, при конфигурации утилита выводит информацию о найденных датчиках. Например на моем лаптопе sensors-detect, когда нашел сенсор процессора, вывел информацию, что для обработки информации будет использован драйвер coretemp.

7 апреля 2009 г. в 12:51 Programmaster комментирует...

2duke:
У меня для lm-sensors sensorsd оказался среди рекомендованных, но не в зависимостях.

Да, кстати, в разделе про hddtemp у тебя в скобках sda1 так и осталось :) Поменяй на sda ;)

8 апреля 2009 г. в 06:22 duke комментирует...

2Programmaster
Спасибо, ошибку поправил :)

15 апреля 2009 г. в 01:03 virens комментирует...

2 Programmaster комментирует...
lm-sensors ставил и пробовал уже давно по советам virens'а (была у него похожая статья)У меня больше про настройку в ядре, а тут больше про использование (кстати, я как-то графическими приблудами не пользуюсь).

а вот hddtemp поставил только сейчас.Весьма, кстати, полезная штучка. Температуру можно и из smart выудить.

Кстати насчёт температуры процессора. У меня типичная 52, критическая 67. И ничего.


2 duke
В статью можно бы ещё добавить, что температуру и другие параметры можно выводить в conky. А так весьма, понравилось.

15 апреля 2009 г. в 11:25 duke комментирует...

2virens
Спасибо за Ваш отзыв! :) Если честно, очень приятно! :)
Про conky: отличный совет, на днях постараюсь отредактировать статью.

Отправить комментарий