LINUX.ORG.RU

История изменений

Исправление roiman, (текущая версия) :

Добрался до стац. компа. Прочитал нормально логи.

Сайт говорит, что драйвер usbhid-ups. Подключаешь ты UPS по USB. И, судя по тому логу, когда ты его запускала от рута, драйвер работает.

Но, ещё раз, от рута не нужно его использовать.

В общем, на стадии драйвера какие затыки в CentOS.

1. Драйверу нужно, чтобы группа usb-устройства была nut, а по умолчанию она прописывается как dialout. Поэтому нужно поправить и подключить правила udev, чтобы при каждом подключении выставлялась нужная группа. Для этого:

1.1 Копируешь правила из пакета nut в рабочу папку udev:

cp /lib/udev/rules.d/62-nut-usbups.rules  /etc/udev/rules.d/

1.2 Правишь этот файл (/etc/udev/rules.d/62-nut-usbups.rules). Находишь строчку своего устройства по idVendor и idProduct. У тебя это:

ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a4", MODE="664", GROUP="dialout"

И меняешь dialout на nut

1.3 Перетыкаешь кабель, чтобы переподключить и выставилась нормальная группа. Дальше она будет автоматом нормально выставляться при каждой загрузке. Проверяешь, чтобы у устройства /dev/bus/usb/004/002 была группа nut

ls -la /dev/bus/usb/004/
crw-rw-r--. 1 root nut  189, 385 июл 17 09:54 002

2. Драйвер запускается не просто командой upsdrvctl start. Для него еще предварительно нужно создать временную папку /var/run/nut, чтобы он записывал туда свои pid-файлы. Для этого был создан юнит systemd. В нём предварительно создается эта временная папка и только потом запускается драйвер. Но мейнтейнеры положили файл, где прописана эта папка, не в то место, которое прописано в юните. Поэтому:

2.1 Открываешь файл:

/usr/lib/tmpfiles.d/nut-run.conf

И правишь его содержимое на:

D    /var/run/nut 0750 nut nut -
F    /var/run/nut/upsd.pid 0750 nut nut - 12220
F    /var/run/nut/upsmon.pid 0750 nut nut - 12221

2.2 Правишь путь к этому файлу в юните nut-server. Открываешь файл:

/usr/lib/systemd/system/nut-server.service

И меняешь --create /etc/tmpfiles.d/nut-run.conf на --create /usr/lib/tmpfiles.d/nut-run.conf

2.3 Перезагружаешь systemd:

systemctl daemon-reload

2.4 Драйвер запускается командой запуска этого юнита:

systemctl start nut-server

2.5 Команда systemctl status nut-server должна выдывать успешный репорт:

● nut-server.service - Network UPS Tools - power devices information server
   Loaded: loaded (/usr/lib/systemd/system/nut-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Пн 2018-07-16 14:32:12 +05; 19h ago
 Main PID: 1639 (upsd)
   CGroup: /system.slice/nut-server.service
           └─1639 /usr/sbin/upsd -F -u nut

июл 16 14:32:13 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:32:13 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 15:04:59 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 15:04:59 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 15:05:48 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 15:05:48 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]

А команда upsc ups что-то вроде этого:

battery.charge: 100
battery.voltage: 13.60
battery.voltage.high: 13.60
battery.voltage.low: 11.7
battery.voltage.nominal: 12.0
device.type: ups
driver.name: blazer_usb
driver.parameter.offdelay: 300
driver.parameter.ondelay: 60
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/usb/hiddev0
driver.version: 2.7.2
driver.version.internal: 0.11
input.current.nominal: 3.0
input.frequency: 49.9
input.frequency.nominal: 50
input.voltage: 235.2
input.voltage.fault: 234.7
input.voltage.nominal: 220
output.voltage: 235.2
ups.beeper.status: enabled
ups.delay.shutdown: 300
ups.delay.start: 3600
ups.load: 2
ups.productid: 5161
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive
ups.vendorid: 0665

Дальше, если вся эта «готовка» сработает, по обстоятельствам. Смотря, что ты хочешь от NUT и UPS. Будем разбираться. И статьи тоже могут помочь. В этом их рекомендации одинаковы для всех дистрибутивов.

Исправление roiman, :

Добрался до стац. компа. Прочитал нормально логи.

Сайт говорит, что драйвер usbhid-ups. Подключаешь ты UPS по USB. И, судя по тому логу, когда ты его запускала от рута, драйвер работает.

Но, ещё раз, от рута не нужно его использовать.

В общем, на стадии драйвера какие затыки в CentOS.

1. Драйверу нужно, чтобы группа usb-устройства была nut, а по умолчанию она прописывается как dialout. Поэтому нужно поправить и подключить правила udev, чтобы при каждом подключении выставлялась нужная группа. Для этого:

1.1 Копируешь правила из пакета nut в рабочу папку udev:

cp /lib/udev/rules.d/62-nut-usbups.rules  /etc/udev/rules.d/

1.2 Правишь этот файл (/etc/udev/rules.d/62-nut-usbups.rules). Находишь строчку своего устройства по idVendor и idProduct. У тебя это:

ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a4", MODE="664", GROUP="dialout"

И меняешь dialout на nut

1.3 Перетыкаешь кабель, чтобы переподключить и выставилась нормальная группа. Дальше она будет автоматом нормально выставляться при каждой загрузке. Проверяешь, чтобы у устройства /dev/bus/usb/004/002 была группа nut

ls -la /dev/bus/usb/004/
crw-rw-r--. 1 root nut  189, 385 июл 17 09:54 002

2. Драйвер запускается не просто командой upsdrvctl start. Для него еще предварительно нужно создать временную папку /var/run/nut, чтобы он записывал туда свои pid-файлы. Для этого был создан юнит systemd. В нём предварительно создается эта временная папка и только потом запускается драйвер. Но мейнтейнеры положили файл, где прописана эта папка, не в то место, которое прописано в юните. Поэтому:

2.1 Открываешь файл:

/usr/lib/tmpfiles.d/nut-run.conf

И правишь его содержимое на:

D    /var/run/nut 0750 nut nut -
F    /var/run/nut/upsd.pid 0750 nut nut - 12220
F    /var/run/nut/upsmon.pid 0750 nut nut - 12221

2.2 Правишь путь к этому файлу в юните nut-server. Открываешь файл:

/usr/lib/systemd/system/nut-server.service

И меняешь --create /etc/tmpfiles.d/nut-run.conf на --create /usr/lib/tmpfiles.d/nut-run.conf

2.3 Перезагружаешь systemd:

systemctl daemon-reload

2.4 Драйвер запускается командой запуска этого юнита:

systemctl start nut-server

2.5 Команда systemctl status nut-server должна выдывать успешный репорт:

● nut-server.service - Network UPS Tools - power devices information server
   Loaded: loaded (/usr/lib/systemd/system/nut-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Пн 2018-07-16 14:32:12 +05; 19h ago
 Main PID: 1639 (upsd)
   CGroup: /system.slice/nut-server.service
           └─1639 /usr/sbin/upsd -F -u nut

июл 16 14:32:13 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:32:13 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 15:04:59 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 15:04:59 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 15:05:48 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 15:05:48 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]

Дальше, если вся эта «готовка» сработает, по обстоятельствам. Смотря, что ты хочешь от NUT и UPS. Будем разбираться. И статьи тоже могут помочь. В этом их рекомендации одинаковы для всех дистрибутивов.

Исходная версия roiman, :

Добрался до стац. компа. Прочитал нормально логи.

Сайт говорит, что драйвер usbhid-ups. Подключаешь ты UPS по USB. И, судя по тому логу, когда ты его запускала от рута, драйвер работает.

Но, ещё раз, от рута не нужно его использовать.

В общем, на стадии драйвера какие затыки в CentOS.

1. Драйверу нужно, чтобы группа usb-устройства была nut, а по умолчанию она прописывается как dialout. Поэтому нужно поправить и подключить правила udev, чтобы при каждом подключении выставлялась нужная группа. Для этого:

1.1 Копируешь правила из пакета nut в рабочу папку udev:

cp /lib/udev/rules.d/62-nut-usbups.rules  /etc/udev/rules.d/

1.2 Правишь этот файл (/etc/udev/rules.d/62-nut-usbups.rules). Находишь строчку своего устройства по idVendor и idProduct. У тебя это:

ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a4", MODE="664", GROUP="dialout"

И меняешь dialout на nut

1.3 Перетыкаешь кабель, чтобы переподключить и выставилась нормальная группа. Дальше она будет автоматом нормально выставляться при каждой загрузке. Проверяешь, чтобы у устройства /dev/bus/usb/004/002 была группа nut

ls -la /dev/bus/usb/004/
crw-rw-r--. 1 root nut  189, 385 июл 17 09:54 002

2. Драйвер запускается не просто командой upsdrvctl start. Для него еще предварительно нужно создать временную папку /var/run/nut, чтобы он записывал туда свои pid-файлы. Для этого был создан юнит systemd. В нём предварительно создается эта временная папка и только потом запускается драйвер. Но мейнтейнеры положили файл, где прописана эта папка, не в то место, которое прописано в юните. Поэтому:

2.1 Открываешь файл:

/usr/lib/tmpfiles.d/nut-run.conf

И правишь его содержимое на:

D    /var/run/nut 0750 nut nut -
F    /var/run/nut/upsd.pid 0750 nut nut - 12220
F    /var/run/nut/upsmon.pid 0750 nut nut - 12221

2.2 Правишь путь к этому файлу в юните nut-server. Открываешь файл:

/usr/lib/systemd/system/nut-server.service

И меняешь --create /etc/tmpfiles.d/nut-run.conf на --create /usr/lib/tmpfiles.d/nut-run.conf

2.3 Перезагружаешь systemd:

systemctl daemon-reload

2.4 Драйвер запускается командой запуска этого юнита:

systemctl start nut-server

2.5 Команда systemctl status nut-server должна выдывать успешный репорт:

● nut-server.service - Network UPS Tools - power devices information server
   Loaded: loaded (/usr/lib/systemd/system/nut-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Пн 2018-07-16 14:32:12 +05; 19h ago
 Main PID: 1639 (upsd)
   CGroup: /system.slice/nut-server.service
           └─1639 /usr/sbin/upsd -F -u nut

июл 16 14:32:13 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:32:13 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 14:58:01 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 15:04:59 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 15:04:59 proliant upsd[1639]: User nut@127.0.0.1 logged out from UPS [ippon]
июл 16 15:05:48 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]
июл 16 15:05:48 proliant upsd[1639]: User nut@127.0.0.1 logged into UPS [ippon]

Дальше, если вся эта «готовка» сработает, по обстоятельствам. Смотря, что ты хочешь от NUT и UPS. Будем разбираться. И статьи тоже могут помочь. В этом их рекомендации одинаковы для всех дистрибутивов.