Форум русскоязычного сообщества Ubuntu


Автор Тема: Подключение бесперебойника INELT Intellogent 1000LT2  (Прочитано 1582 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Measurer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Привет, All.

Озадачился подключением домашнего бесперебойника к домашнему серверу. Инелты, вроде, должны уметь опрашиваться через NUT... но, судя по всему, не мой случай. Мой бесперебойник ни за что опрашиваться не хотел.
Нашёл статью http://yuri-kurenkov.livejournal.com/33756.html и понял, что зачем-то выпилили поддержку бесперебойников серии Intelligent.

Скачал исходники NUT версии 2.7.4, которая устанавливается из пакетов. Думал, что подсуну исходники драйвера fentonups и соберу с инми. Но NUT из исходников не собирается. останавливается с ошибкой

Цитировать
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../include      -c -o nutclient.lo nutclient.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../include -c nutclient.cpp  -o .libs/nutclient.o
../libtool: line 1125: g++: command not found
Makefile:895: ошибка выполнения рецепта для цели «nutclient.lo»
make[1]: *** [nutclient.lo] Ошибка 1
make[1]: выход из каталога «/root/tmp/nut/nut-2.7.4/clients»
Makefile:514: ошибка выполнения рецепта для цели «all-recursive»
make: *** [all-recursive] Ошибка 1

Но я посмотрел, что в директории с драйверами появляется Makefile

ОК.
Скачиваем старую версию NUT, засовываем в каталог drivers файлы fentonups.c и fentonups.h, правим Makefile.am и Makefile.in

Конфигурим NUT
./configure --prefix=/usr --sysconfdir=/etc/nut --localstatedir=/var/run/nut --with-statepath=/var/run/nut
Запускаем make Как писал выше, всё заканчивается ошибкой.
Далее, переходим в каталог drivers, делаем make. Получаем работающий драйвер, подсовываем его в /lib/nut и пробуем со всем этим взлететь...

Оно взлетает и даже что-то там опрашивает. Но это всё не комильфо как-то.

Я программёр ещё тот... Может кто-то поможет получить всё это в каком-то вменяемом виде?

З.Ы. Во вложении исходники драйвера, которые пришлось поправить ввиду переименования функций в новых драйверах, а также изменённые Makefile.

Оффлайн Measurer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
С момента первого поста, так и не мог решить проблему. Пока бесперебойник стоял только дома, то не особо и важно было. Но когда несколько ИБП Inelt появились у обслуживаемых клиентов, то разобраться стало необходимо.

В общем, кому интересно... Бесперебойники Inelt при работе по COM порту требуют наличия полного набора сигналов управления потоками, а драйвер blazer_ser в Ubuntu (во FreeBSD такого нет) по умолчанию устанавливает только сигнал DTR (компьютер готов передавать данные), но не выставляет сигнал RTS (компьютер готов принять данные). Соответственно, бесперебойник ничего и не передаёт в комп.
Когда прошёлся по исходникам драйвера, то нашёл массив cablepower[]. В нём и было дело.
Если бесперебойник в ups.conf определить так:

[inelt]
driver = blazer_ser
port = /dev/ttyS0
cablepower = both

то бесперебойник обнаруживается и работает.

 

Страница сгенерирована за 0.121 секунд. Запросов: 25.