#language ru || {{http://www.debian.org/logos/openlogo-nd-50.png}} {{http://www.debian.org/Pics/debian.png}}|| ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: - Русский -~ ---- = Датчики и вентиляторы мат. платы = ---- Этот раздел поможет наглядно установить и настроить мониторинг датчиков и управление вентиляторами материнской платы. ---- __Активная разработка страницы завершена__ ---------- Если есть что добавить, дополняйте разделы новой информацией. Наши опечатки и ошибки в статье можно править смело, нет необходимости сообщать об этом на почту, просьба соблюдать стилевое оформление этой страницы и использовать разделители разделов (серые линии различной толщины). ---------- <> ------ == Чтение показаний датчиков == ------ Устанавливаем DebPkg:lm-sensors - набор утилит для чтения значений датчиков {{{ # aptitude install lm-sensors }}} Определяем датчики {{{ # sensors-detect }}} Если датчики обнаружить не удалось, то необходимо обновить ядро и установить более свежую lm-sensors. Чтобы не перезагружать компьютер заново загружаем модули Для squeeze {{{ /etc/init.d/module-init-tools start }}} Для wheezy {{{ /etc/init.d/kmod start }}} Смотрим показания датчиков {{{ sensors }}} Далее настраиваем вывод программы: * Вместо "in0", "temp2", "fan4" сделаем понятные "CPU Temp", "CPU fan", "System fan". * Уберём лишние значения, которые невозможно опознать * Укажем допустимые пределы значений датчиков Для поиска понятных названий датчиков можно воспользоваться: * Сайт lm-sensors.org, там есть готовые конфиги для конкретных мат. плат. * мануал к материнской плате (напряжение и вентиляторы) * утилиту pwmconfig (температура ЦП и вентиляторы) * нагрузочную утилиту cpuburn (температура ЦП) * Аналогичные программы в других ОС (Aida64 и т.д.) Если нашли кто есть кто, тогда смотрим название датчика {{{ sensors | head -1 }}} Перемещаем оригинальный файл. {{{ mv /etc/sensors3.conf /etc/sensors3.conf.BAK }}} Cоздаём новый конфиг и правим его (Пример для ASUS p4p800) {{{ nano /etc/sensors3.conf # Указываем системный датчик chip "w83627thf-isa-0290" # Игнорируем неопознанные датчики ignore in1 ignore in3 ignore in4 ignore in7 ignore in8 ignore fan3 ignore temp3 # Указываем правильное название датчика label temp2 "CPU Temp" label temp1 "MB Temp" label fan1 "System Fan" label fan2 "CPU Fan" label in0 "Vcore" label in2 "3.3V" # Задаём максимальные значения датчиков (включают ALARM) и уровни отключения тревоги (выключение ALARM) set temp1_max 60 set temp1_max_hyst 50 set temp2_max 80 set temp2_max_hyst 60 # Указываем min PWM вентиляторов set fan1_div 2 set fan1_min 0 set fan2_div 2 set fan2_min 0 # Указываем норму отклонения напряжения не более 5% set in2_min 3.3 * 0.95 set in2_max 3.3 * 1.05 set in0_min 1.95 * 0.95 set in0_max 1.95 * 1.05 }}} Для применения настроек проверено помогает только перезагрузка ПК. ------ == Мониторинг состояния датчиков в реальном времени (Частичная альтернатива collectd) == ------ === sensord+rrdtool+lighttpd === ------ Это вариант отличается скоростью установки и настройки, не требователен к системным ресурсам. Принцип работы: cлужба sensord периодически запускает наполнение rrd БД, Web сервер Lighttpd запускает скрипт формирования изображений графиков и отдаёт их браузеру. Достоинства: изображения графиков формируются только по запросу пользователя. Недостатки: Нет способов оповещения в случае проблем с показаниями датчиков, кроме как запись в лог или БД. ----- ==== Настройка службы sensord ==== ----- Устанавливаем компоненты {{{ aptitude install sensord lighttpd rrdtool }}} Делаем резервную копию файла конфигурации {{{ mv /etc/default/sensorsd /etc/default/sensorsd.BAK }}} Создаём новый файл конфигурации (пример для Sapphire IPC-E350M1) {{{ nano /etc/default/sensorsd # Не вносим уведомления об ALARM состояниях датчиков в syslog ALARM_INTERVAL=0 # Не вносим уведомления о текущих состояниях датчиков в syslog LOG_INTERVAL=0 # Уровень логгирования SYSLOG_FACILITY=daemon # Конфигурационный файл lm-sensord откуда берутся данные по датчикам CONFIG_FILE=/etc/sensors3.conf # Модель системного датчика SCAN_CHIPS=f71808e-isa-0290 # Путь к файлу базы данных RRD_FILE=/var/log/sensord.rrd # Интервал между наполнением БД показаниями датчиков RRD_INTERVAL=10s }}} Перезапускаем sensord {{{ /etc/init.d/sensord restart }}} ----- ==== Настройка Web сервера Lighttpd ==== ----- Включаем cgi mod {{{ lighttpd-enable-mod cgi }}} Добавляем строку - указываем обработчик cgi файлов {{{ nano /etc/lighttpd/conf-available/10-cgi.conf cgi.assign = (".cgi" => "/usr/bin/rrdcgi") }}} Перезапускаем lighttpd {{{ /etc/init.d/lighttpd force-reload }}} ----- ==== Настройка cgi скрипта ==== ----- Создаём папку для хранения и выставляем разрешения {{{ mkdir -p /var/www/sensord && chown www-data:staff /var/www/sensord && chmod a=rwxs /var/www/sensord }}} Формируем скрипт {{{ sensord --rrd-file /var/log/sensord.rrd --rrd-cgi /var/www/sensord > /var/www/sensord/sensord.cgi && chmod a+rx /var/www/sensord/sensord.cgi }}} Формирование скрипта не всегда проходит корректно, но как основа для доработки он вполне подходит. К примеру, если мы хотим получить такой рисунок || {{attachment:grid.jpg}}|| то нужно привести скрипт к следующему виду: {{{ nano /var/www/sensord/sensord.cgi #!/usr/bin/rrdcgi Состояние сервера GTW

Состояние сервера GTW

' -a PNG -h 200 -w 1024 --slope-mode --lazy -v 'Температура (C)' -t 'Температура процессора и материнки за 30 минут' -x 'MINUTE:1:MINUTE:5:MINUTE:5:0:%H:%M' -s -30m -l 0 --lower-limit 40 --slope-mode --color BACK#000000 --color CANVAS#000000 --color SHADEA#000000 --color SHADEB#000000 --color GRID#323239 --color MGRID#FFD85E --color FONT#23ff23 --color AXIS#23ff23 --color FRAME#23ff23 --color ARROW#23ff23 --font DEFAULT:8:/usr/share/fonts/truetype/urw.ttf --font TITLE:18 --font AXIS:10 --font UNIT:14 --font LEGEND:12 --font-render-mode light DEF:temp1=/var/log/sensord.rrd:temp1:AVERAGE DEF:temp2=/var/log/sensord.rrd:temp2:AVERAGE LINE:temp1#ff3030:"Процессор" AREA:temp2#2F4F4F:"Материнская плата"\c COMMENT:" "\j COMMENT:"Последние" COMMENT:" Максимальные"\c COMMENT:"------------------------------------------------------------------------------------------- "\c GPRINT:temp1:LAST:'Процессор\: %1.0lf' GPRINT:temp1:MAX:' Процессор\: %1.0lf'\c GPRINT:temp2:LAST:'Материнка\: %1.0lf' GPRINT:temp2:MAX:' Материнка\: %1.0lf'\c>

}}} Далее в браузере открываем адрес http://адрес_серверa/sensord/sensord.cgi P.S. Более подробное описание rrdtool можно найти здесь: http://daemony.org/doc/rrd http://www.bog.pp.ru/work/rrdtool.html - http://www.unix.ck.ua/content/monitoring-temperatury-s-pomoshchyu-rrdtool http://sbelikov.ru/2009/03/rrdtool/ ------ == Управление скоростью вращения вентиляторов == ------ На большинстве современных материнок и почти на всех ноутбуках эта служба уже реализована средствами BIOS, и, как следствие, устанавливать fancontrol просто нет необходимости. Рекомендую внимательно изучить BIOS и руководство к нему. ------ Устанавливаем DebPkg:fancontrol: - службу, которая в зависимости от температуры оборудования устанавливает необходимую скорость работы вентилятора. Далее __ОЧЕНЬ__ внимательно читаем и настраиваем fancontrol {{{ pwmconfig }}} Перезапускаем службу для применения новых настроек {{{ /etc/init.d/fancontrol restart }}} (./) Далее наслаждаемся тишиной 8)