The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Мониторинг материнских плат в Linux (hardware linux kernel)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: hardware, linux, kernel,  (найти похожие документы)
From: Виталий Колесник Newsgroups: Издательский дом "КОМИЗДАТ" htpp://www.comizdat.com/ Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC) Subject: Мониторинг материнских плат в Linux Оригинал: http://www.comizdat.com/3/4/6/90/3348/3533/ Мониторинг материнских плат в Linux При решении задачи по организации мониторинга материнской платы TYAN S2460 Tiger MP оказалось, что одним только файлом справки пакета lm_sensors не обойтись. Дополнительные знания требовались на каждом шагу. Пусть же они помогут в аналогичной ситуации еще кому-нибудь К тому же описание данного процесса подойдет к большинству случаев по организации мониторинга различных материнских плат в операционной системе Linux. Эффективная эксплуатация сложных технических комплексов, в частности компьютерных, невозможна без исчерпывающей и непрерывно поступающей информации об основных параметрах функционирования системы. Особенно эта проблема актуальна для систем, функционирующих по схеме 24 x 7 x 365, а также для систем, к которым персонал имеет ограниченный доступ. В каждом конкретном случае список таких параметров может содержать сотни позиций. Но практически в любой рабочей станции, сервере, кластере очень важной является информация о техническом состоянии аппаратуры. Основные характеристики материнских плат, подлежащие отслеживанию (мониторингу) таковы: * напряжение питания; * скорость вращения вентиляторов охладителей; * температура процессоров; * температура внутри системного блока. Производители материнских плат и операционных систем предлагают собственные решения для мониторинга. Существуют также и программные средства от третьих производителей. В дистрибутивах Линукс, которые в последнее время нашли широкое распространение в серверных системах, стандартом де-факто для программ мониторинга материнских плат стал пакет lm_sensors (http://www.lm-sensors.nu). Он поставляется в составе некоторых дистрибутивов Linux и имеет широкие возможности. Однако, чем сложнее и универсальнее инструмент, тем труднее его освоение. Настоящий материал призван осветить практические вопросы настройки пакета lm_sensors для мониторинга материнских плат TYAN S2460 Tiger MP (http://www.entry.kiev.ua/Products/Tyan/tiger_MP.html). К сожалению, в документации на пакет (файл quickstart) не изложены некоторые тонкие особенности настройки. Попробуем восполнить этот пробел. Шаг 1 Сначала проверим, установлены ли исходники и/или готовые модули для мониторинга на компьютере. Готовые модули лежат** в /lib/modules/(номер_версии_ОС)/kernel/drivers/sensors и /lib/modules/(номер_версии_ОС)/kernel/drivers/i2c. В первом каталоге ищем модуль с именем w83781d, во втором - модули i2c-core, i2c-amd756, i2c-dev, i2c-proc. Если они есть, значит, модули мониторинга в вашей операционной системе установлены. Нам понадобятся также исходники. Шаг 2 Не помешает проверить, подгружены ли упомянутые выше модули при загрузке операционной системы (может, помимо вас, кто-то еще мониторит уже плату). В консоли (дальше все действия выполняем в консоли, где необходимо - с правами root'а) надо дать команду: lsmod В выводе команды ищем названия модулей: i2c-core, i2c-amd756, i2c-dev, i2c-proc, w83781d. Если все они есть - значит, кто-то уже позаботился о мониторинге и вам повезло. Но предположим, что вам не повезло - ничего не найдено. То есть начинаем работу на машине, где отсутствуют исходники и готовые модули пакета lm_sensors. Те же, у кого пакет уже установлен, разобравшись в документации, а также внимательно и творчески изучив данный документ, смогут без проблем добиться успеха. Шаг 3 Итак, начнем с получения дистрибутива lm_sensors. Лучше всего загрузить его с сайта разработчиков (http://secure.netroedge.com/~lm78/download.html), где он выложен для свободного скачивания. Так мы обеспечим себя последней версией пакета. Если интернет по какой-либо причине недоступен, то пакет в виде rpm-файла можно будет найти и в вашем дистрибутиве. Учтите - нужны именно исходники. Шаг 4 Добытые исходники положим в какой-нибудь каталог в распакованном виде. Неплохим будет выбор каталога /usr/src/linux. Шаг 5 Теперь самое интересное: компилируем и устанавливаем пакет lm_sensors. В каталоге /usr/src/linux/lm_sensors-номер_версии последовательно выполним несколько команд: make make install depmod -a Шаг 6 Теперь проверим, появился ли в каталоге /usr/src/linux/lm_sensors-номер_версии/kernel/busses модуль i2c-amd756.o, дата создания совпадает которого с текущей датой. Шаг 7 Аналогичнiiм образом следует проверить наличие "свежего" модуля w83781d.o в каталоге /usr/src/linux/lm_sensors-номер_версии/chips. Теперь заглянем в файл /etc/ld.so.conf. Ищем там строку /usr/local/lib. Если такой не находим -добавляем ее туда вручную, после чего выполняем команду: ldconfig Теперь внимание! До этого момента мы только компилировали и устанавливали необходимые для мониторинга программные компоненты. Часть компонентов, согласно концепции Линукс, в задаче мониторинга является файлами устройств. Элементам материнской платы - таким как термодатчики, датчики оборотов вентиляторов, датчики напряжений питания - в пакете lm_sensors соответствуют файлы виртуальных устройств, располагающиеся в каталоге /proc/sys/dev/sensors. Самое время заглянуть в указанный каталог. При заходе в /proc/sys/dev мы не увидим подкаталога sensors. Это и понятно - его никто еще не создавал, поэтому датчики платы нам недоступны. Следующая команда как раз и предназначена для создания файлов датчиков платы. Выполните ее: /usr/src/linux/lm_sensors-номер_версии/prog/mkdev/mkdev.sh Вывод команды покажет Вам имена создаваемых устройств. Шаг 8 Итак, необходимые программные файлы откомпилированы, файлы устройств созданы. Теперь необходима настройка системы. В ее ходе мы обеспечим подгрузку необходимых модулей, откорректируем файлы инициализации, чтобы все необходимое запускалось при старте операционной системы; создадим шаблон для вывода на консоль информации о контролируемых параметрах. Далее кратко и практически без комментариев приводится последовательность действий по настройке lm_sensors применительно к плате TYAN S2460 Tiger MP. Шаг 9 В каталоге /usr/src/linux/lm_sensors-номер_версии/lib ищем файл libsensors.so.x.x.x (например, libsensors.so.1.2.1) и копируем его в /lib. Вместе с этим файлом хранятся две ссылки на него: libsensors.so и libsensors.so.1 - копируем в /lib и их (если же этих ссылок нет, то в /lib следует их создать). Шаг 10 В каталоге /usr/src/linux/lm_sensors-номер_версии/prog/init находим файл lm_sensors.init и копируем его в каталог /etc/rc.d/init.d под именем lm_sensors. Шаг 11 В каталоге /usr/src/linux/lm_sensors-номер_версии/prog/init вручную редактируем файл lm_sensors.sysconfig. В самом его конце оставляем незакомментированными только строки: MODULE_1=i2c-amd756 MODULE_2=i2c-dev MODULE_3=w83781d Далее копируем этот файл в каталог /etc/sysconfig под именем lm_sensors. Шаг 12 Из каталога /usr/src/linux/lm_sensors-номер_версии/prog/sensors копируем в каталог /usr/bin файл с именем sensors. Он должен иметь права на выполнение. Шаг 13 В файле /etc/modules.conf добавим в конце строку: alias char-major-89 i2c-dev Шаг 14 В файле /etc/rc.d/rc в конце добавим приведенные ниже строки (для загрузки необходимых модулей в процессе старта операционной системы): modprobe i2c-amd756 modprobe i2c-dev modprobe w83781d init=0 Шаг 15 В каталоге /usr/src/linux/lm_sensors-номер_версии/kernel/busses найдите файл i2c-amd756.o, заархивируйте его командой: gzip i2c-amd756.o. На выходе должен получиться файл i2c-amd756.o.gz. Полученный файл скопируйте в каталог /lib/modules/(номер_версии_Линукс) kernel/drivers/i2c. Шаг 16 В каталоге /usr/src/linux/lm_sensors-номер_версии/kernel/chips найдите файл w83781d.o и заархивируйте его командой: gzip w83781d.o На выходе должен получиться файл w83781d.o.gz. Скопируйте его в каталог /lib/modules/(номер_версии_Линукс) kernel/drivers/sensors. Шаг 17 После этого можно последовательно выполнить с консоли команды, описанные в предыдущем пункте: modprobe i2c-amd756 modprobe i2c-dev modprobe w83781d init=0 ВНИМАНИЕ! Последняя команда, запущенная без параметра init=0, намертво завешивает систему! Поэтому не делайте этого, если на системе в данный момент выполняются критичные приложения. Иначе придется перезагружаться. Но чтобы избежать зависания, при плановой перезагрузке не забывайте этот параметр ни при ручной подгрузке модуля, ни в файле /etc/rc.d/rc. После выполнения трех указанных команд проверим, что изменилось в системе. Сначала выполним lsmod Должна появиться информация о том, что загружены модули: i2c-core, i2c-amd756, i2c-dev, i2c-proc, w83781d Теперь самое время посмотреть в /proc/sys/dev. Там должен появиться подкаталог sensors, а в нем подкаталог w83782d-i2c-0-2d и файл chips. В файле chips ничего интересного нет, а вот в w83782d-i2c-0-2d надо бы заглянуть. Там мы увидим достаточно много файлов, среди которых можно по названиям узнать датчики мониторинга платы. Например, fan1, fan2, fan3 - датчики вентиляторов; temp1, temp2 - датчики температуры и т.д. Это файлы виртуальных устройств, которые были созданы нами ранее. Они становятся доступными при подгрузке соответствующих модулей, что мы и увидели. Под этими же названиями они используются в файле настройки шаблона вывода информации на консоль. Шаг 18 Файл настройки шаблона вывода информации на консоль должен находиться в каталоге /etc/sysconfig и иметь имя sensors.conf. Туда мы его и копируем (с переименованием) из каталога /usr/src/linux/lm_sensors-номер_версии/etc, где этой файл имеет имя sensors.conf.eg. Файл написан с учетом всех поддерживаемых микросхем мониторинга. Но нам так много не нужно. Нам достаточно одной только секции, начинающейся строкой: chip "w83782d-*" "w83783s-*" "w83627hf-*" Все, что выше этой строки, вплоть до самых комментариев можно удалить. Комментарии оставьте - пригодятся. Удалите также остальные секции, начинающиеся со строки (и вместе с ней): chip "w83697hf-*" Вообще-то говоря, удалять лишнее вовсе не обязательно - на работе системы это никак не отразится. Просто в более коротком файле, где нет ничего лишнего, гораздо проще будет разобраться при настройке формата вывода на консоль. Комментарии, которые имеются в начале этого файла, исчерпывающи настолько, что добавить нечего**. Отметим только, что для правильного отображения температуры процессоров надо в соответствующих строках sensors.conf указать второй тип термодатчика - то есть строки с описанием типа термодатчика должны выглядеть так: set sensor1 2 set sensor2 2 set sensor3 2 Шаг 19 Для удобства получения информации о состоянии системы создадим скрипт и положим его в каталог /usr/bin. Скрипт перечитывает файл sensors.conf для правильного отображения информации и запускает команду sensors вывода информации на консоль. Назовем файл sensor. Его содержание очень простое: #! /bin/bash cd /etc/sysconfig bash /usr/bin/sensors -s -c /etc/sysconfig/sensors.conf /usr/bin/sensors Не забываем дать этому файлу права на исполнение. Теперь, если модули загружены, команда sensor с консоли выводит информацию о состоянии датчиков материнской платы. Как поступить с этой информацией дальше: отправить по почте, на SMS сисадмину или же записать в лог - каждый решит сам. Рис. 1. Вывод команды sensors на консоль Рис. 2. Параметры платы в KDE отображаются гораздо симпатичнее Дополнение Если необходимо организовать мониторинг нескольких материнских плат S2460 Tiger MP (например, в кластере), то не обязательно проводить все указанные операции, включая компиляцию на всех компьютерах. Достаточно проделать это один раз, и использовать потом полученные файлы на других компьютерах. Для этого нужно только поместить эти файлы в соответствующие каталоги**. Изложенный подход с успехом можно использовать и для организации мониторинга других материнских плат (в том числе - плат других производителей). Для этого необходимо учесть отличия в исполнении конкретной материнской платы, например: что за чипсет используется, какая внутренняя шина, с которой пакетом lm_sensors считываются данные, каков внешний чип (в рассмотренном случае это были, соответственно, AMD 760MP, I2C и W83781d). Поддерживаемые чипсеты, шины и внешние чипы приведены в файле /lm_sensors/etc/sensors.conf.eg дистрибутива lm_sensors. Автор выражает особую благодарность разработчикам пакета lm_sensors, всем, кто участвовал в его отладке и поделился информацией об его использовании, а также производителям платы TYAN S2460 Tiger MP, выпустившим отличное "железо". Виталий Колесник

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру