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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: UPS в UBUNTU.  (Прочитано 136584 раз)

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

Оффлайн dvdianov

  • Новичок
  • *
  • Сообщений: 10
  • линукс надо задабривать...
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #75 : 06 Сентября 2008, 21:42:58 »
И таки ещё вот. Подключил к компу с Debian, где есть /proc/bus/usb/devices. И получил весьма интересный результат:
T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  7 Spd=1.5 MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=ffff ProdID=0000 Rev= 1.00
S:  Manufacturer=
S:  Product=068A
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)
Повторю - это SVEN Power Pro+ (?) 625.
Как я полагаю теперь, Debian оттого и не создает на него hiddev, что он никак не позиционирует себя как HID-устройство. Отсюда просьба - не дал бы кто-нибудь секции какого-нибудь USB hiddev UPS из /proc/bus/usb/devices?
P.S. В XUbuntu, как я понял, он определяется как иксбоксовский контроллер, и подгружается модуль xpad. Значит, определяется как-то всё же.
P.P.S. В XUbuntu кажется вообще не монтируется usbfs, в mount её нет. Но /proc/bus/usb имеет директории с номерами, в которых раскиданы файлы с номерами, которые видимо описывают устройства. Но /proc/bus/usb/devices нет. Фантастика...

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #76 : 06 Сентября 2008, 23:46:59 »
Но её нет, по крайней мере в /var/log/messages и dmesg.
vvd@vvd:~$ lsmod | grep hid
usbhid                 29536  0
hid                    28928  1 usbhid
usbcore               138632  6 usblp,usb_storage,libusual,usbhid,uhci_hcd
А у тебя-то какие модули с hid в названии?
аналогично:
[alex@ArchBox ~]$ lsmod |grep hid
usbhid                 25408  0
hid                    36608  1 usbhid
usbcore               113968  4 usbhid,uhci_hcd

Home PC: Athlon X2 7750BE/AMD780G/2Gb/nVidia 8800GT /w Ubuntu 11.10
Home 'Server': Atom 425/1Gb RAM /w Ubuntu Server 10.04 LTS

Оффлайн alex_pa

  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #77 : 07 Сентября 2008, 00:08:05 »
И таки ещё вот. Подключил к компу с Debian, где есть /proc/bus/usb/devices. И получил весьма интересный результат:
T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  7 Spd=1.5 MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=ffff ProdID=0000 Rev= 1.00
S:  Manufacturer=
S:  Product=068A
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)
Повторю - это SVEN Power Pro+ (?) 625.
Как я полагаю теперь, Debian оттого и не создает на него hiddev, что он никак не позиционирует себя как HID-устройство. Отсюда просьба - не дал бы кто-нибудь секции какого-нибудь USB hiddev UPS из /proc/bus/usb/devices?
У меня Krauler UP-D650VA, вот что есть по поводу него в /proc/bus/usb/devices:
T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 15 Spd=1.5 MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0001 ProdID=0000 Rev= 1.00
S:  Product=STD UPS MON V1.0
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbfs
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
какраз оно и определяется как HID устройство - вот: Cls=03(HID  )
Цитировать
P.S. В XUbuntu, как я понял, он определяется как иксбоксовский контроллер, и подгружается модуль xpad. Значит, определяется как-то всё же.
P.P.S. В XUbuntu кажется вообще не монтируется usbfs, в mount её нет. Но /proc/bus/usb имеет директории с номерами, в которых раскиданы файлы с номерами, которые видимо описывают устройства. Но /proc/bus/usb/devices нет. Фантастика...
посмотри здесь http://klek.blogspot.com/2007/10/kubuntu-710-virtualbox-usbfs.html, там для Виртуалбокса, но какраз написано,как включить усбфс (незнаю подойдёт ли это для Хубунты, на для Кубунты 8.04 подошло в своё время)
« Последнее редактирование: 07 Сентября 2008, 00:10:42 от alex_pa »

Home PC: Athlon X2 7750BE/AMD780G/2Gb/nVidia 8800GT /w Ubuntu 11.10
Home 'Server': Atom 425/1Gb RAM /w Ubuntu Server 10.04 LTS

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 527
    • Просмотр профиля
    • Альтернативные проекты
Re: UPS в UBUNTU.
« Ответ #78 : 10 Сентября 2008, 00:43:47 »
при каждом запросе upsc myups@localhost
пишется лог /var/log/syslog
Sep 10 00:42:38 skif-desktop upsd[5739]: Connection from 127.0.0.1
Sep 10 00:42:48 skif-desktop upsd[5739]: Client on 127.0.0.1 logged out
а когда такие запросы делаются программно раз в сек. - напрягает :-(
Как лечить?
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

qesx

  • Гость
Re: UPS в UBUNTU.
« Ответ #79 : 17 Сентября 2008, 20:31:55 »
что-то я не понял
как соединить ups IPPON Back Power Pro 800 через usb с линуксом?
надо поставить nut - sudo apt-get install nut
а дальше что?
или можно сразу поставить NUT-Monitor (или его потом)?
можно поподробней расписать?)

Оффлайн dvdianov

  • Новичок
  • *
  • Сообщений: 10
  • линукс надо задабривать...
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #80 : 18 Сентября 2008, 16:04:03 »
По сути очень подробно (хоть и на английском) весь процесс описан в /usr/share/doc/nut/README.Debian.gz. Конфиги можно оттуда копировать, заменяя небольшое кол-во параметров на нужные и следя за форматированием.

Оффлайн dvdianov

  • Новичок
  • *
  • Сообщений: 10
  • линукс надо задабривать...
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #81 : 18 Сентября 2008, 19:38:22 »
Всё чудесатей и чудесатей... Теперь полностью могу присоединиться к предыдущему оратору, у которого проявлялась практика - работает, но никто не знает почему. Собственно, по порядку. Отчаявшись заставить usbhid работать, сделал следующее:
1. Включил монтирование usbfs раскомментированием четырех строк, ссылки выше.
2. Обновил XUbuntu до 8.04.
3. Сделал udev-правило, как описано здесь: http://www.apcupsd.org/manual/USB_Configuration.html. Не знаю, насколько оно помогло - может и без него бы работало.
4. Воткнул по USB свой Ippon Back Comfo Pro 600
5. Узрел в dmesg сообщение с именем, похожим на что-то ИБПшное, вот такое: [  387.290157] usb 1-1: new low speed USB device using uhci_hcd and address 4
[  387.462739] usb 1-1: configuration #1 chosen from 1 choice
[  387.484925] hiddev96hidraw0: USB HID v1.11 Device [OMRON USB UPS] on usb-0000:00:1f.2-1
5. Узрел наличие /dev/usb/hiddev0
6. Запустил sudo upsdrvctl start, запустилось и подцепилось
Далее я разбирался уже с NUT, разобрался - надо было /etc/default/nut подправить на предмет запуска upsd и upsmon.
Далее я подключил этот Sven. Кажется, прямо при запущенном upsdrvctl. Опять-таки - после перезапуска (stop & start) upsdrvctl всё подцепилось и работает. Смотрю - /dev/usb/hiddev0 отсутствует. Тоже практика - работает, но хз как. Вот запись в devices об Sven на данный момент:
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=1.5 MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=ffff ProdID=0000 Rev= 1.00
S:  Manufacturer=
S:  Product=068A
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 0 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbfs
Вот запись об Ippon:
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=06da ProdID=0003 Rev= 4.00
S:  Manufacturer=OMRON
S:  Product=USB UPS
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbfs
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=20ms
И там и там driver.parameter.port: /dev/usb/hiddev0, но и с ippon и со sven его нет фактически.
+ если кому-то интересно, при запуске upsdrvctl со sven сообщение такое:
vvd@vvd:~$ sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.1-
Network UPS Tools 2.2.1- - Megatec protocol driver 1.5.13 [megatec_usb]
Carlos Rodrigues (c) 2003-2007
Serial-over-USB transport layer for Megatec protocol driver [megatec_usb]
Andrey Lelikov (c) 2006, Alexander Gordeev (c) 2006-2007, Jon Gough (c) 2007
Megatec protocol UPS detected [  VT01071G].
P.S. если кому-то интересно, вот кажется та самая часть dmesg, где происходят множественные перевтыкания двух ИБП: http://paste.org.ru/?16v8nr.

qesx

  • Гость
Re: UPS в UBUNTU.
« Ответ #82 : 18 Сентября 2008, 20:15:51 »
вроде поставил, ввел команду upsc ups0@localhost получил это:
battery.charge: 95.0
battery.voltage: 13.50
battery.voltage.nominal: 12.0
driver.name: megatec_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/usb/hiddev0
driver.version: 2.2.1-
driver.version.internal: 1.5.13
input.frequency: 50.1
input.voltage: 183.5
input.voltage.fault: 183.5
input.voltage.maximum: 191.0
input.voltage.minimum: 183.5
output.voltage: 216.4
output.voltage.nominal: 220.0
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 31.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL BOOST
ups.temperature: 25.0

значит все работает?
есть пару вопросов:
как сделать так чтоб он сам комп выключал, если питание откл ?
я так понял чтоб графически видить инфу надо поставить NUT-Monitor  (какие ещё есть варианты, у меня Gnome)?
надо ли делать это sudo addgroup nut nut ?
что такое PyNUT?
« Последнее редактирование: 18 Сентября 2008, 20:35:47 от qesx »

Оффлайн dvdianov

  • Новичок
  • *
  • Сообщений: 10
  • линукс надо задабривать...
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #83 : 18 Сентября 2008, 21:18:36 »
Да, это значит, что подцепился и мониторится.
Выключаться он будет и сейчас по сигналу от ИБП о начале красного времени - разрядки батареи (вообще процесс выключения, т.е. запрос SHUTDOWNCMD начнется через пять секунд после получения этого сигнала, всё это хорошо и интересно описано в /usr/share/doc/nut/docs/shutdown.txt.gz) (ну, сейчас надо удостовериться в наличии строчки SHUTDOWNCMD "/sbin/shutdown -h +0" в upsmon.conf, если есть - выключаться будет комп).
Далее, если есть в том же файле строка POWERDOWNFLAG /etc/killpower - тоже хорошо.
Вообще, механизм таков (фактически перевожу с мана):
1. ИБП переходит на батарею
2. Батарея разряжается
3. upsmon master (главный комп, сервер, к которому подключен ИБП) ставит флаг FSD - сигнал, что скоро будет тушисвет.
4. Вторичные системы видят FSD, выдают в консоль и куда ещё там сигнал NOTIFY_SHUTDOWN,
5. Ждут значение FINALDELAY - обычно 5 секунд
6. Выполняют указанный в их upsmon.conf SHUTDOWNCMD
7. Отрубаются от сервера, задушенные init
8. Сервер (upsmon master) ждет HOSTSYNC - обычно 15 секунд - пока все остальные не отключатся. Если не отключается, посылает их подальше и продолжает действовать
9. Сервер делает у себя NOTIFY_SHUTDOWN
10. Ждет свой FINALDELAY - дает время админу/приложениям отреагировать
11. Создает файл флага - POWERDOWNFLAG - важно!
12. Вызывает свой SHUTDOWNCMD - начинает выключаться
13. INIT выполняет скрипты выключения, и натыкатеся на вставленный нами кусок, благодаря которому проверят наличие POWERDOWNFLAG (ну самого файла, который мы указали значением POWERDOWNFLAG в upsmon.conf), благополучно его находит, тот дает команду ИБП отключиться (ну это по логике, а реально там можно много что понаписать)
14. ИБП ждет указанное где-то время (вот тут ещё разбираюсь) и отрубает питание. Подразумевается, что в это время сервер должен выключиться сам.
15. Приходит монтер, вкручивает пробку, ИБП получает напряжение, соотв-но подает его на комп. Комп включается (ну это в BIOS настраивается)
16. При запуске своем upsmon удаляет POWERDOWNFLAG.

Таким образом, если POWERDOWNFLAG есть, скрипт загрузки отрубит ИБП, а если его нет - не отрубит. Поэтому и нужно POWERDOWNFLAG удалять - ИБП не нужно кажое выключение отрубать. Хотя, тут конечно кому как. В скрипт выключения руководство предлагает внедрять такой код (ну если конечно ]POWERDOWNFLAG=/etc/killpower, иначе поправить)    if (test -f /etc/killpower)
   then
    echo "Killing the power, bye!"
    /usr/local/ups/bin/upsdrvctl shutdown

sleep 120

# uh oh... the UPS poweroff failed!
# you probably should reboot here to avoid getting stuck
# *** see the section on power races below ***
   fi
Ну, вероятно да - UPS Monitor только. Хотя не понимаю почему не KNutClient - даже если зависимости не стоят, их не так много, как раздувают кедоненавистники.
PyNUT - класс для скриптового языка Python, который позволяет работать с ИБП на программном уровне. В репах я его не нашел. А UPS Monitor у меня сейчас просто не заработал - указание локального устройства неактивно, а ups@localhost он просто не принимает.
P.S. огого, ну и разграфоманился я...
« Последнее редактирование: 18 Сентября 2008, 21:23:10 от dvdianov »

Оффлайн goldskif

  • Активист
  • *
  • Сообщений: 527
    • Просмотр профиля
    • Альтернативные проекты
Re: UPS в UBUNTU.
« Ответ #84 : 18 Сентября 2008, 21:26:10 »
я вместо кнутклиента вывожу данные в коньки - тоже интересно
https://forum.ubuntu.ru/index.php?topic=7544.msg251668#msg251668
Ubuntu дружелюбная система, но друзей  она, сцуко, выбирает сама...

qesx

  • Гость
Re: UPS в UBUNTU.
« Ответ #85 : 19 Сентября 2008, 13:30:01 »
не до конца я все сделал(
решил проверить
upsmon -c fsd
Network UPS Tools upsmon 2.2.1-
fopen /var/run/nut/upsmon.pid: Permission denied

что надо сделать чтоб этого небыло?

Оффлайн dvdianov

  • Новичок
  • *
  • Сообщений: 10
  • линукс надо задабривать...
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #86 : 19 Сентября 2008, 18:29:38 »
Я так полагаю, что запустить его через sudo. Не правда ли, странно, если всякий юзер на VDS может отрубить UPS-ы, питающие ДЦ, вы не находите?

qesx

  • Гость
Re: UPS в UBUNTU.
« Ответ #87 : 19 Сентября 2008, 19:32:09 »
а как узнать что процесс запущен от рута?
допустим сижуя я под обычным юзером
вырубается свет
хватит ли ему прав чтоб самому выкл. ком или он уже от рута запущен и все сам сделает?

Оффлайн dvdianov

  • Новичок
  • *
  • Сообщений: 10
  • линукс надо задабривать...
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #88 : 19 Сентября 2008, 21:24:15 »
Ну как узнать - не у меня узнавать.
А в мане-то написано, что upsmon представлен двумя процессами, один из которых под рутом, ждет команды на выполнение SHUTDOWNCMD, и больше ничего не делает (всё интеллектуальное делает второй, что под пользователем (не под тобой, насколько помню я - под nut)). Он под рутом. Сам запускается. Хотя, тут тоже лирическое отступление - запускается только в том случае, если в /etc/default/nut прописано:
START_UPSD=yes
START_UPSMON=yes
Первая строка - автозапуск upsd при загрузке, вторая - автозапуск upsmon при загрузке. Если оба в yes, то может выполняться полный цикл с выключением-включением-нормальным выключением. По умолчанию они оба в no, т.е. надо поставить yes.

Под каким бы ты юзером не сидел - если upsmon запущен из-под рута (вручную ли, через /etc/init.d/upsmon start, автоматом при загруке ли) - всё спокойно выключится. Но ИБП не отрубится сам потом. Будет спокойно дожирать батарею. Что бы отрубился, соотв-но, нужно юзать POWERDOWNFLAG, а там уже интереснее  сам пока разбираюсь. Но мне и нынешнего варианта - с головой хватает.
P.S. upsmon.conf (с которым всё работает) у меня такой (за вычетом первой строки с информацией об ИБП и авторизации):
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h +0"
Вообще, всё это и ниже по топику прекрасно описано.

Оффлайн Sea+345

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: UPS в UBUNTU.
« Ответ #89 : 24 Сентября 2008, 21:58:31 »
А кому-нибудь удалось настроить выключение компьютера по истечении определенного времени/достижении уровня разряда батареи при помощи nut?
Я прочитал про скрипт upssched-cmd, но самому его писать не хочется, неужели нет стандартного?

 

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