A seguito del precedente esperimento poi fallito, ritorno a presentarvi una soluzione funzionante per installare DVSwitch Server in versione minimale su piccole VPS anche con versioni Debian superiori alla 10 (come da progetto originale).
Cosa è cambiato? La probabile incompatibilità del nuovo modulo MMDVM aveva vanificato la procedura pubblicata in precedenza ma nel frattempo , come molti di voi sapranno, il gruppo DMR Brescia responsabile per il BM in Italia ha consigliato/spinto coloro che come me usano sistemi esclusivamente via rete, come dvswitch, di passare al protocollo STFU.
Utilizzando esclusivamente la rete BM con dvswitch ho allora provato a cimentarmi nuovamente in questo adattamento pensato quindi SOLO ED ESCLUSIVAMENTE per coloro che necessitano connessione STFU alla/e reti BrandMeister.
L’idea di base è stata banale: come scritto nell’articolo precedente uno dei “contro” di STFU è , per quanto provato, l’impossibilità di avere la buona vecchia dashboard web del proprio server. Assodato questo, considerato che personalmente non ho mai usato il Monitoring integrato (pacchetto Monit) e focalizzandomi su compatibilità ed uso su macchine con ridotte o ridottissime risorse ho provato ad escludere tutto quanto nello scenario presentato sopra, non più necessario. Quello che ci serve è semplicemente: il pacchetto base, il pacchetto menù , l’Analog Bridge, STFU ed MMDVM Bridge usato solo come “connettore” dei vari pezzettini.
Escludendo tutta la parte non DMR ma soprattutto tutta la parte web/php/monitoring non solo si snellisce il tutto ma si riesce ad avere compatibilità anche con le versioni Linux non nativamente supportate in origine dal dvswitch.
Quello che segue è testato da 2 giorni e funzionante su una piccola VM x64 con “soli” 512MB Ram ed 1Vcore (CPU) , i test danno un footprint di 214MB e un’uso limitato a non più del 10% della CPU anche in QSO.
L’installazione funziona ed è da me testata su Ubuntu Server 24.04.02 “vergine” cioè installato da zero senza altri sw/servizi installati .
Non ho modo/tempo/voglia di far test su altre versioni di OS ma sono fiducioso che per l’esiguo numero di componenti e per la presenza dei pacchetti fondamentali compatibili a partire da Ubuntu 20.04 il tutto dovrebbe funzionare da quella versione in su ed anche in ambiente ARM (raspberry per fare l’esempio più conosciuto).
Aggiornamento del 23/05/2025: quanto segue funziona e l’ho testato su Raspberry Pi Zero 2W con Raspbian bookworm 64bit Lite. Da notare che il footprint RAM è inferiore alla versione vm su x64 occupando “solo” 152MB/417MB totali. Nessuno swap ed anche in QSO i 4 core arm non vanno oltre il 15%.
Rammento che non ho alcun legame con gli sviluppatori del progetto ne conosco in modo esteso il funzionamento dei singoli componenti che compongono il server. Questo significa che è sperimentazione pura.
Non è scopo di questa guida approfondire in generale concetti legati a nat, routing,ip e configurazione base di dvswitch nonchè il suo stesso funzionamento in quanto esistono risorse specifiche.
Malgrado non c’è nulla di difficile o complicato è preferibile avere una conoscenza almeno di base dei sistemi Linux/Unix.
Quanto segue, è la procedura passo passo da me usata per realizzare questa versione minimale di DVSwitch Server solo STFU. La VM usata è da ieri up&running , ho fatto un paio di QSO ed un po di ascolto su vari TG e sembra funzionare bene su VM di tipo KVM/QEMU configurata con 512MB Ram e 1CPU su miniPC Intel N95.
Cominciamo…
1. Scarica lo script di setup repository DVSwitch
Scarica lo script ufficiale per aggiungere i repository DVSwitch su Debian Bookworm/Ubuntu 24+ (20.04 se usate lo script buster).
2. Rendi eseguibile lo script
Permette l’esecuzione dello script appena scaricato.
3. Esegui lo script
Lancia lo script (da utente normale e poi come root per configurare repo e chiavi GPG).
4. Installa i pacchetti core di DVSwitch
Cominciamo con l’update in modo da aggiornare il contenuto con le nuove repository di dvswitch:
sudo apt update
A seguire:
-
dvswitch-base: componenti base DVSwitch.
-
dvswitch-menu: tool/testuale per configurazione e gestione DVSwitch.
-
analog-bridge: gestore bridge audio (include anche alsa ed md380-emu per gestione AMBE2).
- mmdvm-bridge: servirà solo per creare i file di configurazione (DVSwitch.ini)
5. Installa STFU
Installa il proxy STFU per BrandMeister DMR secondo la policy sysop Italia (si integra nella pipeline DVSwitch).
6. Modifica il file di configurazione STFU/DVSwitch
Apri il file e fra la sezione [YSF] e [ASL] inserisci quanto segue:
[STFU]
BMAddress = 2222.master.brandmeister.network ; Brandmeister ODMRT server address ITALIA
BMPort = 54006 ; Brandmeister ODMRT port
BMPassword = PASSWORD BM (da Selfcare) ; Your Brandmeister password
Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 31100 ; Port to send AMBE TLV frames to (export)
rxPort = 31103 ; Port to listen on (import)
UserID = DMRID ; Your DMR ID
TalkerAlias = NOMINATIVO Nome ; Max 27 characters
StartTG = 222 ; Startup talk group (TG iniziale ,nell’esempio TG222)
LogLevel = 3 ; STFU log level (0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error)
Personalizzate solo con la vostra password BM, il dmrid ed il Talker Alias (Es. IU2DLC Pietro).
7. Crea il symlink per lanciare il menu DVSwitch facilmente
Permette di lanciare il menu dvswitch (dvs
) da qualsiasi path, comodo per le future configurazioni.
Procedete con la configurazione di DVSwitch lanciando dvs da qualsiasi directory. Inserite i semplici dati che richiede. Dovete scegliere nella configurazione anche la porta UDP che poi DOVRETE aprire sulla vostro router, firewall creando apposita regole di NAT/Port Forwarding.
Attenzione: è necessario che abbiate un IP pubblico , possibilmente statico o , se dinamico, mappato su dynamic dns.
Non funziona con connessioni mobili e cioè connettendo il raspberry o VM via hotspot cellulare o similare. E’ una limitazione delle reti mobili.
Per questo motivo il mio consiglio è di usare , ad esempio, il raspberry connesso alla proprio rete domestica in fibra o adsl o usare una VPS qualsiasi a pagamento che offra IPV4 pubblico (io uso la taglia più piccola delle VPS Ionos).
Vi ricordo inoltre di selezionare come decoder/codec quello software (ultima opzione mostrata).
8. Aprite il file seguente
sudo nano /opt/MMDVM_Bridge/MMDVM_Bridge.ini
Nella sezione [DMR Network] mettete
Enable=0
Malgrado in altre guide non venga citato questo passaggio io l’ho trovato fondamentale per evitare errori al passaggio successivo
quando andrete ad abilitare STFU.
Più in generale nelle varie sezioni dei modi digitali Enable deve essere 0 per TUTTI i modi ivi compreso il DMR.
Non abbiamo installato i moduli MMDVM necessari quindi gli altri protocolli non funzionerebbero.
9. Stop MMDVM Bridge e abilitazione del servizio STFU all’avvio
Prima di avviarlo fermiamo il servizio mmdvm_bridge con
sudo systemctl stop mmdvm_bridge
e visto che non ci serve più possiamo disabilitarlo con :
sudo systemctl disable mmdvm_bridge
successivamente
Fa partire STFU automaticamente al boot della macchina.
10. Avvia manualmente STFU
Avvia subito il servizio STFU (utile anche per i primi test).
11. Controlla lo stato di STFU
Verifica che STFU sia in esecuzione e correttamente configurato.
Se non ci sono errori potrete vedere i log in tempo reale con il comando:
sudo tail -f /var/log/dvswitch/STFU.log
12. Modifica del file del servizio per riavvio automatico in caso di crash dello stesso.
[Unit]
Description=STFU Service
After=netcheck.service
Requires=netcheck.service
[Service]
Type=simple
Restart=always
RestartSec=3
RestartPreventExitStatus=254
StandardOutput=null
WorkingDirectory=/opt/STFU
Environment=STFU_LOG=/var/log/dvswitch
ExecStartPre=/usr/bin/sh -c ‘echo “Starting STFU: [`date +%%T.%%3N`] ” >> /var/log/netcheck’
ExecStart=/opt/STFU/STFU /opt/MMDVM_Bridge/DVSwitch.ini
KillMode=process
[Install]
WantedBy=multi-user.target
-
Usare virgolette dritte
-
Percentuali SEMPRE doppie (
%%
) nei comandi systemd
sudo systemctl restart stfu
E’ tutto. Ecco l’articolo ufficiale in merito a STFU pubblicato sul sito DMR Brescia
73, Pietro, IU2DLC
Shortlink: https://easyurl.it/dvsstfu