Всем привет!
Кто может помочь в настройке nut под UPS Powercom?Установил Nut, прописал в конфиге драйвер powercom, указал устройство /dev/ttyUSB0 (у меня упса через USB подключен), но запустить демона upsd не получается пишет:
Starting NUT UPS drivers failed
Если делаю вот так:./powercom -a ups -u root -DD -x type=IMPERIAL -x port=/dev/ttyUSB0
то вроде как связь есть и каждую секунду на консоль сыпятся сообщения вроде этих:
input.frequency: 50.00
output.frequency: 50.00
ups.load: 11.0
battery.charge: 100.0
input.voltage: 232.0
output.voltage: 232.0
STATUS: OL
input.frequency: 50.00
output.frequency: 50.00
ups.load: 11.0
battery.charge: 100.0
input.voltage: 232.0
output.voltage: 232.0
STATUS: OL
input.frequency: 50.00
output.frequency: 50.00
ups.load: 11.0
battery.charge: 100.0
input.voltage: 232.0
output.voltage: 232.0
STATUS: OLСодержимое /etc/ups/ups.conf:
[myups]
driver = powercom
port = /dev/ttyUSB0
type = IMPERIAL
desc = "IMPERIAL"Система OpenSuse 11.1
>[оверквотинг удален]
>
>Содержимое /etc/ups/ups.conf:
>
>[myups]
> driver = powercom
> port = /dev/ttyUSB0
> type = IMPERIAL
> desc = "IMPERIAL"
>
>Система OpenSuse 11.1сразу после перезапуска системы
cat /var/log/messages в студию
./powercom - это не upsd, и то, что он выводит на консоль состояние упса не говорит о том, что upsd работает и как то с ним связан
кстати что с дровами от вендора, иногда проще во много раз с ними, тем более на линухе чем нут настраивать.
мой
/root # cat /usr/local/etc/nut/upsd.conf
LISTEN 127.0.0.1
#ACL all 0.0.0.0/0
#ACL localhost 127.0.0.1/32
#ACCEPT localhost
#REJECT allчто у ВАС ?
Вывод /var/log/messagesJul 29 12:42:38 linux-775z syslog-ng[1627]: syslog-ng starting up; version='2.0.9'
Jul 29 12:42:39 linux-775z rchal: CPU frequency scaling is not supported by your processor.
Jul 29 12:42:39 linux-775z rchal: boot with 'CPUFREQ=no' in to avoid this warning.
Jul 29 12:42:39 linux-775z rchal: Cannot load cpufreq governors - No cpufreq driver available
Jul 29 12:42:41 linux-775z ifup: lo
Jul 29 12:42:42 linux-775z ifup: lo
Jul 29 12:42:42 linux-775z ifup: IP address: 127.0.0.1/8
Jul 29 12:42:42 linux-775z ifup:
Jul 29 12:42:42 linux-775z ifup:
Jul 29 12:42:42 linux-775z ifup: IP address: 127.0.0.2/8
Jul 29 12:42:42 linux-775z ifup:
Jul 29 12:42:43 linux-775z ifup: eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
Jul 29 12:42:43 linux-775z kernel: klogd 1.4.1, log source = /proc/kmsg started.
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856955.344:2): operation="profile_load" name="/bin/ping" name2="default" pid=1482
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856955.484:3): operation="profile_load" name="/sbin/klogd" name2="default" pid=1486
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856955.780:4): operation="profile_load" name="/sbin/syslog-ng" name2="default" pid=1496
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856956.128:5): operation="profile_load" name="/sbin/syslogd" name2="default" pid=1510
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856956.408:6): operation="profile_load" name="/usr/sbin/avahi-daemon" name2="default" pid=1521
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856956.600:7): operation="profile_load" name="/usr/sbin/identd" name2="default" pid=1534
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856956.816:8): operation="profile_load" name="/usr/sbin/mdnsd" name2="default" pid=1545
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856957.116:9): operation="profile_load" name="/usr/sbin/nscd" name2="default" pid=1553
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856957.408:10): operation="profile_load" name="/usr/sbin/ntpd" name2="default" pid=1565
Jul 29 12:42:43 linux-775z kernel: type=1505 audit(1248856957.584:11): operation="profile_load" name="/usr/sbin/traceroute" name2="default" pid=1572
Jul 29 12:42:43 linux-775z kernel: powernow: This module only works with AMD K7 CPUs
Jul 29 12:42:43 linux-775z ifup-dhcp: eth0 Starting DHCP4 client
Jul 29 12:42:43 linux-775z dhcpcd[2144]: eth0: dhcpcd 3.2.3 starting
Jul 29 12:42:43 linux-775z dhcpcd[2144]: eth0: hardware address = 00:0c:29:f5:48:a7
Jul 29 12:42:43 linux-775z kernel: NET: Registered protocol family 17
Jul 29 12:42:43 linux-775z dhcpcd[2144]: eth0: broadcasting for a lease
Jul 29 12:42:44 linux-775z ifup-dhcp: .
Jul 29 12:42:44 linux-775z dhcpcd[2144]: eth0: offered 192.168.188.129 from 192.168.188.254
Jul 29 12:42:45 linux-775z dhcpcd[2144]: eth0: checking 192.168.188.129 is available on attached networks
Jul 29 12:42:46 linux-775z dhcpcd[2144]: eth0: leased 192.168.188.129 for 1800 seconds
Jul 29 12:42:46 linux-775z dhcpcd[2144]: eth0: adding IP address 192.168.188.129/24
Jul 29 12:42:47 linux-775z syslog-ng[1627]: Configuration reload request received, reloading configuration;
Jul 29 12:42:47 linux-775z syslog-ng[1627]: New configuration initialized;
Jul 29 12:42:47 linux-775z ifup-dhcp:
Jul 29 12:42:47 linux-775z ifup-dhcp: eth0 IP address: 192.168.188.129/24
Jul 29 12:42:47 linux-775z ifdown: eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
Jul 29 12:42:48 linux-775z auditd[2504]: Started dispatcher: /sbin/audispd pid: 2506
Jul 29 12:42:48 linux-775z auditd[2504]: Init complete, auditd 1.7.7 listening for events (startup state disable)
Jul 29 12:42:48 linux-775z ifup: eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
Jul 29 12:42:48 linux-775z audispd: priority_boost_parser called with: 4
Jul 29 12:42:48 linux-775z audispd: af_unix plugin initialized
Jul 29 12:42:48 linux-775z audispd: audispd initialized with q_depth=80 and 1 active plugins
Jul 29 12:42:49 linux-775z kernel: NET: Registered protocol family 10
Jul 29 12:42:49 linux-775z kernel: lo: Disabled Privacy Extensions
Jul 29 12:42:49 linux-775z kernel: klogd 1.4.1, ---------- state change ----------
Jul 29 12:42:50 linux-775z SuSEfirewall2: SuSEfirewall2 not active
Jul 29 12:42:50 linux-775z dhcpcd[2144]: eth0: Failed to lookup hostname via DNS: Temporary failure in name resolution
Jul 29 12:42:50 linux-775z dhcpcd[2144]: eth0: exiting
Jul 29 12:42:56 linux-775z smartd[3043]: smartd 5.39 2008-10-24 22:33 [i686-suse-linux-gnu] (openSUSE RPM) Copyright (C) 2002-8 by Bruce Allen, http://smartmontools.sourceforge.net
Jul 29 12:42:56 linux-775z smartd[3043]: Opened configuration file /etc/smartd.conf
Jul 29 12:42:56 linux-775z smartd[3043]: Drive: DEVICESCAN, implied '-a' Directive on line 26 of file /etc/smartd.conf
Jul 29 12:42:56 linux-775z smartd[3043]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sda, type changed from 'scsi' to 'sat'
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sda [SAT], opened
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sda [SAT], not found in smartd database.
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sda [SAT], lacks SMART capability
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sda [SAT], to proceed anyway, use '-T permissive' Directive.
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sdb, type changed from 'scsi' to 'sat'
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sdb [SAT], opened
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sdb [SAT], not found in smartd database.
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sdb [SAT], lacks SMART capability
Jul 29 12:42:56 linux-775z smartd[3043]: Device: /dev/sdb [SAT], to proceed anyway, use '-T permissive' Directive.
Jul 29 12:42:56 linux-775z smartd[3043]: Unable to monitor any SMART enabled devices. Try debug (-d) option. Exiting...
Jul 29 12:42:56 linux-775z /usr/sbin/cron[3080]: (CRON) STARTUP (V5.0)
Jul 29 12:42:57 linux-775z sshd[3121]: Server listening on 0.0.0.0 port 22.
Jul 29 12:42:57 linux-775z sshd[3121]: Server listening on :: port 22.
Jul 29 12:42:57 linux-775z kernel: vmmon: module license 'Proprietary' taints kernel.
Jul 29 12:42:57 linux-775z kernel: Symbol init_mm is marked as UNUSED, however this module is using it.
Jul 29 12:42:57 linux-775z kernel: This symbol will go away in the future.
Jul 29 12:42:57 linux-775z kernel: Please evalute if this is the right api to use and if it really is, submit a report the linux kernel mailinglist together with submitting your code for inclusion.
Jul 29 12:42:57 linux-775z kernel: [3106]: VMCI: Driver initialized.
Jul 29 12:42:57 linux-775z kernel: [3106]: Module vmmon: registered with major=10 minor=165
Jul 29 12:42:57 linux-775z kernel: [3106]: Module vmmon: initialized
Jul 29 12:42:57 linux-775z kernel: VMware memory control driver initialized
Jul 29 12:42:57 linux-775z kernel: vmmemctl: started kernel thread pid=3125
Jul 29 12:42:57 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/chargen [file=/etc/xinetd.conf] [line=26]
Jul 29 12:42:57 linux-775z kernel: /dev/vmnet: open called by PID 3154 (vmnet-bridge)
Jul 29 12:42:57 linux-775z kernel: /dev/vmnet: hub 0 does not exist, allocating memory.
Jul 29 12:42:57 linux-775z kernel: /dev/vmnet: port on hub 0 successfully opened
Jul 29 12:42:57 linux-775z kernel: bridge-eth0: enabling the bridge
Jul 29 12:42:57 linux-775z kernel: bridge-eth0: up
Jul 29 12:42:57 linux-775z kernel: bridge-eth0: already up
Jul 29 12:42:57 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/chargen-udp [file=/etc/xinetd.d/chargen-udp] [line=14]
Jul 29 12:42:58 linux-775z kernel: bridge-eth0: attached
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: open called by PID 3173 (vmnet-netifup)
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: hub 8 does not exist, allocating memory.
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: port on hub 8 successfully opened
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: open called by PID 3172 (vmnet-netifup)
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: hub 1 does not exist, allocating memory.
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: port on hub 1 successfully opened
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: open called by PID 3171 (vmnet-natd)
Jul 29 12:42:58 linux-775z kernel: /dev/vmnet: port on hub 8 successfully opened
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/cups-lpd [file=/etc/xinetd.d/cups-lpd] [line=15]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/daytime [file=/etc/xinetd.d/daytime] [line=11]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/daytime-udp [file=/etc/xinetd.d/daytime-udp] [line=14]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/discard [file=/etc/xinetd.d/discard] [line=15]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/discard-udp [file=/etc/xinetd.d/discard-udp] [line=14]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/echo [file=/etc/xinetd.d/echo] [line=15]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/echo-udp [file=/etc/xinetd.d/echo-udp] [line=14]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/netstat [file=/etc/xinetd.d/netstat] [line=15]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/rsync [file=/etc/xinetd.d/rsync] [line=16]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/sane-port [file=/etc/xinetd.d/sane-port] [line=12]
Jul 29 12:42:58 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/servers [file=/etc/xinetd.d/servers] [line=14]
Jul 29 12:43:02 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/services [file=/etc/xinetd.d/services] [line=14]
Jul 29 12:43:02 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/systat [file=/etc/xinetd.d/systat] [line=14]
Jul 29 12:43:02 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/time [file=/etc/xinetd.d/time] [line=17]
Jul 29 12:43:02 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/time-udp [file=/etc/xinetd.d/time-udp] [line=15]
Jul 29 12:43:02 linux-775z xinetd[3151]: Reading included configuration file: /etc/xinetd.d/vmware-authd [file=/etc/xinetd.d/vmware-authd] [line=15]
Jul 29 12:43:02 linux-775z vmnet-dhcpd: Internet Software Consortium DHCP Server 2.0
Jul 29 12:43:02 linux-775z vmnet-dhcpd: Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
Jul 29 12:43:02 linux-775z vmnet-dhcpd: All rights reserved.
Jul 29 12:43:02 linux-775z vmnet-dhcpd:
Jul 29 12:43:02 linux-775z vmnet-dhcpd: Please contribute if you find this software useful.
Jul 29 12:43:02 linux-775z vmnet-dhcpd: For info, please visit http://www.isc.org/dhcp-contrib.html
Jul 29 12:43:02 linux-775z vmnet-dhcpd:
Jul 29 12:43:02 linux-775z vmnet-dhcpd: Internet Software Consortium DHCP Server 2.0
Jul 29 12:43:02 linux-775z vmnet-dhcpd: Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
Jul 29 12:43:02 linux-775z vmnet-dhcpd: All rights reserved.
Jul 29 12:43:02 linux-775z vmnet-dhcpd:
Jul 29 12:43:02 linux-775z vmnet-dhcpd: Please contribute if you find this software useful.
Jul 29 12:43:02 linux-775z vmnet-dhcpd: For info, please visit http://www.isc.org/dhcp-contrib.html
Jul 29 12:43:02 linux-775z vmnet-dhcpd:
Jul 29 12:43:02 linux-775z xinetd[3151]: xinetd Version 2.3.14 started with libwrap loadavg options compiled in.
Jul 29 12:43:02 linux-775z xinetd[3151]: Started working: 1 available service
Jul 29 12:43:03 linux-775z ifup: vmnet8
Jul 29 12:43:03 linux-775z ifup: No configuration found for vmnet8
Jul 29 12:43:03 linux-775z ifup: vmnet1
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Configured subnet: 192.168.83.0
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Setting vmnet-dhcp IP address: 192.168.83.254
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Recving on VNet/vmnet8/192.168.83.0
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Sending on VNet/vmnet8/192.168.83.0
Jul 29 12:43:03 linux-775z kernel: /dev/vmnet: open called by PID 3226 (vmnet-dhcpd)
Jul 29 12:43:03 linux-775z kernel: /dev/vmnet: port on hub 8 successfully opened
Jul 29 12:43:03 linux-775z ifup: No configuration found for vmnet1
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Configured subnet: 192.168.156.0
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Setting vmnet-dhcp IP address: 192.168.156.254
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Recving on VNet/vmnet1/192.168.156.0
Jul 29 12:43:03 linux-775z kernel: /dev/vmnet: open called by PID 3225 (vmnet-dhcpd)
Jul 29 12:43:03 linux-775z kernel: /dev/vmnet: port on hub 1 successfully opened
Jul 29 12:43:03 linux-775z vmnet-dhcpd: Sending on VNet/vmnet1/192.168.156.0
Jul 29 12:43:03 linux-775z kernel: eth0: no IPv6 routers present
Jul 29 12:43:12 linux-775z kernel: vmnet1: no IPv6 routers present
Jul 29 12:43:12 linux-775z kernel: vmnet8: no IPv6 routers present
Jul 29 12:44:33 linux-775z sshd[3454]: Accepted keyboard-interactive/pam for root from 192.168.188.1 port 1396 ssh2
Jul 29 12:44:33 linux-775z sshd[3454]: subsystem request for sftp# dmesg | grep usb > /grep.usb
# cat grep.usbusbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
usb usb1: configuration #1 chosen from 1 choice
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: UHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.27.7-9-pae uhci_hcd
usb usb1: SerialNumber: 0000:00:07.2
usb 1-1: new full speed USB device using uhci_hcd and address 2
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: New USB device found, idVendor=0d9f, idProduct=0002
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: USB to Serial
usb 1-1: Manufacturer: POWERCOM CO., LTD.
usb 1-2: new full speed USB device using uhci_hcd and address 3
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: New USB device found, idVendor=0e0f, idProduct=0002
usb 1-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 1-2: Product: VMware Virtual USB Hub
usbcore: registered new interface driver usbserial
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
usbserial: USB Serial support registered for DeLorme Earthmate USB
usbserial: USB Serial support registered for HID->COM RS232 Adapter
usbserial: USB Serial support registered for Nokia CA-42 V2 Adapter
usb 1-1: HID->COM RS232 Adapter converter now attached to ttyUSB0
usbcore: registered new interface driver cypress
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver# cat /usr/local/etc/nut/upsd.conf
cat: /usr/local/etc/nut/upsd.conf: No such file or directoryС драйверами пока не ясно. Если найду откуда скопировать - отпишусь.
># cat /usr/local/etc/nut/upsd.conf
>cat: /usr/local/etc/nut/upsd.conf: No such file or directoryвывод find / | grep upsd.conf
тогда уж жду>С драйверами пока не ясно. Если найду откуда скопировать - отпишусь.
с драйверами, как где скопировать - вопрос не верный!
нужно найти сайт производителя и именно от туда скачать, лучше даже сразу на диске посмотреть от упс-а, может та че будет
У меня вот так:# cat /etc/ups/upsd.conf
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32ACCEPT localhost
REJECT allСделал как у вас, перезапустил демона upsd но эффекта нет.
попробуйте запускать через updsrvctl и в качестве порта использовать /dev/hiddev0 (/dev/usb/hiddev0)
К сожалению почему то таких устройств в системе нет, только /dev/ttyUSB0
и куча /dev/usbdev*
>К сожалению почему то таких устройств в системе нет, только /dev/ttyUSB0
>и куча /dev/usbdev*куча? тогдa оставляйте в качестве порта ttyUSB0 и попытайтесь запустить так
upsdrvctl start
еще в качестве драйвера попробуйте дефолтный hidups
./upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)user nut not found
Driver failed to start (exit status=1)Добавил пользователя nut, после запускаю получаю вот, что:
# ./upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)
Unable to open /dev/ttyUSB0: Permission deniedCurrent user id: nut (1001)
Serial port owner: root (0)
Serial port group: uucp (14)
Mode of port: 0660Things to try:
- Use another port (with the right permissions)
- Fix the port owner/group or permissions on this port
- Run this driver as another user (upsdrvctl -u or 'user=...' in ups.conf).
See upsdrvctl(8) and ups.conf(5).Fatal error: unusable configuration
Driver failed to start (exit status=1)Так, вроде запустился:
# ./upsdrvctl -u root start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)Но /etc/init.d/upsd start все равно выдает:
# /etc/init.d/upsd start
Starting NUT UPS drivers failed
Попробовал использовать драйвер hidups (прописал в конфиге /etc/ups/ups.conf) - у меня он называется видимо usbhid-ups.Торможу "запущенный" до этого вручную драйвер:
# ./upsdrvctl -u root stop
Network UPS Tools - UPS driver controller 2.2.2
Can't open /var/lib/ups/(null)-ttyUSB0.pid: No such file or directoryСмотрю кем занято:
# lsof /dev/ttyUSB0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
powercom 8906 root 4u CHR 188,0 0t0 3459 /dev/ttyUSB0Убиваю и пробую запустить но ничего не получается:
# kill 8906
# ./upsdrvctl -u root start
Network UPS Tools - UPS driver controller 2.2.2
Can't start /usr/lib/ups/driver/(null): No such file or directory
# lsof /dev/ttyUSB0
# ./upsdrvctl -u root start
Network UPS Tools - UPS driver controller 2.2.2
Can't start /usr/lib/ups/driver/(null): No such file or directory# /etc/init.d/upsd status
Checking for service NUT UPS server unused
Checking for service NUT UPS monitor unused
# /etc/init.d/upsd start
Starting NUT UPS drivers failed
># ./upsdrvctl -u root start
>Network UPS Tools - UPS driver controller 2.2.2
>Can't start /usr/lib/ups/driver/(null): No such file or directory
>Пофиксил - просто конфиг в это время менял и напортачил.
>[оверквотинг удален]
>
>Starting NUT UPS drivers
> failed
>
>
>Если делаю вот так:
>
>./powercom -a ups -u root -DD -x type=IMPERIAL -x port=/dev/ttyUSB0
>
>то вроде как связь есть и каждую секунду на консоль сыпятся сообщениясудя по виду сообщений драйвер выбран правильный и работает корректно.
>Содержимое /etc/ups/ups.conf:
>
>[myups]
> driver = powercom
> port = /dev/ttyUSB0
> type = IMPERIAL
> desc = "IMPERIAL"
>
>Система OpenSuse 11.1запускать драйвер необходимо через upsdrvctrl start
при успешном запуске драйвера в папке /var/state/ups/ появится сокет с именем драйвера и ups. Только после этого имеет смысл запускать демон upsd поскольку он ищет сокеты в папке подключается к ним и отдаёт клиентам информацию о состоянии всех ups подключенных к локальной системе.
Также определитесь где у вас настройки nut в /usr/local/etc (если собирали из исходников) или в /etc (если ставили через пакетный менеджер). В дистрибутивах драйвер может создать сокет и в /var/run/ups это уже зависит от дистрибутива.
>
>при успешном запуске драйвера в папке /var/state/ups/ появится сокет с именем драйвера
>и ups.# ./upsdrvctl -u root start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)/dev/ttyUSB0 is locked by another process
Driver failed to start (exit status=1)
# lsof /dev/ttyUSB0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
powercom 8906 root 4u CHR 188,0 0t0 3459 /dev/ttyUSB0Т.е. драйвер запущен, а в директории /var папки state нет.
# ls /var/
X11R6 adm cache crash games lib lock log mail opt run spool tmp yp
Настройки у меня в /etc/ups# ls /etc/ups/
ddd.tar.gz ups.conf upsd.users upssched.conf
hosts.conf upsd.conf upsmon.conf upsset.conf
>[оверквотинг удален]
> tmp yp
>
>
>Настройки у меня в /etc/ups
>
># ls /etc/ups/
>ddd.tar.gz ups.conf
>upsd.users upssched.conf
>hosts.conf upsd.conf upsmon.conf
> upsset.confПосмотри в /var/run/nut или /var/run/ups должен быть файл сокета вида <имя драйвера>-<название ups> в твоём случае powercom-myups ну или netstat -xp | grep powercom
Файл сокета нашел поиском, он находится здесь:
/var/lib/nut/powercom-ups.pid
и он сейчас запущен:
# netstat -xp | grep powercom
unix 2 [ ] DGRAM 30379 9632/powercomА вот что лежит в папке:
linux-775z:/var/lib/nut # ls -l
total 4
-rw-r--r-- 1 root root 5 Jul 29 15:21 powercom-ups.pid
srw-rw---- 1 root root 0 Jul 29 15:21 upsНо демон не запускается:
# /etc/init.d/upsd start
Starting NUT UPS drivers failed
>Файл сокета нашел поиском, он находится здесь:
>/var/lib/nut/powercom-ups.pid
>total 4
>-rw-r--r-- 1 root root 5 Jul 29 15:21 powercom-ups.pid
>srw-rw---- 1 root root 0 Jul 29 15:21 ups
>а собсетвенно зачем root обычно запускают от имени nut
>Но демон не запускается:
># /etc/init.d/upsd start
>Starting NUT UPS drivers
> failedА если посмотреть скрипт запуска службы upsd то возможно выяснится что при запуске службы ups штатными средствами скрипт автоматом запускает все драйвера с правильными правами. Так что если начали запускать в ручную то upsd тоже пускайте в ручную например upsd -u root а то в ручную запускаете драйвер от рута а upsd чере системный скрипт.
>а собсетвенно зачем root обычно запускают от имени nut
>От имени nut не запускается:
# ./upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)
Unable to open /dev/ttyUSB0: Permission deniedCurrent user id: nut (1001)
Serial port owner: root (0)
Serial port group: uucp (14)
Mode of port: 0660Things to try:
- Use another port (with the right permissions)
- Fix the port owner/group or permissions on this port
- Run this driver as another user (upsdrvctl -u or 'user=...' in ups.conf).
See upsdrvctl(8) and ups.conf(5).Fatal error: unusable configuration
Driver failed to start (exit status=1)
>А если посмотреть скрипт запуска службы upsd то возможно выяснится что при
>запуске службы ups штатными средствами скрипт автоматом запускает все драйвера с
>правильными правами. Так что если начали запускать в ручную то upsd
>тоже пускайте в ручную например upsd -u rootТак не запускается - выдает справку по команде. А где там используемого юзера найти?
Нашел вот это место:UPSD_USER="upsd"
# Owner of UPS port devices (empty to skip device check):
UPS_OWNER="$UPSD_USER:root"И вот еще кусок скрипта:
UPS_CONFIG=/etc/ups/ups.conf
UPSD_CONFIG=/etc/ups/upsd.conf
UPSMON_CONFIG=/etc/ups/upsmon.confcase "$1" in
start)
test -n "$POWERDOWNFLAG" && rm -f "$POWERDOWNFLAG"
if grep -q '^\[' $UPS_CONFIG ; then
# Read current user in the config:
USER=$(sed -n 's/^[[:space:]]*user[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
if test -n "$USER" ; then
UPS_OWNER="$USER:root"
UPSD_USER="$USER"Т.е. он что ищет юзера под которым запускать в конфиге /etc/ups/ups.conf?
>[оверквотинг удален]
>
>- Fix the port owner/group or permissions on this port
>
>- Run this driver as another user (upsdrvctl -u or 'user=...' in
>ups.conf).
> See upsdrvctl(8) and ups.conf(5).
>
>Fatal error: unusable configuration
>Driver failed to start (exit status=1)
>не верно выставлены права надо дать пользователю от чего имени будет запускаться драйвер права на чтение запись в это устройство тогда можно будет запускать и не от root.
>
>>А если посмотреть скрипт запуска службы upsd то возможно выяснится что при
>>запуске службы ups штатными средствами скрипт автоматом запускает все драйвера с
>>правильными правами. Так что если начали запускать в ручную то upsd
>>тоже пускайте в ручную например upsd -u root
>
>Так не запускается - выдает справку по команде. А где там используемого
>юзера найти?Проверь ещё раз внимательно, флаг -u как раз и указывает от чьего имени должен работать демон upsd если запускался от root, если выдаёт справку значит где-то опечатка (ну или в SuSe какие-то патчи запрещающие работу от root демона upsd). У пользователя от имени которого запущен upsd должены быть права на чтение запись в файл сокета драйвера.
>[оверквотинг удален]
> start)
>test -n "$POWERDOWNFLAG" && rm -f "$POWERDOWNFLAG"
>if grep -q '^\[' $UPS_CONFIG ; then
> # Read current user in the config:
> USER=$(sed -n 's/^[[:space:]]*user[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
> if test -n "$USER" ; then
> UPS_OWNER="$USER:root"
> UPSD_USER="$USER"
>
>Т.е. он что ищет юзера под которым запускать в конфиге /etc/ups/ups.conf?в файле ups.conf может быть глобальная опция user= указывающая от чего имени стартует драйвер. Попробуй указать user=root. После чего ./upsdrvctl start должен запускаться без указания пользователя (возьмёт root из конфига) и служба будет использовать при запуске имя из этого файла. Походу вся проблема в правах доступа.
лучше настроить так чтоб udev сразу выставлял правильные значения владельца для файла устройства от ups, а то запускать от root службу мониторинга за бесперебойником не лучшая идея.
./upsdrvctl start запустился без указания пользователя. По умолчанию он видимо запускается из под пользователя nut. Права чтение\запись на устройство /dev/ttyUSB0 имеет также группа uucp, поэтому я просто включил в эту группу юзера nut (хотя бы временно).
В ups.conf пробовал указывать и user=root и user=nut - не помогает - все равно демон upsd не стартует.
Из под какого пользователя стартует этот демон не понятно, в скрипте искал но ничего нового не открыл. Привожу больший кусок где обрабатывается опция "start":
case "$1" in
start)
test -n "$POWERDOWNFLAG" && rm -f "$POWERDOWNFLAG"
if grep -q '^\[' $UPS_CONFIG ; then
# Read current user in the config:
USER=$(sed -n 's/^[[:space:]]*user[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
if test -n "$USER" ; then
UPS_OWNER="$USER:root"
UPSD_USER="$USER"
fiif test -n "$UPS_OWNER" ; then
PORTS=$(sed -n 's/^[[:space:]][[:space:]]*port[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
## Change permissions of undetectable ports (for detectable ports it's done by udev).
for PORT in $PORTS ; do
if test -L "$PORT" ; then
PORT=$(readlink -f $PORT)
fi
case "$PORT" in
/dev/ttyS* )
chown $UPS_OWNER $PORT || { rc_failed ; rc_status -v ; rc_exit ; }
;;
esac
done
fiecho -n "Starting NUT UPS drivers "
# Do not start upsdrvctl more times.
if ! test -f /var/run/upsdrvctl ; then
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
$UPSDRVCTL_BIN start >/dev/null 2>&1 || rc_failed
# Remember status and be verbose
rc_status -v || rc_exit
touch /var/run/upsdrvctl
else
rc_status -s ; rc_reset
fi
Вообщем upsdrvctl стартую, затем пробую запускать демона upsd но получаю сообщение:Starting NUT UPS drivers failed
А так он не запускается:
# /etc/init.d/upsd -u nut start
Usage: /etc/init.d/upsd {start|stop|status|try-restart|restart|force-reload|reload|probe|powerdown|try-powerdown}
# /etc/init.d/upsd -u root start
Usage: /etc/init.d/upsd {start|stop|status|try-restart|restart|force-reload|reload|probe|powerdown|try-powerdown}
# /etc/init.d/upsd -u root
Usage: /etc/init.d/upsd {start|stop|status|try-restart|restart|force-reload|reload|probe|powerdown|try-powerdown}
Вот пока только запустить драйвер получается :(
>./upsdrvctl start запустился без указания пользователя. По умолчанию он видимо запускается из
>под пользователя nut. Права чтение\запись на устройство /dev/ttyUSB0 имеет также группа
>uucp, поэтому я просто включил в эту группу юзера nut (хотя
>бы временно).Дать временно всем доступ к устройству /dev/ttyUSB0 убрать в конфиге строку user= запустить upsdrvctl start должно запуститься и создать сокеты от имени пользователя по умолчанию (судя по логам из предыдущих постов это будет nut).
Затем в ручную запустить демон командой upsd если не запустится то командой upsd -u <имя> где <имя> имя пользователя от которого запустился драйвер и создал сокеты.>[оверквотинг удален]
> start)
>test -n "$POWERDOWNFLAG" && rm -f "$POWERDOWNFLAG"
>if grep -q '^\[' $UPS_CONFIG ; then
> # Read current user in the config:
> USER=$(sed -n 's/^[[:space:]]*user[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
> if test -n "$USER" ; then
>UPS_OWNER="$USER:root"
>UPSD_USER="$USER"
> fi
>Ищется в конфиге от какого имени стартует драйвер
>[оверквотинг удален]
>PORT=$(readlink -f $PORT)
> fi
> case "$PORT" in
> /dev/ttyS* )
>chown $UPS_OWNER $PORT || { rc_failed ; rc_status -v ; rc_exit ;
>}
>;;
> esac
>done
> fiКак бы на чистом английском в коментариях написано что для портов которые не pnp (undetectable) то есть обычные COM (serial, он же последовательные) права выставляются в скрипте запуска для pnp портов права дожен выставить udev.
>[оверквотинг удален]
>rc_status -s ; rc_reset
> fi
>
>
>Вообщем upsdrvctl стартую, затем пробую запускать демона upsd но получаю сообщение:
>
>Starting NUT UPS drivers
> failed
>
>Вот пока только так получается :(Ещё раз говорю зачем СМЕШИВАТЬ ручной запуск службы через команды upsdrvctl и upsd с системным. Выберите одно из двух если запускаете через систему, то вручную никах драйверов предварительно запускать НЕ надо и если уже запустили то остановите все также вручну через upsdrvctl stop, скрипт сделает всё сам. Если решили запускать в ручную чтоб разобраться то не трогайте системный скрипт.
Попробуте дать, для начала, право на чтение запись в устройство /dev/ttyUSB* для всех.
Оказывается запускать драйвер вручную перед запуском демона не нужно.Подредактировал скрипт запуска - чтобы он хоть какие-то сообщения выводил на экран:
#$UPSDRVCTL_BIN start >/dev/null 2>&1 || rc_failed
$UPSDRVCTL_BIN start > /tmp/UPS || rc_failedЗатем попробовал стартовать его еще раз:
# /etc/init.d/upsd start
Starting NUT UPS drivers /dev/ttyUSB0 is locked by another process
Driver failed to start (exit status=1) failedВот тут то и стало все ясно - что к чему.
# lsof /dev/ttyUSB0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
powercom 12240 nut 4u CHR 188,0 0t0 3459 /dev/ttyUSB0
# kill 12240
# /etc/init.d/upsd start
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor doneBroadcast Message from upsd@linux-775z
(somewhere) at 17:49 ...Communications with UPS myups@localhost lost
Broadcast Message from upsd@linux-775z
(somewhere) at 17:49 ...UPS myups@localhost is unavailable
# ps ax | grep ups
2632 ? Ss 0:00 /usr/sbin/cupsd
13377 ? Ss 0:00 /usr/lib/ups/driver/powercom -a ups
13381 ? Ss 0:00 /usr/sbin/upsd -u root
13384 ? Ss 0:00 /usr/sbin/upsmon
13385 ? S 0:00 /usr/sbin/upsmon
13393 pts/1 S+ 0:00 grep upsТеперь появилось что-то новое... Что дальше делать пока не сообразил.
>[оверквотинг удален]
>Communications with UPS myups@localhost lost
>
>
>Broadcast Message from upsd@linux-775z
> (somewhere) at 17:49 ...
>
>
>UPS myups@localhost is unavailable
>
>это upsmon разговорился
>[оверквотинг удален]
>13381 ? Ss
> 0:00 /usr/sbin/upsd -u root
>13384 ? Ss
> 0:00 /usr/sbin/upsmon
>13385 ? S
> 0:00 /usr/sbin/upsmon
>13393 pts/1 S+ 0:00 grep
>ups
>
>Теперь появилось что-то новое... Что дальше делать пока не сообразил.Всё запустилось и работает вроде :) теперь с помощью
upsc myups
можно посмотреть как работает бесперебойник. Если upsc подключиться не сможет то править upsd.conf.
и читать
man upsd.conf
man upsd.users
ну для настройки мониторинга и реакций на собития читать:
man upsmon
man upsmon.conf
у вас скорее всего не настроен upsmon вот он и ругается при запуске
upsc все-таки подключиться не может...# /etc/init.d/upsd start
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor doneBroadcast Message from upsd@linux-775z
(somewhere) at 9:36 ...Communications with UPS ups@localhost lost
Broadcast Message from upsd@linux-775z
(somewhere) at 9:36 ...UPS ups@localhost is unavailable
# upsc myups@localhost
Error: Unknown UPS
# upsc ups@localhost
Error: Driver not connected# man upsc
# upsc ups@localhost:1234
Error: Connection failure: Connection refused# upsc -L
ups: IMPERIAL
# upsc -l
ups
Вот мои настройки:hosts.conf:
MONITOR ups@localhost "IMPERIAL"
ups.conf:
[ups]
driver = powercom
port = /dev/ttyUSB0
type = IMPERIAL
desc = "IMPERIAL"upsd.conf:
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32ACCEPT localhost
REJECT allMAXAGE 10
# LISTEN 127.0.0.1
upsd.users:[upsmaster]
password = 0db6e3de34
allowfrom = localhost
upsmon master[upsslave]
password = 55a23035c7
allowfrom = localhost
upsmon slaveupsmon.conf:
MONITOR ups@localhost 1 upsmaster 0db6e3de34 master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE SYSLOG
NOTIFYFLAG COMMOK SYSLOG
NOTIFYFLAG SHUTDOWN SYSLOG
NOTIFYFLAG ONBATT SYSLOG+WALL
NOTIFYFLAG LOWBATT SYSLOG+WALL
NOTIFYFLAG FSD SYSLOG+WALL
NOTIFYFLAG NOCOMM SYSLOG+WALL
NOTIFYFLAG COMMBAD SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5Вроде настроено все по уму, без ошибок.
Вот что пишет в /var/log/messages:Jul 30 10:13:15 linux-775z upsmon[2393]: Signal 15: exiting
Jul 30 10:13:15 linux-775z upsd[2389]: Client upsmaster@127.0.0.1 logged out
Jul 30 10:13:15 linux-775z upsmon[2392]: upsmon parent: read
Jul 30 10:13:15 linux-775z upsd[2389]: Signal 15: exiting
Jul 30 10:13:32 linux-775z upsd[2586]: listening on 0.0.0.0 port 3493
Jul 30 10:13:32 linux-775z upsd[2586]: Can't connect to UPS [ups] (powercom-ups): No such file or directory
Jul 30 10:13:32 linux-775z upsd[2587]: Startup successful
Jul 30 10:13:32 linux-775z upsmon[2590]: Startup successful
Jul 30 10:13:32 linux-775z upsd[2587]: Connection from 127.0.0.1
Jul 30 10:13:32 linux-775z upsd[2587]: Client upsmaster@127.0.0.1 logged into UPS [ups]
Jul 30 10:13:32 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:13:32 linux-775z upsmon[2591]: Communications with UPS ups@localhost lost
Jul 30 10:13:37 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:13:37 linux-775z upsmon[2591]: UPS ups@localhost is unavailable
Jul 30 10:13:42 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:13:47 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:13:52 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:13:57 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:02 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:07 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:12 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:17 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:22 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:27 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:32 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:37 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:42 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:47 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:52 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:14:57 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:02 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:07 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:12 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:15 linux-775z upsd[2587]: Connection from 127.0.0.1
Jul 30 10:15:15 linux-775z upsd[2587]: Client on 127.0.0.1 logged out
Jul 30 10:15:17 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:22 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:27 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:32 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:37 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:42 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:47 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:52 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:15:57 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:16:02 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:16:07 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:16:12 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:16:17 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:16:22 linux-775z upsmon[2591]: Poll UPS [ups@localhost] failed - Driver not connected
Jul 30 10:16:23 linux-775z upsmon[2591]: Signal 15: exiting
Jul 30 10:16:23 linux-775z upsd[2587]: Client upsmaster@127.0.0.1 logged out
Jul 30 10:16:23 linux-775z upsmon[2590]: upsmon parent: read
Jul 30 10:16:23 linux-775z upsd[2587]: Signal 15: exiting
Покапался еще в коде демона и заставил его выводить логи в файлы, вот что он при запуске туда пишет:# cat /tmp/nut_server
listening on 0.0.0.0 port 3493
Can't connect to UPS [ups] (powercom-ups): No such file or directory
# cat /tmp/nut_mon
UPS: ups@localhost (master) (power value 1)
Using power down flag file /etc/killpower
Выясни как всё это _должно_ работать, что, куда, к чему и зачем, будет такое понятие и легче разберёшся.
Уже есть понимание как это должно работать. Нет понимания почему драйвер в одном случае работает, а в другом нет. Такое ощущение что необходимо копаться в исходниках драйвера и собирать его из исходников, которых нигде не видно...
Кстати похожая проблема описана вот здесь:
http://forum.pcm.ru/viewtopic.php?f=10&t=682&start=15 в 8-ом сообщении в вверху.
>Уже есть понимание как это должно работать. Нет понимания почему драйвер в
>одном случае работает, а в другом нет. Такое ощущение что необходимо
>копаться в исходниках драйвера и собирать его из исходников, которых нигде
>не видно...
>
>
>Кстати похожая проблема описана вот здесь:
>http://forum.pcm.ru/viewtopic.php?f=10&t=682&start=15 в 8-ом сообщении в вверху.Исходники есть на сайте nut ну или srpm от SuSe. Но до ковыряния в коде пока наверное не стоит доходить :). А вот почитать man powercom, man upsd и man ups.conf upsd.conf стоит вдумчиво и не раз. Ну и добится работы при последовательном ручном запуске не трогая системные скрипты что представлять рабочую комбинацию.
Если коротко ту nut работает примерно следующим образом:
1.Запускается програмка (он же драйвер в твоём случае powercom) которая непосредственно общается с ИБП на понятном ему языке через последовательный порт или usb поскольку вариантов много разных то програмок-драйверов также куча плюс каждая может работать с разными вариантами одного класса устройства поэтому параметров достаточно много и по умолчанию работаю не всегда. Каждый драйвер создае сокет через который с ним общается демон upsd. Соответственно дравер должен иметь доступ к файлу устройства от UPS а upsd к сокету создаваему драйвером. Работоспособность драйвера можно проверить в ручную запустив его из командной строки в режиме отладки. Что вы когда то и делали и в консоль выдавались вполне корректные данные, делаем вывод что драйвер работает нормально. Место в котором драйве создаёт сокеты задаётся при компиляции и каждом дистрибутиве оно походу своё, но имя сокета вида <драйвер name>-<ups name>. То есть после запуска командой upsdrctl start должный появиться процессы драйверов согласно файлу конфигурации ups.conf и файлы сокетов (ну и ещё рядышком файлы вида <драйвер name>-<ups name>.pid c PID драйвера) если всё это есть то драйвера работают и готовы принимать команды.
2. Запускается upsd который в каталоге заданом при компиляции или через параметр STATEPATH в файле upsd.conf находит файлы сокетов от ups прописанных в ups.conf и открывает tcp-порт. При запуске всё пишется в логи что нашёл что не нашёл и т.д. Судя по логам в вашем случае он не нашёл файлы сокетов драйвера. Поэтому надо убедиться что после запуска драйвера сокеты есть они с правильным именем и upsd будет достаточно прав для работы с ними. Ну и убедиться что upsd ищет сокеты там где нужно при необходимости прописав параметр STATEPATH. Если upsd напишет что он успешно запустился и подключился то можно запустить upsc и upscmd для проверки.Если выше изложенное получится и выяснится в чём косяк то тогда можно после правки конфигов запускать и через штатный системный скрип. Предварительно естествено всё остановив что запустили в ручную.
Так что пока добейтесь работы связки драйвер демон в ручном режиме, что выдавались текущие параметры ups не трогая системный скрипт.
Запустил вручную драйвер:
# ./upsdrvctl start
Network UPS Tools - UPS driver controller 2.2.2
Network UPS Tools - PowerCom and similars protocol UPS driver $ Revision: 0.6 $ (2.0.5)
Все прошло успешно.Затем, нашел место где лежат сокеты (внешне формат имени как и вы написали), вот оно:
linux-775z:/var/lib/nut # ls -l
total 4
-rw-r--r-- 1 root root 5 Jul 29 15:21 powercom-ups.pid
srw-rw---- 1 root root 0 Jul 29 15:21 upsЗатем добавил в конфиг upsd.conf строчку:
STATEPATH=/var/lib/nutИ для того, чтобы наверняка не было проблем с правами запустил демона из под рута:
# upsd -u root
Network UPS Tools upsd 2.2.2
upsd.conf: invalid directive STATEPATH=/var/lib/nut
listening on 0.0.0.0 port 3493
Can't connect to UPS [ups] (powercom-ups): No such file or directory:-(
Исправляюсь :)
Подправил конфиг как сказано в мане upsd.confSTATEPATH /var/lib/nut
Запустил опять:
# upsd -u root
Network UPS Tools upsd 2.2.2
listening on 0.0.0.0 port 3493
/var/lib/nut is world readable
Can't connect to UPS [ups] (powercom-ups): No such file or directory
>[оверквотинг удален]
>0.6 $ (2.0.5)
>Все прошло успешно.
>
>Затем, нашел место где лежат сокеты (внешне формат имени как и вы
>написали), вот оно:
>
>linux-775z:/var/lib/nut # ls -l
>total 4
>-rw-r--r-- 1 root root 5 Jul 29 15:21 powercom-ups.pid
>srw-rw---- 1 root root 0 Jul 29 15:21 ups^^^^^
имя сокета не такое нет имени драйвера
>
>Затем добавил в конфиг upsd.conf строчку:
>STATEPATH=/var/lib/nut
>
>И для того, чтобы наверняка не было проблем с правами запустил демона
>из под рута:
>
># upsd -u root
>Network UPS Tools upsd 2.2.2
>upsd.conf: invalid directive STATEPATH=/var/lib/nut^^^^
зачем "=" параметр через пробел (man upsd.conf)>listening on 0.0.0.0 port 3493
>Can't connect to UPS [ups] (powercom-ups): No such file or directory^^^^^^^^^^^^^^
демон не может найти ожидаемого фала в нужном месте нужного вида в этом вся и проблема
>
>:-(посмотрите по netstat -xap какой сокет слушает процесс powercom может у SuSe както по своему nut собран, но обычно имя сокета вида <имя драйвера>-<имя ups>. Попробуте с корректным STATEPATH upsd запустить если будет ругаться на отсутствие файла и powercom действительно прослушивает /var/lib/nut/ups значит баг SuSe :(
Можно ещё вручную сылочку создать с нужным стандартным именем на сокет драйвера.
Вот это извращение....
После обработки напильником что-то вроде получилось:# ls -l
total 4
-rw-r--r-- 1 nut users 5 Jul 30 13:03 powercom-ups.pid
srw-rw---- 1 nut users 0 Jul 30 13:03 ups
linux-775z:/var/lib/nut # netstat -xap | grep powercom
unix 2 [ ACC ] STREAM LISTENING 72594 7129/powercom /var/lib/nut/ups
unix 2 [ ] DGRAM 72589 7129/powercomlinux-775z:/var/lib/nut # ln -s /var/lib/nut/ups /var/lib/nut/powercom-ups
linux-775z:/var/lib/nut # ls -l
total 4
lrwxrwxrwx 1 root root 16 Jul 30 14:35 powercom-ups -> /var/lib/nut/ups
-rw-r--r-- 1 nut users 5 Jul 30 13:03 powercom-ups.pid
srw-rw---- 1 nut users 0 Jul 30 13:03 upslinux-775z:/var/lib/nut # upsd -c stop
Network UPS Tools upsd 2.2.2linux-775z:/var/lib/nut # upsd -u root
Network UPS Tools upsd 2.2.2
listening on 0.0.0.0 port 3493
/var/lib/nut/ is world readable
Connected to UPS [ups]: powercom-upslinux-775z:/var/lib/nut # upsc ups
battery.charge: 100.0
driver.name: powercom
driver.parameter.port: /dev/ttyUSB0
driver.parameter.type: IMPERIAL
driver.version: 2.0.5
driver.version.internal: $ Revision: 0.6 $
input.frequency: 50.00
input.voltage: 226.0
input.voltage.nominal: 230
output.frequency: 50.00
output.voltage: 226.0
ups.load: 12.0
ups.mfr: PowerCom
ups.model: Unknown
ups.model.type: IMPERIAL
ups.serial: Unknown
ups.status: OL
>Вот это извращение....
>После обработки напильником что-то вроде получилось:
>Не ожидал такого ляпа от SuSe :)
Раз проблема найдена и решена можно пробовать штатный запуск службы
Вот что в итоге:# /etc/init.d/upsd start
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done# upsc ups
battery.charge: 100.0
driver.name: powercom
driver.parameter.port: /dev/ttyUSB0
driver.parameter.type: IMPERIAL
driver.version: 2.0.5
driver.version.internal: $ Revision: 0.6 $
input.frequency: 50.00
input.voltage: 228.0
input.voltage.nominal: 230
output.frequency: 50.00
output.voltage: 228.0
ups.load: 11.0
ups.mfr: PowerCom
ups.model: Unknown
ups.model.type: IMPERIAL
ups.serial: Unknown
ups.status: OL:-D
Под итожим что пришлось сделать, чтобы довести до ума эту софтину...
1. Пользователя nut добавить в группу uucp (Чтобы он мог общаться с девайсом /dev/ttyUSB0)
2. Добавить в конфиг upsd.conf опцию STATEPATH /var/lib/nut/
3. Сделать символическую ссылку - ln -s /var/lib/nut/ups /var/lib/nut/powercom-ups (из под пользователя nut)
4. Добавить демона upsd в группу usersА еще остается научить выключать компьютер при достижении низкого заряда батареи и с пользователями как-то более безопасно сделать... То ли еще будет ое ей. И кто такие софтины пишет?!
>1. Пользователя nut добавить в группу uucp (Чтобы он мог общаться с
>девайсом /dev/ttyUSB0)udev для подобного и существует и делает на автомате
>2. Добавить в конфиг upsd.conf опцию STATEPATH /var/lib/nut/ну это скажите спасибо SuSe у других таких проблем не существут upsd от дистрибутива ищет всё в правильном месте для своего дистрибутива
>3. Сделать символическую ссылку - ln -s /var/lib/nut/ups /var/lib/nut/powercom-ups (из под пользователя
>nut)Это тоже чтото SuSe перемудрил у других такого не требуется
>4. Добавить демона upsd в группу users
>Это следствие не настроености по п1. udev при подключении упса к usb должен создать устройство доступное пользователю например nut а остальное нормально пойдёт по цепочке
>А еще остается научить выключать компьютер при достижении низкого заряда батареи и
>с пользователями как-то более безопасно сделать... То ли еще будет ое
>ей. И кто такие софтины пишет?!Это занятие весьма занимательное особенно для китайских ups особенно про низкий заряд для китайского барахла лучше сразу после получения сигнала о работе от батареи, через пару минут начинать остановку системы. Не плохо бы поиграться с командами на отключение ups некоторые китайцы сами уже потом при востановлении напряжения не запускаются.
Читать man upsmon и upsshed там всё толково разжёвано и конфиги отлично прокоментированы.
С помощью nut мне даже от китайца удалось добиться пользы. Программа толковая при вдумчивом чтении сопутствующей документации и очень хорошо документирована.
>
>ну это скажите спасибо SuSe у других таких проблем не существут
>upsd от дистрибутива ищет всё в правильном месте для своего дистрибутива
>SuSE здесь не причём. Чел использовал модифицированный драйвер powercom, котьорый выложен на их форуме. Но он заточен под NUT собранный из исходников. А в сузе просто пути изменены.
Вообще из пакетов nut с APC заводится за пару минут...
Там вообще скажем под ядро 2.6.16 надо еще попрыгать с модулем cypress, ибо по usb автоматом скажем IMD 2000AP (Imperial) цепляется на usbhid. Патчишь исходники модуля, пересобираешь модуль, прыгаешь с бубном что бы появился ttyUSB0...Как я понял из форумов, либо документация на PWC плохая, либо разработчики nut положили на создателей pwc...