Sei sulla pagina 1di 7

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php
Men

personal
website

Cerca nel sito

Home
Curriculum

by Google

Lavoro
Tesi e appunti
Fotovoltaico
Software

Appunti su Gentoo Linux.


UPS Riello

Insegnamento
scuole superiori
Matematica
Fisica
Informatica
Diventare Prof

Interfacciamento tra l'UPS e Linux

Informatica
Gentoo

L'UPS (Uninterruptible Power Supply o in italiano Gruppo di continuit) un


componente fondamentale per ogni computer che fa da server o che viene usato
per scopi lavorativi. Un sistema senza una corretta gestione dell'alimentazione
un sistema inaffidabile.

Windows

L'interfacciamento tra l'UPS e il sistema che alimenta oppure con un sistema


esterno di solo controllo non obbligatorio ma a dir poco fondamentale. In
caso di mancanza di alimentazione, il sistema deve essere in grado di effettuare
lo shutdown poco prima che l'UPS termini la sua autonomia.

Python

Archivio
2014
2013
2012
2011
2010
2009
2008
2007

Android
LaTeX
Sapthesis

Grafica
Ripping
Reti
Info Sito

Io sono sempre stato un felice acquirente degli UPS della Riello. In questa pagina
parler di come interfacciare l'UPS Riello (nel mio caso particolare un modello
Win Dialog) con il mio sistema Gentoo.

Contatti

In ambiente Linux esistono dei software liberi per gestire l'interfacciamento, ma


non funzionano con gli UPS della Riello che invece necessitano dei software
proprietari della Riello. L'unico software gratuito che viene fornito dalla Riello
PowerShield (versione gratuita). La versione gratuita permette di controllare un
singolo UPS ed quindi adatta per un sistema "casalingo".

Installazione di PowerShield

1 di 7

15/01/2016 16:15

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php

La prima coda da fare annotarvi da qualche parte il codice PRTK, il P/N e il S/N
riportati sulla targa sul retro del vostro UPS. Dopodich collegate l'UPS al PC
tramite cavo USB o seriale (nel mio caso USB).
Il mio Win Dialog non ha una vera e propria interfaccia USB. Internamente
funziona ancora tramite porta seriale RS232 ma quelli della Riello per
ammodernarlo, hanno messo un convertitore RS232 - USB, in particolare il
dispositivo in questione riportato dal comando lsusb come "Cypress
Semiconductor Corp. HID->COM RS232 Adapter". Pertanto il passo successivo da
fare quello di far s che il kernel di Linux riconosca tale dispositivo.
Bisogna abilitare nel kernel il supporto per i convertitori "USB Serial":
Device Drivers --->
USB support --->
<*>
USB Serial Converter support --->
<*>
USB Cypress M8 USB Serial Driver
All'interno del men "USB Serial Converter support" non abilitate niente altro.
Ricompilate il kernel con questa nuova configurazione e osservate se ora esiste il
dispositivo /dev/ttyUSB0.
Ora veniamo alla parte software. Scaricate PowerShield per Gentoo, cercate
gentoo nel sito della riello ups, sono circa 10 MB. Scaricate il manuale di
PowerShield nel caso vi serva. Decomprimete l'archivio. Comparir una cartella
chiamata upsmon-pkg. L'installazione consiste nel copiare la cartella upsmon-pkg
da qualche parte. Di solito dentro /opt:
mv upsmon-pkg /opt/.
cd /opt
mv upsmon-pkg upsmon
I tre programmi principali di questo pacchetto sono upsetup, upsagent e
upsview. Upsagent il server che comunica con l'UPS. Upsetup un programma
che aiuta nella creazione del file di configurazione di upsagent e infine upsview
un client per poter interrogare e mostrare le informazioni tratte da upsagent. Di
questi programmi esistono le versioni eseguibili e anche le versioni Java. Le
versioni eseguibili sono solo testuali mentre le versioni Java hanno l'interfaccia
grafica. Usate quelli che di volta in volta pi vi piacciono. Io preferisco
l'interfaccia testuale.

2 di 7

15/01/2016 16:15

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php

Configurazione di upsagent con upsetup


La configurazione di upsagent si trova nel file upsmon.ini e, come gi detto, pu
essere sia generato a mano, sia automaticamente tramite il programma upsetup.
Io parler solo dell'uso di upsetup.
Lanciare upsetup da root da riga di comando (pag. 38 del manuale) e inserire il
PRTK. Questo cosa compare a schermo: ogni voce corrisponde a una categoria
di configurazione.
1
2
3
4
5

General parameters
UPS configuration
Messages configuration
Schedule
Jobs configuration

Entrate in "General parameters". Scegliete il System name, il System location e il


System contact. Scegliete la lingua. Scegliete se loggare gli eventi (verranno
salvati nel file event.log). Scegliete se salvare i dati di rete e con che frequenza
(verranno salvati nel file data_00.log). La tipica riga del file di dati :
Data
23.10.2011

Vin:
Vba:
%ba:
tb:
%W:

Ora
13:30:17

UPS
UPS

Vin
235

?
0

?
0

Vba
13

%ba
0

tb
0

%W
10

?
0

?
0

tensione d'ingresso
tensione batteria
capacit residua in % della batteria
tempo in minuti di autonomia residua
potenza erogata dall'UPS in percentuale rispetto al
carico nominale massimo (800 VA nel mio caso)

Infine scegliere se attivare i servizi di rete per controllare l'UPS da remoto. Con
"Server" si intende la possibilit di connettersi all'upsagent con un upsview
installato in un altro pc della rete, tramite la porta UDP specificata. "Ignore
Remote UPS commands" permette di ignorare i comandi provenienti da upsview
remoti. "HTTP enabled" produce invece dei report sotto forma di pagine HTML.
Queste pagine possono essere poi semplicemente aperte da remoto o servite
tramite un server HTTP se presente sullo stesso pc dove installato upsagent.

3 di 7

15/01/2016 16:15

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php

"HTTP path" il percorso dove salvare questi report HTML, utile se appunto
volete salvarle in un posto comodo per poterle servire come sito web con un
server HTTP. Infine potete specificare un password per le connessioni remote.
L'update frequency invece la frequenza con cui creare le pagine HTML.
Ora passate alla "UPS configuration". Usando la versione gratuita di PowerShield
potete configurare solo un UPS. Scegliete il nome dell'UPS, immettete il codice
PRTK e il S/N. Come tipo di connessione scegliete "locale" e nel campo
"Connection serial port" al posto di COM1 scrivete il dispositivo che rappresenta
il vostro UPS, solitamente /dev/ttyUSB0. In "address" lasciate 00. Regolate poi il
"System shutdown", cio lo spegnimento del pc collegato all'UPS. Si pu
scegliere un tempo massimo senza rete dopo il quale spegnere il sistema oppure
si pu scegliere di spegnerlo quando l'autonomia dell'UPS scende sotto una certa
soglia. Un criterio non esclude ovviamente l'altro. L'"UPS shutdown" invece va
tenuto solitamente disabilitato perch utile solo nel caso in cui l'upsagent
controlli in maniera remota un UPS. A questo punto pu scegliere di spegnere il
sistema remoto e successivamente l'UPS. Se l'upsagent gira sullo stesso sistema
alimentato dall'UPS, non ha senso spegnere l'UPS.
Passiamo a "Message configuration". Qui non c' nulla da fare. Lasciate tutto
disabilitato a meno che il vostro sistema non abbia la possibilit di inviare
messaggi tramite rete GSM, ecc...
La sezione "Schedule" costituta da operazioni pianificate di test degli UPS.
Come spegnimento, test delle batterie ecc... Solitamente inutile per un sistema
casalingo. Lasciare tutto disabilitato.
Infine la sezione "Jobs configuration". In questa sezione potrete specificare cosa
dovr fare upsagent per ogni evento. Per esempio nel caso di mancanza di
alimentazione deve essere inviata una mail a un certo indirizzo con un certo testo
e poi deve essere registrato nel log l'evento. Oppure nel caso di shutdown
imminente del sistema si potrebbe voler eseguire dei comandi per fermare dei
servizi che stanno girando sul sistema che deve essere spento, ecc...
Vediamo come configurare upsagent per l'invio di email. Mentre su Windows le
cose sono molto facili, su Linux le varie azioni sono controllate da alcuni script,
con estensione .src. Lo script ups_eml.scr serve per mandare le mail. L'invio dei
messaggi funziona cos: prima di tutto dovete configurare con upsetup quali
azioni comportano l'invio di email. Dopodich upsagent, nel momento che
accadr qualcosa per cui deve mandare una mail, scriver il messaggio da inviare
nel file ups.msg e poi lancer lo script ups_eml.scr dando come primo e unico

4 di 7

15/01/2016 16:15

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php

argomento il file ups.msg .


Abbiamo quindi bisogno che lo script ups_eml.scr faccia quello che deve. Lo
script di default non va bene. Modifichiamolo cos:
mail -r destinatario@email.com -s 'UPS communication' -f $1
Il comando mail uno script molto semplice fatto da me e basato sul comando
msmtp . Trovate tutto quanto spiegato nella sezione apposita: Inviare mail con
msmtp.
Quando avete finito, uscite da upsetup. Vi verr chiesto se salvare il file di
configurazione. Scegliete di s.Il file cos generato, upsmon.ini, verr poi usato
da upsagent (se upsagent gi in funzione dovete farlo ripartire se volete che
carichi le nuovi impostazioni).

Eseguire upsagent
Upsagent l'eseguibile del server, cio del programma che si occupa di parlare
con l'UPS, riportandone le risposte. Va ovviamente lanciato come servizio di
sistema, cio deve essere sempre in funzione. Non esistono opzioni come stop e
start che invece ci sono su Windows. Per avviare ogni volta all'avvio upsagent va
usato il gestore dei servizi di sistema. Lo script da richiamare con il gestore dei
servizi esiste gi e si chiama upsmon ma purtroppo per una serie di motivi non
funziona su Gentoo.
------------------------------------------------------DA CANCELLARE
upsmon start fa partire il server upsagent upsmon stop ferma il server upsagent
Per funzionare ha bisogno di un sitema Linux Standard Base (LSB) compliant.
Purtroppo Gentoo non rispetta lo standard LSB :( e infatti non ha lo script
necessario /etc/rc.status che viene richiesto da upsmon. Potete scaricarlo da
questo sito: http://trac.turbogears.org/ticket/172 Attenti a come lo scaricate.
Controllate gli a capo alla Windows o alla Linux. Mettetelo in /etc/rc.status. Non
basta per! Servono anche dei comandi per far partire i demoni, startproc,
killproc e cos via. In Gentoo non ci sono perch non LSB compliant. Vanno
installati:

5 di 7

15/01/2016 16:15

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php

emerge -pDv killproc


Infine tanto per gradire c' anche un errore in quello script! Quando viene
chiamato killproc viene chiamato con l'opzione -p per il pid anzich l'opzione -f.
O gli autori hanno usato una versione differente di killproc oppure hanno confuso
-f con -p pensando al fatto che la p significasse pid. Cambiate quindi -p in -f
quando viene chiamato killproc. Purtroppo anche cos c' qualcosa che non va. Il
comando startproc dovrebbe generare in automatico il file .pid e invece non lo
fa! Cos quando stoppiamo con upsmon stop, lui ci d errore perch non trova
/var/run/upsagent.pid. Possiamo forzare a mano il pid mettendolo davanti a
startproc: startproc ... -f /var/run/upsagent.pid. Purtroppo anche cos non
va!!!!!!!! Porc....! Certo la cosa migliore sarebbe uno script serio per Gentoo!
Penso che scriver alla Riello-UPS in proposito.
------------------------------------------------------La cosa migliore usare il servizio local. Create il file 10_upsagent.start e
10_upsagent.stop nella directory /etc/local.d e rendeteli entrambi eseguibili. Nel
primo mettere /opt/upsmon/upsagent e nel secondo mettere killall upsagent .
Ricordarsi anche di mettere alla fine di entrambi i file la parola true . Questo
serve a far s che se anche qualche comando va in errore, comunque lo script
local pu partire e fermarsi. Basta pensare a quanto vogliamo fermare il servizio
local ma upsagent gi stato killato per qualche altro motivo. killall dir che non
c' nessun servizio upsagent e dar errore e cos lo script local non si fermer!

Comunicare con l'UPS: upsview


Per controllare lo stato dell'UPS, sia remoto che locale, bisogna interrogare il
server upsagent collegato a quell'UPS. A questo pensa upsview. Lanciarlo e farlo
funzionare banale. Quando si esce da upsview ovviamente upsagent continua a
funzionare.

6 di 7

15/01/2016 16:15

Francesco Biccari Website

http://biccari.altervista.org/c/informatica/gentoo/rielloups.php

Ultimo Aggiornamento: 2011-10-31


Per contattarmi: bicc ari@altervista.org
Any sc reen resolution, Valid HTML5 (served as text/html), Valid CSS2
Eccetto dove diversamente spec ific ato, i c ontenuti di questo sito
sono rilasciati sotto una Lic enza Creative Commons (BY)

7 di 7

15/01/2016 16:15