Configurar un SAI Belkin Active Backup en Gentoo

El SAI Active Backup 800VA de Belkin (BU308000ME) funciona perfectamente en mi Gentoo Linux, y posiblemente también puedan hacerse funcionar las versiones 600VA y 400VA, que son técnicamente equivalentes (solo cambia la potencia de la batería). Sorprendente, porque estos SAI incluyen un software propietario para Linux (WinPower) que resulta que no funciona, mientras que NUT, el software opensource que se supone que no soporta este SAI resulta que sí lo hace.

Tal vez te estés preguntando qué demonios es un SAI (si es así, seguramente es que no lo necesitas, pero en fin). Un SAI es un Sistema de Alimentación Ininterrupida. En inglés sus siglas serían UPS. Básicamente, podríamos decir que es una batería un poco sofisticada capaz de comunicarse con el ordenador por USB o por un puerto serie, para decirle por ejemplo cuánta energía tiene, e incluso darle órdenes a la máquina.

De esta forma, el ordenador ya no estaría enchufado a la red, sino al SAI, de quien se alimenta. También el monitor suele estar enchufado al SAI, y quizás también aquellos discos duros externos que consideres críticos en caso de que se vaya la luz en tu casa. El SAI, a su vez, está enchufado a la red eléctrica que usa para cargar constantemente la batería. Y también suele haber una conexión USB o serie entre el ordenador y el SAI que les permite intercambiar información.

Si la red eléctrica funciona sin problemas, el SAI no hace nada. Bueno, en realidad, sí que hace algo: modular y estabilizar la corriente eléctrica de tal forma que la alimentación al ordenador sea estable. Si hay un corte de luz, en cambio, el SAI salta inmediatamente y comienza a alimentar por su cuenta al ordenador, además de informarle de que está funcionando bajo batería. Esto le da tiempo al usuario a restablecer la energía (por ejemplo si ha saltado el diferencial de la casa). Si es un corte más serio, la energía de la batería suele dar tiempo suficiente para grabar todos los datos y cerrar todos los programas de forma ordenada. El Active Backup 800VA de Belkin, por ejemplo, me proporciona 15 valiosos minutos de autonomía en caso de fallo eléctrico, tiempo suficiente para grabar todo y resguardar todos los datos. Si el fallo eléctrico dura más tiempo que eso (o el ordenador está funcionando solo y no hay nadie en casa), cuando la batería empieza a quedarse agotada informará de ello al ordenador y se ocupará de darle una órden de apagado limpio (shutdown), con lo que la máquina cerrará todos los programas activos y después se apagará limpiamente.

Un SAI funcionando es sencillamente espectacular. Y se vuelve tanto más imprescindible cuanto más inestable sea la red eléctrica de tu casa.

Para configuar el Active Backup de Belkin, necesitamos el programa nut, que está incluido de serie en Gentoo. Pero no nos valdrá la versión estable, sino que necesitaremos la última versión en desarrollo para usar los mejores drivers. La versión 2.2.2 es estable y funciona perfectamente en mi ordenador, así que es la que te recomiendo, pero lo primero que tenemos que hacer es desenmascararla. Para ello, incluye en tu fichero /etc/portage/package.keywords la siguiente línea:

 
sys-power/nut ~86

Y ahora ya puedes instalar el software en tu Gentoo:

 
[lacofi@jeanne]$ su
password:
[root@jeanne]# emerge sys-power/nut

Para otras distribuciones, tendrás que usar la órden equivalente para instalar el software, pero asegúrate siempre de que instalas la última versión disponible. En mi caso, recomiendo la 2.2.2 o superior, aunque también podría valer la 2.2.0 pero no la 2.2.1, que a mí no me funcionaba por razones que no supe identificar.

Ahora tienes que configurar nut. Para ello tendrás que manipular varios ficheros de configuración. Pero lo primero de todo es saber qué driver nut es el correcto para tu SAI. En el caso de mi Active Backup de Belkin, el driver es el megatec_usb (ya te lo digo yo), pero para otros SAI te recomiendo que consultes la lista de fabricantes de la web de nut, aunque a veces tendrás que recurrir al "ensayo y error" o incluso suscribirte a la lista de correo de desarrolladores de nut y hablar con ellos, como hice yo. Son muy amables, y no dudarán en echarte una mano a poco que te molestes en darles datos suficientes sobre tu problema.

Vale. Pues una vez que sepamos el driver, hay que ponerlo en el fichero /etc/nut/ups.conf. En el mio, consta la siguiente información:

 
[belkin]
driver = megatec_usb
port = /dev/hiddev0
desc = "Active Battery Backup"

Los desarrolladores de nut me insistieron en que el driver megatec_usb no utiliza realmente el dispositivo /dev/hiddev0, pero aún así es bueno ponerlo, por si acaso esto cambia en un futuro. Además, hay que tener en cuenta que Gentoo no crea el dispositivo hiddev0 en /dev, sino en un subdirectorio aparte (/dev/usb), así que habrá que apuntar al sitio correcto en /etc/ups.conf o al menos manipular udev para que creen un enlace simbólico cuando enchufemos el SAI. Por ejemplo, podemos meter esta entrada en /etc/udev/rules.d/10-local.rules:

 
KERNEL=="hiddev0", NAME="usb/%k", GROUP="nut", SYMLINK+="hiddev0"

Después hay que reiniciar udev, claro.

Vale. Ahora tenemos que decirle a nut que acepte conexiones del ordenador local y rechace las demás. También podríamos decirle que acepte las de una red local concreta, pero en mi caso preferí que solo las admita de la propia máquina. Para ello, hay que poner esto en /etc/nut/upsd.conf

 
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32

ACCEPT localhost
REJECT all

Ahora hay que decirle a nut qué usuarios pueden acceder y en qué condiciones. Para ello, hay que modificar el fichero /etc/nut/upsd.user y poner algo así:

 
[root]
password = <contraseña en plano>
actions = SET
instcmds = ALL

[lacofi]
password = <contraseña en plano>
allowfrom = localhost

Ahora tenemos que decirle al sistema automático de monitorización de nut cómo va a acceder al driver. Para ello, modificamos el fichero /etc/nut/upsmon.conf y ponemos algo así, para que acceda a la batería número 1 en localhost:

 
RUN_AS_USER root
MONITOR belkin@localhost 1 lacofi <contraseña en plano> master

El fichero /etc/nut/upssched.conf no hace falta configurarlo salvo que quieras algo muy concreto y complejo, así que paso.

Bien, pues ya está. Ahora solo que iniciar o reiniciar nut:

 
[root@jeanne]# /etc/init.d/upsd restart
 * Stopping upsd ...                    	[ ok ]
 * Starting upsd ...
Network UPS Tools upsd 2.2.2-exportado
listening on 0.0.0.0 port 3493
Connected to UPS [belkin]: megatec_usb-belkin   [ ok ]

Ahora abandonamos la cuenta root y le preguntamos al SAI qué tal le va la vida:

 
[root@jeanne]# exit
[lacofi@jeanne]$ upsc belkin@localhost
battery.charge: 97.5
battery.voltage: 13.60
battery.voltage.nominal: 12.0
driver.name: megatec_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/hiddev0
driver.version: 2.2.2-exportado
driver.version.internal: 1.5.14
input.frequency: 50.1
input.frequency.nominal: 50.0
input.voltage: 228.9
input.voltage.fault: 228.9
input.voltage.maximum: 231.3
input.voltage.minimum: 225.0
input.voltage.nominal: 230.0
output.voltage: 228.9
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 43.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: 25.0
ups.type: standby

Observa la línea que dice "ups.status: OL". Significa que el UPS (SAI) está "On Line", es decir, que recibe energía de la red eléctrica. Ahora puedes probar a desenchufarlo y ver qué te dice. O incluso dejarlo desenchufado 15 o 20 minutitos y ver cómo inicia la secuencia de shutdown. Que lo disfrutes. :-)

Y un saludo a Carlos, que hizo la pregunta correcta en el momento apropiado. ;-)

Be Sociable, Share!

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.