Настройка автоматического выключения при low battery от UPS с помощью nut (Network UPS Tools)
В моем распоряжении ИБП IPPON Smart Power Pro 1400. Подключен через USB.Необходимо, при отсутствии питания от сети, настроить автоматическое выключение Porteus компьютера под учетной записью root.
1. Скачиваем и устанавливаем nut (При загрузке nut будет предложено скачать зависимость neon. Загружаем оба - nut и neon)
Network UPS Tools (NUT) – программа для контроля ИБП
Code: Select all
usm -u usm
usm -u all
usm -g nut
Code: Select all
root@porteus:~# ls /tmp/usm/nut-2.6.5/
neon-0.29.6-x86_64-2.xzm
nut-2.6.5-x86_64-1_slack.xzm
и там их активируем, нажав два раза левой кнопкой мыши.sdXX - это раздел, где установлен Porteus.
2. Открываем консоль и вводим команды для добавления
группы nut и пользователя nut
Code: Select all
groupadd -g 218 nut
useradd -u 218 -g nut -s /bin/false nut
Code: Select all
root@porteus:~# lsusb
Bus 001 Device 002: ID 8087:8009 Intel Corp.
Bus 002 Device 002: ID 8087:8001 Intel Corp.
Bus 003 Device 003: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
root@porteus:~#
Если такого нет (если есть, то пропускаем), то надо пошаманить с модулями ядра. В частности, нужны модули usb, usbhid.Bus 003 Device 003: ID 0665:5161 Cypress Semiconductor USB to Seriall
Теперь меняем права, где цифры - номера шины (Bus) и устройства (Device) из предыдущей команды:
4. Необходимо переименовать файлы с конфигурациями (содержащими настройки) nut.chown root:nut /dev/bus/usb/003/003
Для этого в консоле вводим команды:
Code: Select all
mv /etc/nut/upsd.users.sample /etc/nut/upsd.users
mv /etc/nut/upsd.conf.sample /etc/nut/upsd.conf
mv /etc/nut/ups.conf.sample /etc/nut/ups.conf
mv /etc/nut/upsmon.conf.sample /etc/nut/upsmon.conf
5. Открываем /etc/nut/upsd.users и добавляем в самый конец данного файла
Code: Select all
[root]
password = toor
upsmon master
6. Открываем /etc/nut/upsd.conf и находимroot - имя учетной записи
toor - пароль от учетной записи
режим master - на локальной машине
еще есть режим slave - на удаленной машине
Code: Select all
# LISTEN <address> [<port>]
# LISTEN 127.0.0.1 3493
# LISTEN ::1 3493
Code: Select all
# LISTEN <address> [<port>]
LISTEN 127.0.0.1 3493
# LISTEN ::1 3493
Code: Select all
[ippon]
driver = blazer_usb
vendorid = 0665
productid = 5161
port = /dev/ttyUSB1
desc = "IPPON Smart Power Pro 1400"
override.battery.voltage.nominal = 24.00
default.battery.voltage.high = 27.60
default.battery.voltage.low = 20.40
Для удобства, можно открыть список драйверов в консоле
Code: Select all
cat /usr/share/nut/driver.list
port - это порт, к которому подключен ИБП.
desc - описание (может быть произвольным)Если ИБП подключен к USB порту, то можно посмотреть какие устройства подключены к USB командами:Code: Select all
lsusb
Если ИБП подключен к COM порту, то можно посмотреть номера COM портов командой:Code: Select all
dmesg|grep USB
Code: Select all
dmesg|grep ttyS
Я данные значения высчитывал так. В ИБП IPPON Smart Power Pro 1400 установлены 2 батареи с номиналом 12 В, согласно оф. сайту IPPON Smart Power Pro 1000/1400/2000Значения default.battery.voltage.high и default.battery.voltage.low служат для вычисления примерного заряда батареи в процентах. Также при снижении напряжения до уровня default.battery.voltage.low запускается скрипт выключения системы. На других ИБП значения могут отличаться. Можете их сначала не указывать, а добавить после замера напряжения при полном заряде ИБП и незадолго до его разряда. Значения можно получить командой upsc <имя_ибп>. Имя указано в начале секции в квадратных скобках (у меня ippon).
Складываем номинал одной и второй батареи 12V + 12V = 24V от сюда получаем, что override.battery.voltage.nominal = 24.00
0,15 или 15% это
24V x 0.15 = 3.6VПри отклонении входного напряжения на величину от 10% до 25% ниже номинала, ИБП (UPS) выдает выходное напряжение с 15%-ным повышением входного. При отклонении входного напряжения на величину от 10% до 25% выше номинала, ИБП (UPS) выдает выходное напряжение с 15%-ным понижением входного.
24V + 3.6V = 27.6V от сюда получаем, что default.battery.voltage.high = 27.60
24V - 3.6V = 20.4V от сюда получаем, что default.battery.voltage.low = 20.40
Если у Вас одна батарея с номиналом 12V, например как у ИБП IPPON Back Power Pro 400/500/600/700/800, то от сюда получаем, что override.battery.voltage.nominal = 12.00
12V x 0.15 = 1.8V
12V + 1.8V = 13.8V от сюда получаем, что default.battery.voltage.high = 13.80
12V - 1.8V = 10.20V от сюда получаем, что default.battery.voltage.low = 10.20
8. Открываем /etc/nut/upsmon.conf и добавляем в самый конец данного файла (добавляем строчку с описанием нашего конкретного ИБП - данные пользователя должны соответствовать тому, что писали в upsd.users)
Code: Select all
MONITOR ippon@localhost 1 root toor master
Code: Select all
cd /etc/nut/
chown root:nut upsd.conf upsd.users
chmod 0640 upsd.conf upsd.users
chown root:nut upsmon.conf
chmod 0640 upsmon.conf
Code: Select all
/etc/rc.d/rc.ups start
Code: Select all
root@porteus:~# /etc/rc.d/rc.ups start
Network UPS Tools - UPS driver controller 2.6.5-Unversioned directory
Network UPS Tools - Megatec/Q1 protocol USB driver 0.09 (2.6.5-Unversioned directory)
Supported UPS detected with megatec protocol
Vendor information unavailable
Battery runtime will not be calculated (runtimecal not set)
Network UPS Tools upsd 2.6.5-Unversioned directory
fopen /var/run/nut/upsd.pid: No such file or directory
listening on 127.0.0.1 port 3493
Connected to UPS [ippon]: blazer_usb-ippon
Network UPS Tools upsmon 2.6.5-Unversioned directory
fopen /var/run/nut/upsmon.pid: No such file or directory
Using power down flag file /etc/killpower
UPS: ippon@localhost (master) (power value 1)
Code: Select all
/etc/rc.d/rc.ups stop
Code: Select all
upsc ippon@localhost
Code: Select all
root@porteus:~# upsc ippon@localhost
battery.charge: 100
battery.voltage: 27.70
battery.voltage.high: 27.60
battery.voltage.low: 20.40
battery.voltage.nominal: 24.00
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyUSB1
driver.parameter.productid: 5161
driver.parameter.vendorid: 0665
driver.version: 2.6.5-Unversioned directory
driver.version.internal: 0.09
input.current.nominal: 6.0
input.frequency: 50.0
input.frequency.nominal: 50
input.voltage: 241.0
input.voltage.fault: 241.0
input.voltage.nominal: 230
output.voltage: 238.8
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 0
ups.productid: 5161
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive
ups.vendorid: 0665
root@porteus:~#
Заметка. ups.status может ринимать следующие параметры:
Code: Select all
OL – on line (ИБП подключен к сети 220)
OB – on battery (ИБП работает от аккамуляторов)
LB – low battery (низкий заряд батареи ИБП)