Здравствуйте!
Имеется:
ОС Fedora 13 86_64
UPS powercom bnt 1000 usb-порт
Задача: Выключать/включать систему при выключении/включении питания соответственно
Решение:
1. поставил nut
2. /etc/ups/ups.conf
[ups]
driver = powercom
port = /dev/hidraw0
type = IMPERIAL
desc = "IMD-525AP"
3. скачал NUT_Imperial.rar с офф. сайта
NUT_Imperial.rar включает в себя:
pcm_usb.ko
powercom
powercom.c
README.txt
4. Почитал README, запустил драйвер:
> ./powercom -a ups -u root -DD -x type=IMPERIAL -x port=/dev/hidraw0Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)
debug level is '2'
Can't chdir to /var/lib/nut: No such file or directory
5. На всякий случай сделал:
/etc/init.d/ups start
Starting UPS driver controller: [FAILED]
Starting upsd: [ OK ]
Starting UPS monitor (master): [FAILED]
6. tail -f /var/log/messages
upsd[2385]: mainloop: Interrupted system call
upsd[2385]: Signal 15: exiting
upsd[2416]: listening on 127.0.0.1 port 3493
upsd[2416]: listening on ::1 port 3493
upsd[2416]: Can't connect to UPS [ups] (powercom-ups): No such file or directory
upsd[2417]: Startup successfulЯ понимаю, все дело в том, что драйвер не грузится, т.к. не может найти библиотеки, но как ему их указать?
Заранее благодарен. Алексей
Хорошо, сформулируем вопрос иначе.
Имеются устройства, которые могут иметь отношение к ИБП:
/dev/hidraw0
/dev/usb/hiddev0
/dev/bus/usb/002/002
Which one I should use?
> Хорошо, сформулируем вопрос иначе.
> Имеются устройства, которые могут иметь отношение к ИБП:
> /dev/hidraw0
> /dev/usb/hiddev0
> /dev/bus/usb/002/002
> Which one I should use?вообще то у вас не находится каталог /var/lib/nut може стои его для начала создать.
Нет, это все не то, я запускал не тот драйвер.
Сейчас проблема именно в устройстве - не могу его правильно указать.
Это такая большая проблема - найти соответствие между устройством и файлом устройства?
Итак, Давайте начнем все сначала.
Устройство:
Bus 002 Device 002: ID 0d9f:0004 Powercom Co., Ltd
смотрим список драйверов для nut:
http://www.networkupstools.org/compat/stable.html
Имеем 4 варианта драйверов:
megatec
powercom
usbhid-ups
powercom (requires 'usbserial' kernel module)
К сожалению, нашей модели (product id 0004) там не оказалось, а потому пробуем методом тыка и выясняем, что подходит только powercom, но мы не знаем, нужен ему usbserial или нет, а потому грузим и его:
modprobe usbserial
Далее драйвер и порт в конфиге:
driver = powercom
port = /dev/bus/usb/002/002 (/dev/hidraw0) (/dev/usb/hiddev0)
Какой бы порт я ему ни указал, он говорит :
tcgetattr(device) inappropriate ioctl
Как же мне правильно связать устройство и порт?
>[оверквотинг удален]
> пробуем методом тыка и выясняем, что подходит только powercom, но мы
> не знаем, нужен ему usbserial или нет, а потому грузим и
> его:
> modprobe usbserial
> Далее драйвер и порт в конфиге:
> driver = powercom
> port = /dev/bus/usb/002/002 (/dev/hidraw0) (/dev/usb/hiddev0)
> Какой бы порт я ему ни указал, он говорит :
> tcgetattr(device) inappropriate ioctl
> Как же мне правильно связать устройство и порт?Если это USB Serial UPS, то в результате прикладывания кабеля в USB порт у вас должен задетектиться новый компорт, что отразится в логах. Смотрите в логи, чтобы видеть, детектится или нет и как конкретно. Соответсвенно нужно использовать /dev/ttyX (/dev/cuaXX) с драйвером powercom, смотрите в доках на вашу операционку, какие конкретно порты надо использовать.
Если же оно детектится, как USB HID, то драйвер надо использовать usbhid-ups и port="auto".
С HID UPS Powercom у NUT их поддержка появлялась в районе версии 2.4.3. Также посмотрите поддиректорию doc в исходниках, там есть про usbhid драйвер.
> Если это USB Serial UPS, то в результате прикладывания кабеля в USB
> порт у вас должен задетектиться новый компорт, что отразится в логах.
> Смотрите в логи, чтобы видеть, детектится или нет и как конкретно.Feb 9 10:00:07 kernel: usb 2-2: new low speed USB device using uhci_hcd and address 3
Feb 9 10:00:07 kernel: usb 2-2: New USB device found, idVendor=0d9f, idProduct=0004
Feb 9 10:00:07 kernel: usb 2-2: New USB device strings: Mfr=3, Product=1, SerialNumber=2
Feb 9 10:00:07 kernel: usb 2-2: Product: HID UPS Battery
Feb 9 10:00:07 kernel: usb 2-2: Manufacturer: POWERCOM Co.,LTD
Feb 9 10:00:07 kernel: usb 2-2: SerialNumber: 004-0D9F-000
Feb 9 10:00:08 kernel: generic-usb 0003:0D9F:0004.0002: hiddev96,hidraw0: USB HID v1.00 Device [POWERCOM Co.,LTD HID UPS Battery] on usb-0000:00:1d.0-2/input0> Соответсвенно нужно использовать /dev/ttyX (/dev/cuaXX) с драйвером powercom, смотрите
> в доках на вашу операционку, какие конкретно порты надо использовать.
> Если же оно детектится, как USB HID, то драйвер надо использовать usbhid-ups
> и port="auto".Так и использую, но пока никаких результатов. Возможно, придется пересобрать ядро
> С HID UPS Powercom у NUT их поддержка появлялась в районе версии
> 2.4.3. Также посмотрите поддиректорию doc в исходниках, там есть про usbhid
> драйвер.
> Can't chdir to /var/lib/nut: No such file orСам много пробовал.... итоги печальные:
1. драйверы - неверно используют пользователя: nut
как результат: ошибка выше.
2. пакет: nut - неверно использует пользователя: nut
как результат: ошибки запуска и/или доступа.Решение:
1. /etc/nut.conf
UPSD_OPTIONS="-u root"
UPSMON_OPTIONS="-u root"
2. /etc/ups.conf
user = rootP.S. Авторам драйверов и пакета в целом - памятник! :(
Спасибо - обязательно попробую на днях