Assieme ad un gruppo di amici Radioamatori sperimentatori, frequentatori del canale Telegram PacketRadio, già diverso tempo fa avevamo deciso di installare assieme dei nodi packet utilizzando le applicazioni  BPQ32 e poi JNOS su dei Raspberry Pi, presso le nostre stazioni radio.

NOTA: L’installazione e la configurazione del nodo BPQ32 effettuata sul mio Raspberry Pi 2 B+, è stata descritta in questo articolo del blog.

Questa guida è stata scritta da Francesco Muciaccia IU4DTL, con cui ho effettuato l’installazione, la configurazione e le prime prove con DxSpider, programma per il DXCluster. Successivamente, seguendo le guide indicate di seguito lo abbiamo integrato al mio nodo BPQ32, installato sul mio Raspberry Pi 2 B+.

In rete potete trovare anche questa ottima guida di Iain Philipps G0RDI, Ian Maude G0VGS, e Charlie Carroll K1XX, conentente una procedura leggermente diversa da quella proposta in questo articolo.

A tale proposito io avevo consigliato di seguire questa ottima guida reperibile sul sito di SV5FRI, dalla quale poi siamo passati a seguire la guida di John Wiseman per l’integrazione con BPQ, che trovate a questo indirizzo.  Di questo ultimo documento, Francesco IU4DTL ha fatto la seguente traduzione, inserendo alcune indicazioni personali date dall’esperienza fatta, e togliendo le informazioni non rilevanti per il nostro tipo di installazione.
La traduzione è stata effettuata per meglio aiutare gli OM italiani che si avvicinano a questo mondo radioamatoriale informatico. Il testo in inglese è bello, ma in italiano e meglio! 🙂

La presente guida è valida per tutte le distribuzioni di tipo Debian based.

A tutti questi dati, ho aggiunto delle informazioni provenienti dagli appunti di altri Radioamatori trovati in rete, che hanno approfondito la configurazione di DXSpider.

Qui di seguito trovate la guida che ho realizzato durante l’installazione di DXSpider sul Raspberry Pi; potete inoltre trovare maggiori informazioni, visitando la pagina specifica sul wiki di DX CLUSTER.

 

 

Accesso al Raspberry Pi

Ammettendo che il vostro Raspberry Pi abbia come indirizzo 192.168.1.122, accedeteci via SSH, con il comando da terminale:

ssh pi@192.168.1.122      inserendo la password, alla richiesta.

 

Installazione di DX Cluster

1. Come prima cosa cambiate l’utente con il quale eseguiremo l’installazione, passando da ‘pi’ a ‘root’ (amministratore), con il comando:
# sudo su  seguito dalla relativa password;

2. Create un nuovo utente con nome “sysop” e impostate la sua password
# adduser sysop
# passwd sysop           e inserite la password desiderata;

3. Installate le librerie perl necessarie
# apt-get update
# apt-get install libtimedate-perl libnet-telnet-perl libcurses-perl libdigest-sha-perl libdata-dumper-simple-perl

4. Ora scaricate e decomprimete la distribuzione software DXSpider, e impostate i collegamenti simbolici e i permessi di gruppo; per poi copiare il tarball in /home/sysop. Procedete come segue:
# cd ~ sysop
# wget http://www.dxcluster.org/download/CVSlatest.tgz
# tar xvfz CVSlatest.tgz
# ln -s ~ sysop/spider /spider
# groupadd -g 251 spider

Se non avete a disposizione il comando “groupadd“, aggiungete semplicemente una riga in /etc/group , tramite un editor (nano).
# nano /etc/group

Dovete anche aggiungere altri utenti al gruppo, incluso il vostro nominativo (che verrà usato come alias… Francesco non l’ha fatto e ha potuto notare che funziona ugualmente), e l’utente root.
La linea finita all’interno del file in /etc/group dovrebbe essere simile a questa:
spider:x:251:sysop,iv3bvk,root

5. Il passaggio successivo consisterà nell’impostare le autorizzazioni sull’albero e sui file della directory ‘spider’
# chown -R spider sysop.spider
# find . -type d -exec chmod 2775 {} \;
# find . -type f -exec chmod 775 {} \;

6. Ora accedete in SSH al Raspberry (che avrà mantenuto lo stesso IP) tramite l’utente “sysop” che avete creato in precedenza.

ssh sysop@192.168.1.122      inserendo la password, alla richiesta.

Una volta effettuato l’accesso, immetterete i seguenti comandi:
# su -l sysop
$ cd /spider
$ mkdir local
$ mkdir local_cmd
$ cp perl /DXVars.pm.issue local/DXVars.pm
$ cd local
$ nano DXVars.pm

Utilizzando il file DXVars.pm distribuito come modello di riferimento, impostate il nominativo del cluster, il nominativo del sysop e le altre vostre informazioni utente, in base al proprio ambiente software.

$mycall = “IV3BVK-5”;
$myalias = “IV3BVK”;
$myemail = “iv3bvk\@gmail.com”;
$mybbsaddr = “IV3BVK\@IV3BVK.FVG.ITA.EU”;

ATTENZIONE: Ricordatevi che il nominativo inserito sarà unico ai fini della creazione degli script di connessione con gli altri server della rete; per intenderci se dichiarate IV3BVK-5 e avete bisogno di cambiare un giorno il vostro SSID, sarà necessario aggiornare tutti gli script di connessione (che vedremo più avanti) degli altri corrispondenti o crearne di nuovi; pena il mancato funzionamento corretto del server DXspider.

 

7. Copia del file Listeners.pm nella directory  local.
$ cp /spider/perl/Listeners.pm /spider/local/Listeners.pm
$ cd /spider/local/
$ nano Listeners.pm

Rimuovete il carattere di commento “#” solo dalla linea riguardante la porta telnet e aggiungete eventualmente delle altre porte, a  secondo della propria necessità.

@listen =
([“0.0.0.0”, 7300],
);

8. Ora digitate il seguente comando, che andrà a creare in automatico il file utente di base con voi come sysop.
$ cd ../perl
$ ./create_sysop.pl

9. Avviate “a mano” il cluster, per la prima volta, con il comando:
$ cd ../perl
$ ./cluster.pl

10. Attraverso un’altra console SSH di sistema, separata da quella in uso, accedete al Raspberry come sysop (vedi sopra), e digitate il comando:
$ /spider/perl/console.pl

Vedrete visualizzata la console di DXcluster, con il messaggio di benvenuto e la linea di comando cluster.

11. Create ora il file da utilizzare per lo script di connessione, e utilizzate l’editor nano per inserire i seguenti dati.
Lo script di connessione dovrebbe essere simile a questo di esempio, supponendo che il nodo convenzionato sia iu4dtl-6. Creiamo ed editiamo il file, con i seguenti comandi:
$ touch /spider/connect/iu4dtl-6
$ nano /spider/connect/iu4dtl-6

Lo script di connessione dovrà essere così digitato:

timeout 180
connect telnet iu4dtl.ddns.net 7300
‘login’ ‘iv3bvk-5’
client iu4dtl-6 telnet

Inserito il testo sopra descritto e salvate le modifiche, uscite dall’editor.
Rendete eseguibile il file e assegnategli i permessi corretti.
$ chmod 775 /spider/connect/iu4dtl-6

 

Configurazione del nodo

12. Per configurare il nodo è necessario impostare correttamente la tipologia di nodo, per il nodo convenzionato che dovremo utilizzare. Avviare la consolle con con il comando:

$ /spider/perl/console.pl

12.a Per la connessione a un nodo DXSpider, una volta connessi alla consolle di DXspider,  utilizzare il comando set/spider

——

IV3BVK de IV3BVK-5 14-Mar-2020 2035Z dxspider > set/spider iu4dtl-6

 

12.b Per la connessione a un nodo ARCluster utilizzare il comando:
——
IV3BVK de IV3BVK-5 14-Mar-2020 2035Z dxspider > set/arcluster <nodo_arcluster>

13. Per avviare una connessione al nuovo partner del nodo adiacente prescelto, nel nostro caso digiterete:
——

connect iu4dtl-6

Uscite dalla console, inviando il comando   q  .

 

IMPORTANTE: Si raccomanda di concordare preventivamente le connessioni con i colleghi OM con i quali volete condividere il servizio.
Per tutte le altre opzioni,  si rimanda al manuale di amministrazione di DXSpider 1.51 o al suo manuale utente.
È necessario implementare una regola cron, affinché vengano richiamati periodicamente gli script “connect” necessari alla connessione automaticamente dei nodi.

Esempio: il vostro nodo partner è: iu4dtl-6
$ touch /spider/local_cmd/crontab
$ nano /spider/local_cmd/crontab

la riga va scritta in questo modo:
# Check every 10 minutes to see if iu4dtl-6 is connected and if not
# start a connect job
#
0,10,20,30,40,50 * * * * start_connect(‘iu4dtl-6’) unless connected(‘iu4dtl-6’)

Rendere eseguibile il file e assegnategli i permessi corretti, con il comando:
chmod 775 /spider/local_cmd/crontab

 

 

Manutenzione programmata dei log 

DXSpider scrive giornalmente una grande quantità di dati sul disco (SD), e questi devo venir purgati regolarmente, per evitare l’avviso di disco pieno e il blocco del sistema. Grazie ai files di DO7PSL.

Per manutenzionare i log degli spots DX, debug e log del sistema, digitare i seguenti comandi e inserire il codice sotto riportato.

touch /etc/cron.daily/spider

nano /etc/cron.daily/spider

Copiare ed incollare il seguente codice nel file appena creato.

#!/bin/sh
# We need to delete old files.
spiderdir=”/spider/data/spots/2021
if [ -n “$spiderdir” ] && [ -d “$spiderdir” ]; then
# only keep three days’ depth of these
find “$spiderdir” -type f -mtime +3 -exec rm {} \;
fi
spiderdir=”/spider/data/debug/2021
if [ -n “$spiderdir” ] && [ -d “$spiderdir” ]; then
# only keep a couple of day’s depth of these
find “$spiderdir” -type f -mtime +2 -exec rm {} \;
fi
spiderdir=”/spider/data/log/2021
if [ -n “$spiderdir” ] && [ -d “$spiderdir” ]; then
# only keep a week’s depth of these
find “$spiderdir” -type f -mtime +7 -exec rm {} \;
fi

Ctrl X per uscire e salvare il file.

Rendere il file eseguibile, con il seguente comando:

chmod a+x /etc/cron.daily/spider

 

Come fare per effettuare la la manutenzione giornaliera del log del server. Grazie a DO7PSL.

touch /etc/cron.weekly/clear_log.sh

nano /etc/cron.weekly/clear_log.sh

Copiare ed incollare il seguente codice nel file appena creato.

#!/bin/sh
# We need to delete old files.
logdir=”/var/log”
rm $logdir/*.gz

Ctrl X per uscire e salvare il file.

Rendere il file eseguibile, con il seguente comando:

chmod a+x /etc/cron.weekly/clear_log.sh

Ora sarà necessario riavviare il Raspberry Pi per verificare se i file creati  effettueranno il loro lavoro. Al prompt del terminal, scrivete:

shutdown –r now

 

 

Avvio automatizzato dei servizi

In aggiunta a quanto fin qui esposto, esistono due possibilità di avvio del server: come applicazione tramite script di avvio in /etc/init.d oppure come servizio, tramite inetd.

Prendete in considerazione la seconda opzione, in quanto propedeutica all’integrazione con il sistema BPQ32, al quale andremo poi a connettere DXspider.

La prima cosa da fare, è installare il pacchetto openbsd-inetd, con i seguenti comandi:
$ apt update
$ apt install openbsd-inetd

Una volta completata l’installazione, sarà necessario aggiungere la seguente riga nel file /etc/services, con il comando:

nano /etc/services

spdlogin 8000/tcp                                     # spider anonymous login port

 

Successivamente, inserite la seguente riga nel file /etc/inetd.conf, con il comando:

nano /etc/inetd.conf

spdlogin stream tcp nowait root /usr/sbin/tcpd /spider/src/client login telnet

 

Avvio automatizzato del DXSpider

Per fare in modo che il servizio del cluster si avvii ad ogni riaccensione del Raspberry Pi, ho preferito utilizzare questa soluzione.
Editare il file di configuarazione /etc/rc.local , con il seguente comando:

nano /etc/rc.local

alla fine del file, prima dell’istruzione exit 0, editare queste righe di comando:

# Avvio del Cluster DXSpider
sudo /spider/perl/cluster.pl

 

Fatto ciò, si consiglia di riavviare subito il Raspberry Pi, in modo da accertarsi che tutta la configurazione venga ricaricata con successo. Fatelo con il comando da terminale:

reboot

 

 

Configurazione di BPQ32

A questo punto abbiamo il server Cluster configurato e funzionante e possiamo dedicarci alla configurazione di BPQ32. LinBPQ include un’interfaccia dell’applicazione, che consente le connessioni ai client TCP in esecuzione sullo stesso computer.
Questa può essere utilizzata per connettersi da LinBPQ a DXSpider. Per fare ciò, è necessario configurare sia LinBPQ che il sistema operativo Linux.

 

Configurazione di LinBPQ

È necessario destinare una porta TCP per il collegamento allo spider, configurandola nel file bpq32.cfg . Potete utilizzarne una a piacere, che non sia però utilizzata da altri programmi in esecuzione.
In questo esempio, utilizziamo la porta TCP 63000.

All’interno del file di configurazione di BPQ32, aggiungete il comando seguente nella sezione di configurazione della porta Telnet di BPQ32 (di solito è la porta telnet è la 2).

CMDPORT 63000;

Aggiungete una riga APPLICATION in fondo al file, da destinare al collegamento con il DXspieder. Presupponendo che la vostra porta Telnet sia la porta 2, e la applicazione sia la quinta in elenco.

APPLICATION 5,SPIDER,C 2 HOST 0

È sempre possibile aggiungere i soliti parametri di nominativo, alias e qualità, se si desidera che lo spider sia accessibile da altri nodi della rete.

 

Configurazione Linux

Aggiungete una linea di istruzione ai file  /etc/services e /etc/inetd.conf per il servizio spider.

nano /etc/services

# Servizi locali
bpqspider 63000/tcp # BPQ su Spider Link

 

nano /etc/inetd.conf

bpqspider stream tcp nowait sysop /spider/src/client client login ax25

 

Riavviate il servizio inetd, con il comando:

sudo killall -1 inetd

 

Ora la configurazione è terminata, il sistema è attivo e funzionante!
Connettendo il nodo BPQ32 via Telnet avremo ora a disposizione l’opzione SPIDER, che ci connetterà automaticamente al nostro server DXspider.

Nel caso in cui la connessione non dovesse funzionare, verificate di aver associato correttamente il numero corretto della porta telnet, nella riga APPLICATION.

 

 

Effettuare il backup della SD

Per effettuare il backup del disco SD del RPi, operare in questo modo:

  1. Inserire una memoria USB (almeno 8 GB) nella porta USB del RP;
  2. Effettuare il login al RPi attraverso l’applicazione VNC;
  3. Selezionare il pulsante Raspberry nel menu di VNC;
  4. Selezionare il menu Accessori;
  5. Selezionare la funzione SD Card Copier;
  6. Selezionate i vari parametri ed effettuate la copia di backup selezionando Start.

Per coloro che non hanno pratica nell’installazione del server/client VNC sul RPi, vi invito a leggere questo articolo.

Per gli utenti Linux più smaliziati, li invito a leggere le informazioni contenute in questo articolo.

 

 

Note e informazioni importanti

Tenete presente che per le connessioni da e per gli altri server, vanno aperte le porte TCP 7300 e 8000, verso il Raspberry. Nel caso utilizziate porte di connessione diverse da queste, ricordate di concordarle preventivamente con gli altri sysop con cui vi connettete, altrimenti il sistema non potrà funzionare.

Ringrazio per lo spunto le informazioni date da SV5FRI e G8BPQ, e Francesco Muciaccia – IU4DTL per aver effettuato le varie prove e i test di funzionamento ‘sul campo’, assieme a me.

’73 de Paolo IV3BVK (k1BVK)

 

Grazie per aver visitato il mio blog, lasciate un vostro commento a questo post...