Alcuni giorni fa, continuando i test della versione americana del pi-star (WPSD), che tra l’altro è stata ulteriormente aggiornata nella parte dedicata al nodo hotspot multi protocollo pi-star, assieme ai miei due buoni amici radioamatori Antonio IZ0MXY e Antonio IU5JAE si è pensato a mettere mano e risolvere il problema di funzionamento del servizio YSFGateway presente negli hotspot pistar (versione americana ed inglese).
Tutte le prove di funzionamento descritte di seguito sono state effettuate inizialmente sul Raspberry Pi modello Pi 0 2 W multi -core, molto performante e veloce, con hotspot pistar americano.
Una volta constatato il buon funzionamento della patch, lo stesso servizio è stato aggiornato a mano anche su gli hotspot pistar che usano RPi 0 W e RPi 3 B+ , funzionanti con la versione hotspot pistar inglese.
Se prevedete di utilizzare la versione americana del software su un Pi Zero single-core di prima generazione, o con una versione hardware molto vecchia, preparatevi ad utilizzare questa versione software in modo terribilmente lento.
Il software del pistar americano è stato appositamente creato per essere utilizzato con dell’hardware moderno, con una CPU multi-core, come ad esempio quella di Un Pi 0 2 W o superiore.
NOTA: Dall’applicazione delle prime versioni della patch del servizio in oggetto, abbiamo potuto constatare che la versione pistar inglese utilizza un servizio non identico a quello scritto originariamente da Jonathan G4KLX. Per questo motivo eravamo costretti a realizzare una “patch ad hoc” per risolvere il problema in quel tipo di hotspot!
Premessa e spiegazione del BUG in modalità YSF
Sia con la versione pi-star dell’hotspot americano che con la precedente versione inglese, prima di questa patch si continuava ad avere lo stesso errore di funzionamento ed interruzione d’uso in modalità YSF .
IL BUG: Quando si utilizza l’hotspot in modalità YSF, inviando via radio un numero di una room YSF non esistente, il servizio YSF dell’hotspot si blocca immediatamente, per poi riavviarsi automaticamente dopo 5 – 7 minuti, tramite l’intervento del servizio Whatchdog interno.
Perché accade? Nell’hotspot, ricevendo un codice non corrispondente ad una delle room YSF esistenti e conosciute, il servizio YSFGateway ha un errore di fragmentation fault , con conseguente blocco temporaneo del servizio YSFGateway interno del pistar, che esce con errore e non fa più funzionare la modalità YSF.
Già agli inizi dell’anno 2020, (assieme all’amico sperimentatore Antonio IZ0MXY) dopo diverse prove effettuate e controllando più volte nei log YSF quanto accade quando si opera in questo modo, ci accorgevamo di questo bug di funzionamento.
Il 22 febbraio 2020 ambedue abbiamo descritto e segnalato il problema sul forum pistar.uk, come potrete leggere di seguito.
La nostra segnalazione del bug sul forum pistar.uk
Leggete i due seguenti post riguardanti l’argomento, scritti da noi sul forum inglese del pistar:
BUG: YSF repeater blocked for a long time if wrong code is sent e anche YSF service not started warning;
Ad oggi, data di questo articolo, non abbiamo MAI ricevuto risposta da nessuno degli amministratori e/o Radioamatori responsabili del corretto funzionamento del codice presente all’interno dell’hotspot pistar inglese.
Questo BUG è presente da molti anni nella totalità dei sistemi radio YSF funzionanti con la piattaforma pi-star!
Come abbiamo desiderato procedere per risolvere il bug
In questi ultimi giorni di giugno io e Antonio IZ0MXY abbiamo deciso di riprendere sotto mano il problema qui descritto, ovviamente mai risolto dalle varie patch di aggiornamento del sistema pistar, inviate automaticamente dallo staff di MW0MWZ .
Non avendo molta pratica di compilazione / decomplilazione dei files, abbiamo deciso di contattare il nostro amico radioamatore Antonio IU5JAE, chiedendogli di controllare assieme il problema e magari riuscire a risolverlo, collaborando assieme!
Antonio IU5JAE è un bravissimo programmatore, che tra l’altro ha realizzato diverso codice per i servizi radioamatoriali digitali. (vedi articoli nel sito del Gruppo Radio Firenze).
Abbiamo deciso di procedere per steps, replicando su i nostri diversi hotspot pi-star e sistemi similari, lo stesso bug.
PRIMO AGGIORNAMENTO (serata del 25/06/2023).
Da un consulto tecnico effettuato assieme ad Antonio IZ0MXY, me e Antonio IU5JAE (che, come già detto, è un noto programmatore e ottimo conoscitore anche dei sistemi YSF), siamo giunti alla conclusione che il noto problema del bug di funzionamento si trova all’interno del software dell’hotspot pistar, e più precisamente nel servizio YSFGateway a cui il pi-star fa riferimento per funzionare e connettere le room YSF e FCS.
Più precisamente, il servizio YSFGateway, quando riceve un numero di connessione errato verso una room YSF / FCS non conosciuta (e non presente nell’elenco del file YSFHost.txt, che scarica automaticamente ad ogni ora), va in errore provocando immediatamente un errore di segmentazione (segmentation fault) del programma e uccidendo il servizio stesso (kill), uscendo in modo inatteso dal suo regolare e continuo funzionamento.
A questo evento corrisponde la visualizzazione delle label YSF Net e YSFGateway di colore rosso, nel pannello del Network Status del pi-star.
Fino a quando le label della YSF Net e della YSFGateway non ritorneranno attive (ridiventando ambedue di colore verde), nessun comando YSF potrà essere inviato al vostro nodo hotspot!
Sarà il servizio interno di watchdog del pistar a riavviare automaticamente anche il servizio YSFGateway, ad un tempo prestabilito impostato nella sua configurazione.
Nella configurazione del servizio di watchdog, il tempo di controllo e di riavvio dei servizi (ciclo) è impostato di default a 300 secondi (5 minuti).
NOTA: Il tempo di attesa di 5 – 7 minuti (occorrente per il ripristino del funzionamento della connessione YSF e necessario per avere nuovamente disponibile il protocollo YSF sull’hotspot pi-star), è dovuto alla esecuzione del servizio di watchdog, in cui il servizio prima ferma e poi riavvia tutti i servizi previsti.
SECONDO AGGIORNAMENTO LAVORI (del 27/06/2023).
L’errore del programma / servizio YSFGateway sopra menzionato, è stato trovato e si sta procedendo ad effettuare diverse prove per testare la nuova versione del servizio YSFGateway (patch) già creata in brevissimo tempo dal bravissimo collega Antonio IU5JAE.
Ora abbiamo la prima “patch di test” del servizio YSFGateway!
Ora ci dobbiamo rimboccare le maniche ed iniziare a testare il nuovo codice della patch nelle varie versioni dei nostri hotspot pistar. Inizieremo dal pistar americano.
ATTENZIONE: Da ulteriori test approfonditi effettuati da Antonio IZ0MXY e da me su i nostri dispositivi (vari modelli di hotspot e schede MMDVM) si informa che la prima patch YSFGateway realizzata ha funzionato completamente solo nell’hotspot americano di W0CHP.
TERZO AGGIORNAMENTO LAVORI (del 27/06/2023 sera).
I test di funzionamento del nuovo servizio YSFGateway hanno già avuto un un buon successo nel pistar versione 0 2 W (con la versione Hotspot WPSD Simplex), ma non funzionano ancora i cambi di room effettuati dalla dashboard dell’hotspot inglese.
Si è proceduto a creare una apposita patch del servizio YSFGateway che funzioni APPOSITAMENTE per la versione inglese dell’hotspot.
QUARTO AGGIORNAMENTO LAVORI (del 30/06/2023).
I test di funzionamento della nuova patch del servizio YSFGateway hanno avuto un ottimo successo anche nel pistar versione 3 B+ (con la versione software americana, e una scheda MMDVM Duplex). Anche nelle altre versioni testate precedentemente, il servizio sta continuando a funzionare regolarmente, ma nella versione inglese ancora non funzionano i cambi di room effettuati dalla dashboard dell’hotspot .
QUINTO AGGIORNAMENTO (03/07/2023)
ATTENZIONE: Dai vari test effettuati dopo l’installazione della seconda patch di prova realizzata, installandola, il comando YSF Link Manager presente nella dashboard grafica del pistar inglese non funziona e non permette ancora di effettuare manualmente la connessione alle room. La disconnessione dalla room attuale e la connessione verso il servizio Parrot 9999 sono funzionanti. Effettuando le connessioni dalla radio RF, tutto funziona regolarmente. Questa patch non ha risolto nulla!
SESTO AGGIORNAMENTO (04/07/2023)
Antonio IU5JAE, ieri sera tardi, ci ha anticipato un’ulteriore versione della patch di aggiornamento, appositamente creata per essere utilizzata nell’hotspot pistar inglese (vari modelli).
Applicata questa patch, ora il cambio della room YSF dalla dashboard dell’hotspot inglese funziona nuovamente, così come i comandi per effettuare la connessione e la disconnessione dei Reflector FCS. Dal lato radio RF, tutto sta funzionando regolarmente.
Con l’applicazione di questa nuova versione della patch, i comandi inviati dalla dashboard funzionano tutti regolarmente!
SETTIMO ed ULTIMO AGGIORNAMENTO (05/07/2023)
Da molteplici test effettuati durante questa giornata su tutte le piattaforme e modelli di hotspot pistar (americano e inglese), siamo arrivati alla conclusione di rendere disponibile un’unica patch di aggiornamento, in modo da essere compatibile ed essere applicata su ambedue le versioni degli hotspot pistar.
PUBBLICAZIONE DELLA PATCH DI AGGIORNAMENTO (05/07/2023)
Antonio IU5JAE ha effettuato assieme a noi gli ultimi test di rito e ha autorizzato a pubblicare in questo sito il file della la patch di aggiornamento.
NOTA: La patch realizzata da Antonio IU5JAE è stata inviata allo sviluppatore del codice del servizio YSFGateway, Jonathan G4KLX, che la importerà nel suo repository GitHub.
Per vostra comodità, il file della patch l’ho reso scaricabile anche da questo sito.
La licenza del software oggetto della patch
Il software originario e la successiva patch, vengono distribuiti con la GNU GENERAL PUBLIC LICENSE Version 2, June 1991. (vedi anche sul profilo GitHub di G4KLX).
NOTA: La GNU GPL è la licenza per software libero più utilizzata e ha un forte requisito di copyleft. Quando si distribuiscono opere derivate, il codice sorgente dell’opera deve essere reso disponibile con la stessa licenza. Esistono più varianti della GNU GPL, ciascuna con requisiti diversi.
Come installare questa patch del servizio YSF
I files originali, così come la patch di aggiornamento, sono file open-source e sono stati distribuiti con la licenza precedentemente descritta.
ATTENZIONE: L’aggiornamento automatizzato dell’hotspot (giornaliero) potrebbe sovrascrivere Il file di questa patch! Di conseguenza, fate attenzione ed andate a controllare la dimensione del file e la data del file in questione.
Installazione del nuovo servizio nella memoria SD del pistar
Come avete letto in precedenza, è stata realizzata un unico file di patch, compatibile con ambedue le versioni dell’hotspot pistar.
Scaricate il file omonimo del servizio YSFGateway sul vostro PC, utilizzando questo link .
Successivamente procedete a copiare il file nella memoria SD del vostro dispositivo, utilizzando un programma come FileZilla o WinSCP.
1. Copia del file dal vostro PC alla memoria SD del pistar
IMPORTANTE: Sul vostro pistar inglese dovete PRIMA abilitare in scrittura la sua memoria SD, collegandovi ad esso con un terminale SSH (utilizzando PuTTY, ad esempio).
Con la versione pistar americana, non è necessario effettuare questa impostazione.
Sarà necessario conoscere l’indirizzo IP del vostro dispositivo, username, password e scegliere la connessione in SSH (porta 22).
Successivamente, inviate il seguente comando da terminale:
pi-star@pistar(ro):~$ rpi-rw
Una volta ottenuta la seguente riga di prompt (vedrete la scritta rw, al posto di ro), significherà che da ora sarà possibile scrivere nella memoria SD. Tenete aperta questa connessione con PuTTY (vi servirà successivamente…), e procedete con l’uso del programma successivo.
pi-star@pistar(rw):~$
Per inviare da remoto il file al vostro dispositivo, per semplicità, utilizzate il comodo programma gratuito WinSCP conosciuto da molti di noi, e non molto differente dal programma FileZilla. Sarà necessario conoscere l’indirizzo IP del vostro dispositivo, username, password e scegliere la porta 22 (SSH).
Il pannello a sinistra visualizza la cartella presente sul vostro PC; a destra viene visualizzata la cartella remota, presente nella memoria SD del vostro pistar.
Scegliete la cartella in cui avete salvato il file, che avete decompresso dall’archivio; posizionatevi e selezionate con il mouse il file YSFGateway, contenuto nella cartella a sinistra;
Premete il pulsante F5 della tastiera e procederete alla copia del file nella cartella remota (memoria SD del pistar). All’apertura della finestra di copia del file, selezionate solamente OK, senza modificare gli altri parametri del programma.
La copia del file avverrà nella posizione /home/pistar/ della partizione presente nella memoria SD.
Scollegate la connessione SSH di WinSCP con l’hotspot, e chiudete il programma.
2. Modifica delle proprietà del file e copia nella cartella di esecuzione
Ritornate alla connessione SSH aperta con il programma PuTTY, e sulla riga di terminal, digitate il comando per leggerne il contenuto:
ls -la
visualizzerete la presenza del file YSFGateway appena copiato, in questo modo:
-rwxr-xr-x 1 root bin 2351384 Jul 5 22:15 YSFGateway
Bene, ora dovete apportare qualche modifica essenziale a questo file.
Prima di tutto, dovete cambiarne i permessi. Con questa nuova autorizzazione (755) il proprietario del file può leggere, scrivere ed eseguire nel file mentre gli altri leggono e scrivono nel file ma non lo eseguono.
Digitate questo comando (come amministratore del sistema) e confermate con Invio:
sudo chmod 755 YSFGateway
Visualizzate nuovamente la cartella, ora noterete che i permessi del file saranno cambiati:
-rwxr-xr-x 1 root bin 2351384 Jul 5 22:15 YSFGateway
Bene. Procedete con il con il seguente comando (sempre come amministratore del sistema) per modificare il proprietario del file e il gruppo assegnato; al comando, confermate con Invio:
sudo chown root:bin YSFGateway
Visualizzando nuovamente il contenuto della cartella; ora il proprietario e il gruppo saranno cambiati:
-rwxr-xr-x 1 root bin 2351384 Jul 5 22:15 YSFGateway
Avete completato le modifiche del file; ora il file è pronto per essere copiato nella sua cartella di lavoro.
Ma prima dovete mettere in sicurezza il file omonimo, già presente nella cartella di destinazione!
2. Modifica del nome del file originario
Il file originario del servizio è contenuto nella cartella /usr/local/bin/ Spostatevi all’interno di questa cartella, con il comando:
cd /usr/local/bin/
utilizzando il solito comando, visualizzate il contenuto dell’intera cartella:
ls -la
Alla fine della lista dei files presenti in questa cartella, visualizzerete:
-rwxr-xr-x 1 root bin 211000 Jun 7 2021 YSF2DMR
-rwxr-xr-x 1 root bin 157752 Jun 7 2021 YSF2NXDN
-rwxr-xr-x 1 root bin 124912 Jun 7 2021 YSF2P25
-rwxr-xr-x 1 root bin 129036 Nov 13 2022 YSFGateway
-rwxr-xr-x 1 root bin 14056 Nov 13 2022 YSFParrot
il file che vedete evidenziato è quello che dovete rinominare, per evitare di sovrascriverlo con quello della patch, che ovviamente ha il nome identico!
Per compiere questa operazione, dovete prima fermare il servizio e poi modificare il nome del file esistente. Lo farete utilizzando i seguenti comandi:
sudo ysfgateway.service stop
sudo mv YSFGateway YSFGateway.old
ricontrollate il contenuto della stessa cartella, ora visualizzerete:
-rwxr-xr-x 1 root bin 211000 Jun 7 2021 YSF2DMR
-rwxr-xr-x 1 root bin 157752 Jun 7 2021 YSF2NXDN
-rwxr-xr-x 1 root bin 124912 Jun 7 2021 YSF2P25
-rwxr-xr-x 1 root bin 129036 Nov 13 2022 YSFGateway.old
-rwxr-xr-x 1 root bin 14056 Nov 13 2022 YSFParrot
Molto bene; ora potete copiare il nuovo file della patch, in questa cartella.
Ritornate nella cartella /home/pi-star/ con il comando:
cd /home/pi-star/
3. Arresto del servizio YSF dell’hotspot pistar
Dovete essere sicuri di aver arrestato il servizio YSFGateway PRIMA di copiare il file della patch.
Lo potete controllare, utilizzando il comando:
sudo ysfgateway.service status
Se il servizio fosse ancora attivo, dovrebbe comparirvi un avviso simile a questo:
YSFGateway is running as PID 13714
Nel caso lo fosse, procedete a fermare il servizio utilizzando il comando:
sudo ysfgateway.service stop
4. Copia del file della patch nella cartella definitiva
Essendo già all’interno della cartella dov’è presente il file da copiare, procedete alla copia del file della patch nella cartella definitiva, con il comando:
sudo cp YSFGateway /usr/local/bin/
5. Riavvio del servizio YSF dell’hotspot pistar
Sempre da terminale, ora DOVETE riavviare il servizio YSFGateway e verificarne il suo funzionamento, senza dover riavviare l’intero sistema operativo dell’hotspot.
Lo farete utilizzando il comando:
sudo ysfgateway.service start
6. Cancellazione del file della patch dalla cartella home
Se lo desiderate, potete cancellare il file importato nella cartella /home/pi-star/, spostandovi all’interno della cartella con il comando:
cd /home/pi-star/
e successivamente inviando il comando di cancellazione del file (confermando alla domanda con Y):
rm YSFGateway
7. Blocco degli aggiornamenti del file
Dovete sapere che ad ogni aggiornamento di versione (Upgrade) o all’aggiornamento giornaliero dell’hotspot (Update), i files riguardanti il funzionamento dell’hotspot potrebbero venir aggiornati.
Per evitare che il file del servizio YSFGateway della patch (che avete appena aggiornato) venga sovrascritto da un aggiornamento automatico, è possibile ‘bloccare’ il file per evitare sovrascritture, cancellazioni, o il cambio del nome del file.
Per effettuare questa operazione, digitate questo comando sul terminale:
sudo chattr +i /usr/local/bin/YSFGateway
Quando desidererete “sbloccare” il file per riportarlo alla condizione originaria, digitate questo comando sul terminale:
sudo chattr -i /usr/local/bin/YSFGateway
8. Controllo del log del servizio YSFGateway
Potete controllare all’istante il contenuto del log del servizio omonimo, utilizzando il comando:
tail -f /var/log/pi-star/YSFGateway-2023-06-26.log
Con questo comando, viene visualizzato a scorrimento, se presente, il log del giorno 26 giugno 2023.
Attenzione: Selezionate la data odierna, oppure quella del giorno presente nel log desiderate controllare.
I: 2023-06-26 20:58:43.961 Loaded YSF2P25
M: 2023-06-26 20:58:46.686 Opened connection to the APRS Gateway
I: 2023-06-26 20:58:46.708 Opening UDP port on 6073
M: 2023-06-26 20:58:46.710 Automatic (re-)connection to 00001 – “ZZ PARROT ”
M: 2023-06-26 20:58:46.710 Opening YSF network connection
I: 2023-06-26 20:58:46.710 Opening UDP port on 42000
M: 2023-06-26 20:58:46.710 YSFGateway-20230212 is starting
M: 2023-06-26 20:58:46.711 Built 21:23:42 Jun 27 2023 (GitID #3409e45)
M: 2023-06-26 20:58:46.716 Linked to ZZ PARROT
M: 2023-06-26 20:58:47.331 Link successful to MMDVM
Per uscire dalla visualizzazione del log, utilizzate il comando Ctrl C della tastiera.
NOTA: I log vengono cancellati automaticamente ogni 24 ore o ad ogni riaccensione del pistar.
Conclusioni
Ora il servizio YSFGateway sarà nuovamente funzionante e non si bloccherà più, anche se inviate dei numeri di connessione a delle room YSF e/o FCS inesistenti. Anche inviando un numero errato, l’hotspot rimarrà configurato sull’ultima room in cui era connesso e vi permetterà di inviare immediatamente una nuova chiamata o un numero per cambiare room.
Effettuate tutti i test che desiderate, e magari riportate sotto a questo articolo le vostre considerazioni ed esperienze personali.
NOTA: Alla data di oggi 5 luglio 2023, l’aggiornamento automatico presente nelle due versioni del pi-star (inglese e americano) NON inserirà la patch YSFGateway nel vostro hotspot.
Abbiamo già contattato privatamente i due sviluppatori e vedremo se nei prossimi mesi questo aggiornamento potrà essere integrato automaticamente nei due differenti hotspot.
Come già scritto in altri precedenti articoli, l’uso di questi sistemi viene sempre utilizzato per scopo di sperimentazione. Ricordo a tutti che le attuali Leggi e i Regolamenti ministeriali prevedono che su i ponti ripetitori digitali radioamatoriali l’accesso DEVE rimanere libero e garantito a TUTTI i Radioamatori!
Buon divertimento e sperimentazione con i sistemi e le radio digitali, e il software libero.
’73 de Paolo IV3BVK (K1BVK)
Scopri di più da Il mondo di Paolettopn (IV3BVK - K1BVK)
Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.