Jump to content
XPEnology Community

[SOLVED]Enable UPS not recognized


totalnas

Recommended Posts

Hi,

 

The problem: You have attached an UPS to your XPEnology server but the web interface shows "no hardware found" in the UPS window.

 

The solution: The support for UPS hardware is enabled in the Syno using the Linux package NUT (http://www.networkupstools.org/). If you can detect your UPS with a recent distribution of Linux (try with an Ubuntu LiveCD) you CAN use your UPS with XPEnology.

 

1) Check that the kernel has access to your UPS. For USB devices, execute "cat /proc/bus/usb/devices" and search for the VID:PID values of your device (in my case "P: Vendor=0001 ProdID=0000 Rev= 1.00", so "S: Product=STD UPS MON V1.0").

 

2) Check if the NUT driver can speak with your device (you can copy the info detected by Ubuntu when you try the Linux support with the LiveCD distribution). My UPS uses the "blazer_usb" driver, so I check it with command "blazer_usb -u root -DDD -a ups" after editing the file "/usr/syno/etc/ups/ups.conf" and set the correct values for entry [ups]. Example:

 

[ups]
       driver = blazer_usb
       langid_fix = 0x409
       port = auto
       vendorid = 0001
       productid = 0000
       desc = "BLAZER_USB LANGID_FIX"
       #community = name
       #snmp_version = v2c

 

If this check fails, you need to edit the "ups.conf" file. If the check goes right you only need to enable it in the Syno GUI.

 

3) How to enable the UPS in the Syno GUI? This is the trick: execute command "/usr/syno/bin/ups.sh start-all". This command starts all scripts related to UPS using your manual configuration of "ups.conf". Afer that you can show that the UPS monitor starts, and now you can show that in the GUI the UPS is detected.

 

Good look! :mrgreen:

Link to comment
Share on other sites

UPDATE: (based partially on info from http://forum.synology.com/enu/viewtopic.php?f=39&t=17091)

 

Problem:

After rebooting your UPS ins't detected.

 

How to fix it:

Put a startup script that call to "ups.sh start-all".

Here an example of "/usr/syno/etc/rc.d/S12UPS.sh" :

 

#!/bin/sh

case $1 in
start)
       /usr/syno/bin/ups.sh start-all
       ;;
stop)
       /usr/syno/bin/ups.sh stop
       ;;
*)
       echo "Usage: $0 [start|stop]"
       ;;
esac

 

Moreover the file "/usr/syno/bin/ups.sh" has errors !!! (please, someone can report this to the Synoly team?):

One error is in the "stop" command. It don't work because the IF SENTENCE is erroneous! Here the correct code:

 

stop)
       # wait 1 sec to prevent instability leading to restart
       sleep 1
       IsDevAlive
       if [ 1 -eq $? ]; then
               StopUps log
               logger -p err -- "$0 $1 invoked."
               echo "Stop UPS"
               echo "$0 $1 invoked."
               /usr/syno/bin/synosetkeyvalue /etc/synoinfo.conf upsmaster no
       fi
       ;;

 

You need to execute the commands if "isDevAlive" is TRUE !!! The original code say " if [ 0 -eq $? ]; then"

 

Please, fix this!

Link to comment
Share on other sites

×
×
  • Create New...