[sisyphus] Обновление libusb и nut

Ivan Adzhubey =?iso-8859-1?q?iadzhubey_=CE=C1_rics=2Ebwh=2Eharvard=2Eedu?=
Вс Сен 21 07:40:05 MSD 2008


Добрый день, Александр!

On Saturday 20 September 2008 11:20:42 pm Alexander Bokovoy wrote:
> 2008/9/21 Ivan Adzhubey <iadzhubey на rics.bwh.harvard.edu>:
> > Приветствую!
> >
> > После сегодняшнего обновления libusb перестал работать драйвер newhidups
> > из пакета nu. Соответственно, и все остальные демоны управления UPS тоже.
> > Наверное, надо пересобрать nut с новой libusb?
>
> Рекомендую проверить права на соответствующие устройства.

Какие устройства? И как их проверять, если их все равно нет и не может быть в 
чруте? Или вы имеете в виду, что в режиме чрута оно вообще работать не может? 
А как раньше работало?

> По умолчанию 
> upsdrv запускает драйвер в чруте, где нет на самом деле нужных
> устройств, но в чрут он переходит после их определения.
> А дальше 
> начинается регулярное ресканирование шины:
<...skipped>
> Естественно, все это "отваливается", потому что в чруте ничего нет.

Еще раз, и как же это все раньше работало?

> Если не запускать его в чруте и дать права пользователю upsdrv на
> работу с нужным USB устройством,

Я настраивал средствами alterator-nut, не очень понимаю, зачем вообще тащить 
nut а чрут -- это что, настолько опасное устройство? Попробую чрут убрать...

> то /var/log/messages должно быть 
> что-то вроде вот этого:
> Sep 21 07:05:13 boii upsdrvctl: Network UPS Tools: 0.28 USB
> communication driver 0.28 - core 0.30 (2.0.5)
> Sep 21 07:05:13 boii upsdrvctl: Detected a UPS: American Power
> Conversion/Back-UPS ES 525 FW:851.t3.I USB FW:t3
> Sep 21 07:05:13 boii upsdrvctl: Using subdriver: APC/CyberPower HID 0.9
> Sep 21 07:05:15 boii upsdrvctl: libusb couldn't open USB device
> /dev/bus/usb/001/001: Permission denied.
> Sep 21 07:05:15 boii upsdrvctl: libusb requires write access to USB
> device nodes.
> Sep 21 07:05:15 boii upsdrvctl: libusb couldn't open USB device
> Sep 21 07:05:23 boii newhidups[27946]: Startup successful
> Sep 21 07:05:23 boii upsdrvctl: Network UPS Tools - UPS driver controller
> 2.0.5 Sep 21 07:05:23 boii upsdrv: Starting UPS drivers: succeeded
> Sep 21 07:05:35 boii upsd[27980]: Connected to UPS [ups]: ups
> Sep 21 07:05:35 boii upsd: Connected to UPS [ups]: ups
> Sep 21 07:05:35 boii upsd[27981]: Startup successful
> Sep 21 07:05:35 boii upsd: upsd startup succeeded
> Sep 21 07:05:44 boii upsmon[28000]: Startup successful
> Sep 21 07:05:44 boii upsmon: UPS: ups на localhost (master) (power value 1)
> Sep 21 07:05:44 boii upsmon: Using power down flag file /etc/killpower
> Sep 21 07:05:44 boii upsmon: upsmon startup succeeded
> Sep 21 07:05:44 boii upsd[27981]: Connection from 127.0.0.1
> Sep 21 07:05:44 boii upsd[27981]: Client monuser на 127.0.0.1 logged into UPS
> [ups] Sep 21 07:05:52 boii upsd[27981]: Connection from 127.0.0.1
> Sep 21 07:05:52 boii upsd[27981]: Client on 127.0.0.1 logged out
>
> Сообщения от libusb -- нормальная реакция на невозможность открыть
> несвязанные с нашей работой устройства на запись.

Странно, но до апдейта никаких сообщений о permission denied от libusb я не 
наблюдал. А как выставлять права на устройство, оно же создается динамически 
udev'ом? Это надо в скрипты настройки udevd лезть? Кошмар...

> После чего все работает, но регулярное сканирование шины реализовано в
> newhidups некорректно, из-за этого там утекает память:
> Out of memory: kill process 27946 (newhidups) score 652587 or a child
> Killed process 27946 (newhidups)
>
> Я сейчас разбираюсь с кодом drivers/libusb.c в NUT.

Утечек памяти у меня тоже не наблюдалось, по крайней мере таких, чтобы оно 
отваливалось по недостатку памяти. Платформа x86_64 если это имеет значение.

--Иван



Подробная информация о списке рассылки Sisyphus