96598, Southpole
info@raskitoma.com

APCUPSD y APC SmartUPS en Linux

Created with Sketch.

apc apcsmart ups apcupsd

APCUPSD es un daemon que se usa en linux para hacer funcionar un APC SmartUPS. La finalidad es poder proteger y apagar adecuadamente el o los equipos e incluso compartirlo en nuestra red para cuestiones de monitoreo. En ocasiones para sus interfaces de conexión USB utiliza distintos modelos(proveedores) y es necesario hacer alguno que otro ajuste para lograr que esto funcione correctamente.

Esta guía es básicamente para aquellos que tengan, como yo, un UPS APC que use la interfaz UPS a Serial. Este es un tipo de interfaz que hace que el USB del UPS sea detectado como un puerto de tipo SERIAL.

El problema

Si por alguna razón, nuestro UPS no es detectado por APCUPSD es por el tipo de driver que utiliza Linux para configurar la conexión. Una forma sencilla de verificar el dispositivo es utilizando el comando dmesg antes de conectar el dispositivo y ejecutarlo nuevamente una vez que lo conectemos, mostrándonos el o los cambios. Usualmente el dispositivo será uno con el nombre /dev/tty***0.

Si el UPS, no detectado por APCUPSD, se configura en /dev/ttyAMC0 (o cualquier otro número, depende de cuantos tengamos conectados) significa que el UPS se configuró usando los drivers CDC (es el estándar), por lo tanto tendrémos que cambiar esos drivers por los de EXAR.

La solución

Para arreglar esto, debemos ir al sitio de EXAR y descargar la versión correcta (depende del modelo). Si no sabes cual modelo tienes, basta con conectar el UPS a Windows y en el Panel de Dispositivos podremos sacar toda la información relacionada.

A continuación tendremos que realizar las siguientes instrucciones para el arreglo:

# Primero, deshabilitar cdc # <= sino este cargará y no servirá de nada!
rmmod cdc-acm
# Luego, cargamos el driver correcto... (este fue mi caso/mi modelo)
insmod xr_usb_serial_common.ko

Una vez realizado esto, la configuración en acpupsd.conf (que está en la carpeta del config) debería ser la siguiente:

UPSCABLE smart
UPSTYPE apcsmart
DEVICE /dev/ttyXRUSB0 # <- O el que tengan

Luego reinician el servicio apcupsd y para confirmar que todo está bien, ejecutan el siguiente comando: apcaccess. Si la respuesta es la siguiente o parecida, todo estará OK:

APC      : 001,048,1109
DATE     : 2021-02-26 20:30:17 +0000
HOSTNAME : ##########
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : RaskitomaUPS
CABLE    : Custom Cable Smart
DRIVER   : APC Smart UPS (any)
UPSMODE  : Stand Alone
STARTTIME: 2021-02-26 20:27:08 +0000
MODEL    : SRV 2K A
STATUS   : ONLINE
LINEV    : 109.9 Volts
LOADPCT  : 32.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 18.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 5 Minutes
MAXTIME  : 0 Seconds
MAXLINEV : 111.1 Volts
MINLINEV : 106.8 Volts
OUTPUTV  : 119.8 Volts
DWAKE    : 0 Seconds
DSHUTD   : 180 Seconds
DLOWBATT : 2 Minutes
LOTRANS  : 96.0 Volts
HITRANS  : 144.0 Volts
RETPCT   : 0.0 Percent
ITEMP    : 47.6 C
ALARMDEL : 5 Seconds
BATTV    : 53.8 Volts
LINEFREQ : 59.9 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : 336
STATFLAG : 0x05000008
REG1     : 0x00
REG3     : 0x00
MANDATE  : 07/04/19
SERIALNO : ##########
BATTDATE : 07/04/19
NOMOUTV  : 120 Volts
NOMBATTV : 48.0 Volts
EXTBATTS : 1
FIRMWARE : 436.09BT.I
END APC  : 2021-02-26 20:30:51 +0000

Luego de hacer eso, tendremos APCUPSD y APC SmartUPS funcionando correctamente y lo podremos conectar, con la correcta configuración del deamon en red, a nuestros servicios de monitoreo/alerta.

Más info la podrán encontrar detallada en mi wiki (aquí), donde explico cómo hacer lo mismo, pero en un container y dentro de TrueNAS SCALE.

 

Advertisements
X
wpChatIcon
A %d blogueros les gusta esto: