Внимание! Информация из данной статьи устарела. Прочтите новую, актуальную на данный момент версию по установке и настройке Ippon в Linux.
Недавно я себе приобрёл новый UPS (источник бесперебойного питания) марки Ippon Smart, который способен подключаться к компьютеру по портам RS-232 (COM) и USB. Программное обеспечение, которое шло в комплекте, не смотря на то, что заявлена (на коробке, в инструкции пользователя и на самом диске) работа на всех платформах (Windows, Linux, FreeBSD, *NIX, Solaris и т.д.), работает только под Windows (да и то нестабильно (очень часто вместо значка в трее вылетает консоль и тут поможет только переустановка)); на всех остальных платформах ещё при установке (а если всё-таки установку удастся завершить, то и при запуске) выдаётся ошибка: “Exception in thread “main” java.lang.NoClassDefFoundError: com/zerog/lax/LAX”. Эта ошибка появляется абсолютно на всех компьютерах с ОС, отличающейся от MS Windows, т.к. ПО, идущее в комплекте, написано на Java какой-то давно устаревшей версии, а в новой версии таких библиотек, необходимых для запуска, уже нет. Техническая поддержка ничего по этому поводу не говорит (если судить о количестве сообщений с такой темой на их форуме) и просто советует обновить виртуальную машину Java на компьютере и выкачать то же самое ПО и их сайта (эти действия выполнялись, но не принесли никакого успеха). Таким образом, придётся решать проблему собственными силами (впрочем, как всегда в Linux ;-)). Далее я опишу подробное HOWTO (пошаговую инструкцию) как “заставить” работать UPS марки Ippon Smart в Linux на примере популярного дистрибутива openSUSE 10.3 (если у Вас установлен другой дистрибутив, то не расстраивайтесь, этот HOWTO подойдёт практически к любому современному дистрибутиву).
-
Выкачиваем и устанавливаем пакет nut (nut-2.2.0-59.x86_64.rpm для архитектуры x86_64 или nut-2.2.0-59.i386.rpm для стандартных ПК) для Вашего дистрибутива (для openSUSE этот пакет можно найти на http://software.opensuse.org в разделе “Software Search”. Внимание! Если Вы будете позже собирать пакет knutclient из исходных кодов, то скачайте также nut-devel (nut-devel-2.2.0-59.x86_64.rpm для x86_64 или nut-devel-2.2.0-59.i386.rpm для стандартных ПК).Чтобы установить этот пакет, можно воспользоваться одним из двух способов:
- Установить пакет из рут-консоли командой rpm -ipv имя_пакета;
- Установить пакет с помощью Yast в openSUSE (для этого достаточно в Konqueror 1 раз щёлкнуть по файлу пакета и в открывшейся программе просмотра содержимого пакета нажать “Установить пакет с помощью Yast”).
- Если у Вас установлен Ubuntu, то все файлы пакетов должны иметь расширение *.deb. Устанавливать их можно либо через apt-get install имя_пакета, либо дважды щёлкнув в файловом менеджере Gnome по файлу, либо запустив пакет через Synaptic.
-
Переходим к самой сложной части – настройке уже установленного пакета nut. Для этого в openSUSE открываем Konqueror (в Ubuntu нужно открывать Nautilus) в режиме root (хотя, можно зайти в систему от пользователя root на время выполнения операций настройки (в этом режиме можно повредить систему, поэтому нужно сразу выйти из него после окончания)) и открываем root-консоль (также можно в обычной консоли дать команду su и ввести пароль root (в Ubuntu нужно вводить команду sudo bash для запуска консоли с правами суперпользователя и ввести пароль текущего пользователя для подтверждения прав доступа) для ввода команд. Теперь в уже открытом окне Konqueror (c root-правами) переходим в папку /etc/ups/ и открываем файл ups.conf, щёлкнув по нему правой кнопкой и выбрав “Открыть в” - “Редактор KWrite”. В самом конце файла заменяем исходные 4 строки на следующие:
[myups] driver = megatec port = /dev/ttyS0 desc = "Local UPS"Во второй строке (driver = megatec) указано, какой драйвер нужно загружать (megatec полностью поддерживает все модели Ippon Smart, подключённые через порт RS-232 (COM), а megatec_usb - через USB). В третьей строке указан порт для подключения, где /dev/ttyS0 – это порт COM1, а /dev/ttyS1 – COM2 (при подключении по USB пути будут другими и они зависят от авторов дистрибутива, а также от версии ПО). Сохраняем изменения в файле ups.conf. Теперь откройте файл upsd.conf. В нём должны быть раскомментированы следующие строки (по умолчанию всё должно быть указано правильно, но, если что-то не так, исправьте):
ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACCEPT localhost REJECT all -
Основная настройка окончена, но зайдите в файл upsd.users и в конце файла в
[upsmaster]посмотрите пароль (по умолчанию он 8f15aa1c7a). Здесь upsmaster - это имя пользователя UPS, которое вместе с паролем будет указываться в программе мониторинга UPS. Если Вы что-то изменили (имя пользователя или пароль), то сразу зайдите в файл upsmon.conf, найдите строку “MONITOR myups@localhost 1 upsmaster 8f15aa1c7a master”, сделайте свои поправки. -
Всё. Пробуем запустить сервер и клиент. Для этого в рут-консоли даём команду “rcupsd start”, результатом выполнения которой во всех строках должно появиться слово “done” (если оно появилось, значит настройка закончена и можно перейти к установке клиента):
Starting NUT UPS drivers done Starting NUT UPS server done Starting NUT UPS monitor done -
Пробуем получить информацию от UPS командой
upsc myups@localhost. Если в ответ получена информация о UPS, значит вся настройка прошла корректно и встроенный клиент видит устройство. -
Теперь выкачиваем и устанавливаем программу-клиент knutclient (имеет удобный русифицированный графический интерфейс (эта программа только для графической среды KDE 3.x, под Ubuntu её запускать не рекомендуется (под Kubuntu она будет работать)). Можно выкачать как в виде пакета, так и в виде исходных кодов (лучше в виде пакета). Пакет можно найти на RPMSearch или воспользоваться прямой ссылкой для openSUSE-версии (там же есть ссылка для поиска этого пакета для других дистрибутивов). Устанавливайте также, как устанавливали nut.
-
Запускаем свежеустановленный knutclient, заходим в меню “Настройка” – “Настроить KNutClient…”. В открывшемся окне переходим на страницу “UPS” (переключатель страниц находится в левом фрейме). Нажимаем кнопку “Добавить”. Вводим:
- “Имя”: “Ippon” (тут можно указать любое имя);
- “UPS адрес”: “localhost”;
- “UPS имя”: “myups”;
- “Задержка”: “5000”;
- “Порт”: “3493”;
- “Имя пользователя”: “upsmaster” (если не изменяли ранее, укажите это, если изменяли - укажите изменённое);
- “Пароль”: “8f15aa1c7a” (если не изменяли, укажите этот, но лучше всего - посмотрите в уже упомянутом выше файле upsd.users).
- Установите галочку в строке “Хранить пароль в файле конфигурации” для того, чтобы каждый раз его не пришлось вводить вручную.
- В полях “UPS переменные” нужно указать датчики, которые должны отображаться в графическом виде на панели программы knutclient. Некоторые не работают. У меня указаны следующие: “Входное напряжение”, “Выходное напряжение”, “UPS температура”, “UPS загрузка”, “Напряжение батареи”, “Зарядка батареи”. Остальные датчики не работают и при их выборе, они просто не появятся на панели датчиков.
-
Нажимаем в окне конфигурации “OK”, “Применить”, “OK”. Если датчики начали показывать параметры, значит всё настроено корректно. Если они не начали показывать ничего – воспользуйтесь кнопкой “Обновить” или клавишей “F5”. При правильной настройке ошибок не должно возникать.
-
Теперь нужно сделать так, чтобы upsd вместе со своими настройками и драйверами загружался при старте системы. Для этого в openSUSE запускаем “Yast2”, переходим на страницу “Система” и выбираем модуль “Системные службы (runlevel)”. В открывшемся окне модуля ищем строку “upsd”, выбираем её, нажимаем на кнопку “Включить” (появится сообщение об успешном изменении типа запуска службы), а затем “Завершить” для сохранения изменений в системе.
Выполнив все эти шаги, Вы сможете “заставить” Ваш UPS работать под Linux и в удобном виде отображать полезную информацию, а также отключать компьютер в случае длительной работы от батарей при отстутствии напряжения в сети.
Свои вопросы, предлжения и комментарии можете высказывать в комментариях к этому посту.