Имеется:
Ubuntu 8.10 (ядро 2.6.27-11-generic) - что-то типа сервера
Powercom BNT-600AP
Хочется:
подружить железо с софтом, чтобы выключать нормально компьютер при пропадании напряжения в сети и чтобы он сам включался при восстановлении питания.
Я с линуксом не очень знаком - работаю с ним только второй месяц.
Потратил 3 дня на решение этой проблемы.
Поскольку возникшие проблемы для меня были не тривиальны, то я решил поделиться опытом с Вами.
Итак:
1) драйвер usbhid захватывает устройство и создает узел /dev/usb/hiddev0
upsmon_usb1 вроде-бы стартует нормально, опознает устройство, как нормальный бесперебойник, но работать не хочет.
upsmon, который работает с COM-портом - не хочет работать с /dev/usb/hiddev0.
2) запретил usbhid-у захватывать устройство. cypress_m8 нормально опознал USB-to-Serial устройство, в результате чего появилось устройство /dev/ttyUSB0
однако при каждой второй перезагрузке UPS определялся то как diddev0, то ttyUSB0.
3) depmod -ae
update-initramfs -u
после каждой перезагрузки UPS начал определяться, как ttyUSB0
4) upsmon не захотел с ttyUSB0 работать.
"stty -F /dev/ttyUSB0" показал speed 0
после "stty -F /dev/ttyUSB0 speed 2400" upsmon наконец-то заработал.
5) поместил "down" в корень (согласно инструкции).
запуск "upsmon /dev/ttyUSB0 30 30" привел к тому, что "down" скрипт не вызвался, но бесперебойник отключил нагрузку.
"upsmon /dev/ttyUSB0 30 60" - та же самая ситуация.
решил забить на upsmon...
6) попробовал запустить nut-2.4.1.
- реально работал протокол KIN 0x4b (хотя у меня BNT-600AP), но заряд батареи всегда показывался неверно - 0.0.
- после небольших фиксов в исходниках заряд батареи начал отображаться нормально и при снижении до 30% система выключилась, но бесперебойник не отключил питание с материнской платы - это не тот результат, который мне нужен.
7) решил еще раз дать шанс upsmon-у
применение "strace -tt -f -p" позволило выяснить, что файл "down" должен находиться в одном каталоге с "upsmon".
в итоге:
- при "upsmon /dev/ttyUSB0 30 30" файл "down" не успевает запускаться, что приводит к плачевным последствиям (что есть UPS, что нету - одни и теже яйца - компьютер неправильно выключается).
- "upsmon /dev/ttyUSB0 30 60" - так работает нормально (shutdown -h отрабатывает. после этого бесперебойник убирает питание с компьютера. восстановление питания загружает компьютер)
прикрепленный файл содержит комплект файлов, которые у меня работают.
после установки необходимо перезагрузиться чтобы появилось устройство /dev/ttyUSB{*}
(или использовать /sys/bus/usb/usbhid/unbind и /sys/bus/usb/cypress/bind . может понадобиться подгрузить cypress руками modprobe cypress_m8)
Вам возможно прийдется в файле поменять ttyUSB0 на какой-нибудь другой.
edit: прикрепить файл неудалось из-за неправильной работы движка форума.
powercom092.USB-to-RS232.mx3.v01.tar.bz2 - 0.02MB
BNT-600AP , USB, Linux, upsmon - рецепт приготовления
Moderators:artyom, AlexS, tanych
Re: BNT-600AP , USB, Linux, upsmon - рецепт приготовления
Рецепт реально работает.
Причем не только для Ubuntu. На Debian 5.0.6 установка и работа мною протестированы.
Теоретически работа данного рецепта на 5 ветке дебиана должна быть без проблем.
Автору огромное спасибо за аттач и созданный своего рода инсталлер.
Причем не только для Ubuntu. На Debian 5.0.6 установка и работа мною протестированы.
Теоретически работа данного рецепта на 5 ветке дебиана должна быть без проблем.
Автору огромное спасибо за аттач и созданный своего рода инсталлер.
Re: BNT-600AP , USB, Linux, upsmon - рецепт приготовления
BNT-3000AP
# cat /etc/debian_version
squeeze/sid
# uname -a
Linux q.lan 2.6.32-5-amd64 #1 SMP Wed Oct 20 00:05:22 UTC 2010 x86_64 GNU/Linux
ttyUSB и hiddev0 не появились, но nut нашёл упс и мониторит-)
(добавил только - options usbhid quirks=0x0d9f:0x0002:0x0004 и depmod -ae && update-initramfs -u && reboot )
Автору огромное спасибо !!!!
# cat /etc/debian_version
squeeze/sid
# uname -a
Linux q.lan 2.6.32-5-amd64 #1 SMP Wed Oct 20 00:05:22 UTC 2010 x86_64 GNU/Linux
ttyUSB и hiddev0 не появились, но nut нашёл упс и мониторит-)
(добавил только - options usbhid quirks=0x0d9f:0x0002:0x0004 и depmod -ae && update-initramfs -u && reboot )
Автору огромное спасибо !!!!