Главная > HOWTO > Подключение и настройка UPS Ippon в Linux

Подключение и настройка UPS Ippon в Linux


Внимание! Информация из данной статьи устарела. Прочтите новую, актуальную на данный момент версию по установке и настройке 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 подойдёт практически к любому современному дистрибутиву).

  1. Выкачиваем и устанавливаем пакет 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.
  2. Переходим к самой сложной части — настройке уже установленного пакета 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/32ACCEPT localhost
    REJECT all
  3. Основная настройка окончена, но зайдите в файл upsd.users и в конце файла в [upsmaster] посмотрите пароль (по умолчанию он 8f15aa1c7a). Здесь upsmaster — это имя пользователя UPS, которое вместе с паролем будет указываться в программе мониторинга UPS. Если Вы что-то изменили (имя пользователя или пароль), то сразу зайдите в файл upsmon.conf, найдите строку «MONITOR myups@localhost 1 upsmaster 8f15aa1c7a master«, сделайте свои поправки.
  4. Всё. Пробуем запустить сервер и клиент. Для этого в рут-консоли даём команду «rcupsd start«, результатом выполнения которой во всех строках должно появиться слово «done» (если оно появилось, значит настройка закончена и можно перейти к установке клиента):
    Starting NUT UPS drivers                        done
    Starting NUT UPS server                         done
    Starting NUT UPS monitor                        done
  5. Пробуем получить информацию от UPS командой «upsc myups@localhost«. Если в ответ получена информация о UPS, значит вся настройка прошла корректно и встроенный клиент видит устройство.
  6. Теперь выкачиваем и устанавливаем программу-клиент knutclient (имеет удобный русифицированный графический интерфейс (эта программа только для графической среды KDE 3.x, под Ubuntu её запускать не рекомендуется (под Kubuntu она будет работать)). Можно выкачать как в виде пакета, так и в виде исходных кодов (лучше в виде пакета). Пакет можно найти на RPMSearch или воспользоваться прямой ссылкой для openSUSE-версии (там же есть ссылка для поиска этого пакета для других дистрибутивов). Устанавливайте также, как устанавливали nut.
  7. Запускаем свежеустановленный knutclient, заходим в меню «Настройка» — «Настроить KNutClient…«. В открывшемся окне переходим на страницу «UPS» (переключатель страниц находится в левом фрейме). Нажимаем кнопку «Добавить«. Вводим:
    • «Имя»: «Ippon» (тут можно указать любое имя);
    • «UPS адрес»: «localhost»;
    • «UPS имя»: «myups»;
    • «Задержка»: «5000»;
    • «Порт»: «3493»;
    • «Имя пользователя»: «upsmaster» (если не изменяли ранее, укажите это, если изменяли — укажите изменённое);
    • «Пароль»: «8f15aa1c7a» (если не изменяли, укажите этот, но лучше всего — посмотрите в уже упомянутом выше файле upsd.users).
    • Установите галочку в строке «Хранить пароль в файле конфигурации» для того, чтобы каждый раз его не пришлось вводить вручную.
    • В полях «UPS переменные» нужно указать датчики, которые должны отображаться в графическом виде на панели программы knutclient. Некоторые не работают. У меня указаны следующие: «Входное напряжение», «Выходное напряжение», «UPS температура», «UPS загрузка», «Напряжение батареи», «Зарядка батареи». Остальные датчики не работают и при их выборе, они просто не появятся на панели датчиков.
  8. Нажимаем в окне конфигурации «OK«, «Применить«, «OK«. Если датчики начали показывать параметры, значит всё настроено корректно. Если они не начали показывать ничего — воспользуйтесь кнопкой «Обновить» или клавишей «F5«. При правильной настройке ошибок не должно возникать.
  9. Теперь нужно сделать так, чтобы upsd вместе со своими настройками и драйверами загружался при старте системы. Для этого в openSUSE запускаем «Yast2«, переходим на страницу «Система» и выбираем модуль «Системные службы (runlevel)«. В открывшемся окне модуля ищем строку «upsd«, выбираем её, нажимаем на кнопку «Включить» (появится сообщение об успешном изменении типа запуска службы), а затем «Завершить» для сохранения изменений в системе.

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

Свои вопросы, предлжения и комментарии можете высказывать в комментариях к этому посту.

Категории:HOWTO Метки:, , , , , ,
  1. 2 сентября 2009 в 16:00 | #1

    Ковыряю nut, к которому прикрутил свой ИБП Ippon. Прикрутил USB-шнурком (драйвер megatec_usb). Всё нашлось прекрасно, всё друг-друга видит. Демон работает, монитор — мониторит;

    УПС видится как /dev/usb/hiddev0 (у меня Debian Etch); однако, после выдергивания шнурка питала из ейной попы, в сислоге появляется запись:

    Sep 2 13:58:41 admin kernel: [ 8375.801861] usb 4-2: USB disconnect, address 3

    следовательно, пропадает файл /dev/usb/hiddev0 …. соответственно, upsmon не знает о том, сколько заряда осталось в батареях и через N-минут комп просто умирает от прекращения подачи питала…

    Это глюк УПСы такой, или я куда-то не туда копаю?

  2. 4 сентября 2009 в 14:49 | #2

    А подключить по RS-232 (COM) не пробовали? По COM всё работает идеально…
    P.S. Попробую воспроизвести ситуацию вечером на своём UPS и openSUSE 11.1.

  3. 8 сентября 2009 в 09:51 | #3

    Проблема решилась путём замены ИБП — был неисправен.

  4. 12 сентября 2009 в 19:56 | #4

    На openSUSE 11.1 и Ubuntu 9.04 всё работает нормально как по RS-232, так и по USB.

  5. Taras, V
    10 мая 2010 в 01:54 | #5

    Спасибо большое.
    Толлько что установил софт по описанной схеме.
    Железо: AMD64/OpenSUSE 11.1 x86-64.
    Интерфейс: COM1
    Необходимость в UPS вызвана наличием программным RAID5/mdadm.
    Будем испытывать на ивент — длительное отключение питания в сети 220В.

  6. Александр В.
    6 июня 2010 в 09:53 | #6

    Спасибо за howto. Поднял свой Ippon Smart под Kubuntu. Работает стабильно.

  7. anyresz
    10 сентября 2010 в 09:12 | #7

    проверяйте «/var/log/messages | grep ups» после настройки
    а то пишет, что
    Starting UPS driver controller: [ OK ]
    Starting upsd: [ OK ]
    Starting UPS monitor (master): [ OK ]
    а по факту в логах
    upsmon[5850]: Master privileges unavailable on UPS [ippon@localhost]
    upsmon[5850]: Reason: Access denied

  8. Alex
    30 декабря 2010 в 07:23 | #8

    Народ не могу понять все настроил NUT, поставил knutclient показывает все норм, а вот изменять значения там battery.runtime.low не могу! в чем проблема???

  9. 30 декабря 2010 в 18:51 | #9

    @Alex
    На многих UPS значение battery.runtime.low («Remaining battery runtime when UPS switches to LB (seconds)») с помощью nut изменить не получится; это значение, зависящее как от самого UPS, так и используемого драйвера nut.

  10. Tracker
    5 марта 2011 в 13:33 | #10

    Решение попроще от производителя:

    http://www.ups-software-download.com/winpower/linux.htm

  11. 5 марта 2011 в 13:55 | #11

    @Tracker
    Вы статью читали? В ней как раз и говорится, что штатное по WinPower, написанное на Java доисторической версии, не работает на современных дистрибутивах, выдавая указанную ошибку.

  12. svpuk
    19 марта 2011 в 18:33 | #12

    Автору спасибо за выложенный материал!
    Немного истории начал с установке с CD производителя, результат описан выше Ошибки.
    Начинаю ставить по выше указанной инструкции:
    ОС Debian 6, графического нитерфейса нет(развернут вебсервер) , установка идет по SSH,
    Результат — система намертво вешаеться, резет тод-же результат. Не копал почему так.
    Подсоединяю монитор клаву, все встало, ошибок при установке не выдало.
    Ищу директорию /etc/ups нет нигде, по файлу ups.conf находим где он есть, оказалось что в директории /etc/nut/
    Смотрим прописанные строки ВСЕ закоментированно, хотя UPS подсоединен по USB всё указывает на СОМ порт. Второй файл история всё таже.
    Ищем ИПБ на USB нет, и никакого намека. Мать довольно старая, есть глюки на usb c данной ОС.
    PS.
    для пробы качаю http://www.ups-software-download.com/winpower/linux.htm запускаю инсталяцию, все проходит на ять, старт сервиса, на сом порту ничего не найдено, usb нет и не видет.
    Найду родной сом шнурок опишу последствия.

  13. Daneel Yaitskov
    29 июля 2011 в 14:42 | #13

    Привет уменя kubuntu 10.10 и я понял почему nut не работает.

    Драйвер не может записать в /dev/ttyS0 так как у него нет прав.

    Нужно добавить пользователей nut и root в группу dialout.

    у файла /dev/ttyS0 группа dialout.

    Я подключал через rs-232

  14. Egor Krivonosov
    1 ноября 2011 в 15:15 | #14

    Столкнулся с трудностями (Debian). Поставил nut из репозитория. настроил все конфиги в /etc/nut Однако драйвер приведеный тут выдавал ошибку. На сайте разработчика в таблице поддерживаемых устройств рекомендован ippon_usb. Рекомендуемый ups.conf для данного драйвера таков

    driver = ippon_usb
    port = auto
    desc = «Your UPS»

    Да и другие конфиги претерпели изменения, например директивы в upsd.conf такие должны быть:

    LISTEN 127.0.0.1 3493
    LISTEN ::1 3493

    Если используете последние версие из репозиториев, крайне рекомендую ознакомится с инструкциями на оффсайте NUT (networkupstools) так как эта статья несколько устарела.

  15. 1 ноября 2011 в 18:12 | #15

    Egor Krivonosov :

    Столкнулся с трудностями (Debian). Поставил nut из репозитория. настроил все конфиги в /etc/nut Однако драйвер приведеный тут выдавал ошибку. На сайте разработчика в таблице поддерживаемых устройств рекомендован ippon_usb. Рекомендуемый ups.conf для данного драйвера таков

    Спасибо, надо будет переписать статью заново, т.к. уже почти 3.5 года прошло с момента её написания и многое изменилось.

    Egor Krivonosov :

    driver = ippon_usb
    port = auto
    desc = «Your UPS»

    Нужно будет проверить в других дистрибутивах наличие данных драйверов (это те же megatek, только переименованные). Значение «auto» для port можно было указывать и раньше, но с ним UPS мог часто отваливаться, поэтому лучше прописать путь к устройству вручную.

    Egor Krivonosov :

    Да и другие конфиги претерпели изменения, например директивы в upsd.conf такие должны быть:

    LISTEN 127.0.0.1 3493
    LISTEN ::1 3493

    Добавилось прослушивание локального интерфейса IPv6.

  16. Egor Krivonosov
    2 ноября 2011 в 17:20 | #16

    Как ни странно, для эсперементальных драйверов типа ippon_usb на сайте разработчиков!рекомендуется выставлять port = auto.

  17. 2 ноября 2011 в 22:51 | #17

    @Egor Krivonosov
    С моим UPS auto работал нестабильно. Устройство часто терялось. Может сейчас уже и допилили.

  18. Egor Krivonosov
    8 ноября 2011 в 11:14 | #18

    Драйвер все таки сбойнул пре рестарте системы. Попробую прописать девайс вручную

    @V1TSK

    Вы были правы.

  19. Egor Krivonosov
    8 ноября 2011 в 11:32 | #19

    Broadcast Message from nut@server1
    (somewhere) at 11:26 …

    Communications with UPS ippon@localhost lost

    Вот такое вот теперь всегда выдает и с указанием устройства, и с режимом auto… Как бороться с этим не понял.

  20. 8 ноября 2011 в 12:23 | #20

    @Egor Krivonosov
    Вы обновляли что-то в системе?

  21. Egor Krivonosov
    8 ноября 2011 в 15:52 | #21

    уже и не припомню, система в настройке, все время что то ковряю. Могу сказать одно, /dev/usb/ в системе нет. Раньше была. Может причина в этом?

  22. 9 ноября 2011 в 16:45 | #22

    @Egor Krivonosov
    Посмотрите эту ветку. Что-то пишется в системный журнал?

  23. Egor Krivonosov
    16 ноября 2011 в 11:13 | #23

    при включении USB в другой порт следущее пишет:

    Nov 16 10:45:19 server1 kernel: [1121381.401669] usb 2-1.2: USB disconnect, device number 58
    Nov 16 10:45:28 server1 kernel: [1121390.299975] usb 2-1.3: new low speed USB device number 59 using ehci_hcd
    Nov 16 10:45:28 server1 kernel: [1121390.397893] usb 2-1.3: New USB device found, idVendor=0665, idProduct=5161
    Nov 16 10:45:28 server1 kernel: [1121390.397898] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    Nov 16 10:45:28 server1 kernel: [1121390.397901] usb 2-1.3: Product: USB to Serial
    Nov 16 10:45:28 server1 kernel: [1121390.397904] usb 2-1.3: Manufacturer: Cypress Semiconductor
    Nov 16 10:45:28 server1 kernel: [1121390.404542] generic-usb 0003:0665:5161.001F: hiddev0,hidraw1: USB HID v1.00 Device [Cypress Semiconductor USB to Serial] on usb-0000:00:1d.0-1.3/input0

    в /dev/usb появляется hiddev0.

    после запуска /etc/init.d/nut в syslog такие пироги:

    Nov 16 10:58:27 server1 blazer_usb[12552]: Startup successful
    Nov 16 10:58:27 server1 upsd[12553]: not listening on 1:: port 3493
    Nov 16 10:58:27 server1 upsmon[12555]: Startup successful
    Nov 16 10:58:27 server1 upsmon[12557]: UPS [ippon@localhost]: connect failed: Connection failure: Connection refused
    Nov 16 10:58:27 server1 upsmon[12557]: Communications with UPS ippon@localhost lost
    Nov 16 10:58:32 server1 upsmon[12557]: UPS [ippon@localhost]: connect failed: Connection failure: Connection refused
    Nov 16 10:58:32 server1 upsmon[12557]: UPS ippon@localhost is unavailable
    Nov 16 10:58:37 server1 upsmon[12557]: UPS [ippon@localhost]: connect failed: Connection failure: Connection refused

    Дальше выключаю nut что бы не флудил в консоли своими сообщениями

    c устройством /dev/hidraw1 такой же результат.

Представьтесь, пожалуйста! Если ваш комментарий предполагает ответ, мы ответим на него в ближайшее время. Адрес электронной почты должен быть действительным.


Внимание! Запрещено публиковать любые ссылки в тексте комментария, иначе он сразу же будет помечен как нежелательный и не будет опубликован на сайте.