DVSwitch su Debian 12 (Ubuntu 22.04)

IMPORTANTE (22/01/2025): A SEGUITO UPDATE DELLA PARTE MMDVM-BRIDGE DVSWITCH-SERVER NON FUNZIONA PIU’ SUL MIO UBUNTU 24.04.01LTS. Non avendo nessuna versione 22.04 non so se questo abbia impattato anche questa versione di OS.

Se state leggendo questo post sicuramente già conoscete il famoso DVSwitch. In breve DVSwitch è un software composto da una parte server ed un client che gira su Android ma volendo anche su PC che permette di accedere direttamente ai sistemi digitali DMR,DSTAR,YSF,P25,NXDN.

N.B: Questo post non è pensato come guida dettagliata all’installazione e configurazione di DVSwitch Server

Quello che non si evince troppo dallo schema sopra è che in effetti DVSwitch server non è solo installabile su Raspberry ma anche su VPS o più in generale VM. Il progetto che ormai ha circa 5 anni , se non erro, è stato realizzato usando come OS Debian Buster. Ovviamente funziona sull’equivalente Ubuntu 20.04 ed io in primis l’ho sempre installato, oltre che su Raspberry su VPS amd64 con la 20.04.

Tuttavia il progetto non è mai stato concepito per null’altro che non un’installazione stand-alone. Questo significa che integrarlo in server con altre versioni di Linux creava non pochi problemi sia per la parte audio che soprattutto per la parte web (dashboard) essendo il tutto praticamente pienamente compatibile solo con PHP 7.4 Questo comporta dedicare quindi una singola vm/vps per il suo funzionamento. Girando il gruppo al quale fa capo il progetto, ho scoperto che ad Agosto 2024 il creatore Steve N4IRS ha realizzato un porting per Debian 12 Bookworm (corrispondente quindi ad Ubuntu 22.04) del server stesso limitato esclusivamente alle piattaforme ARM64 e AMD64. Non sono quindi disponibili nuove immagini raspberry ne compatibilità con i386.

L’installazione è molto semplice. Da CLI di Linux eseguite quanto riportato:

wget http://dvswitch.org/bookworm

chmod +x bookworm

./bookworm

e successivamente:

apt update apt install dvswitch-server

Eventualmente usate il “sudo” quando e se richiesto a seconda dell’ambiente ove operate. Da notare che a differenza della versione precedente ove accedevo anche da home dando il comando “dvs” adesso lo stesso si troverà sotto /usr/local/dvs.

N.B: i comandi di cui sopra permettono l’installazione anche di dvswitch server nella sua release nativa (buster) basta semplicemente sostituire ove scritto sopra la parola “bookworm” con “buster”.

Per quanto letto nel thread apposito in questo modo dovreste avere la versione funzionante compresa di dashboard (il monit non ho ben capito ma forse resta fuori) per le versioni Debian 12 bookworm. Personalmente non saprei dire se e come funziona perché mi son spostato su quello che più mi interessava: ubuntu 24.04.01LTS su piattaforma sia amd64 che arm64. Questo perché il mio server principale (quello che ospita anche il sito per intenderci) è proprio una VM Oracle che da poco ho aggiornato alla 24.04.01. Inoltre essendo già una VM non mi è possibile creare al suo interno ulteriori VM di tipo kvm/qemu (cosa possibile se si usa ubuntu su hw fisico).

La configurazione di dvswitch server non è contemplata qui ma è veramente super-intuitiva: lanciando “dvs” e selezionando la prima voce “01 Initial Configuration” basterà inserire i vostri dati di registrazione ai vari sistemi digitali (dmrid,password bm,nominativo, server bm e poco altro).

Il risultato? “Monco” che significa a seconda dei punti di vista grandioso o deludente. In un ambiente complicato come il mio lo script di cui sopra ha installato tutto tranne la parte Web. Questo personalmente per me è stato grandioso perchè non ha interferito con i servizi web che già girano e che usano nginx + php8.3 (la soluzione dvswitch usa lighttpp). In pratica configurando il sistema riesco ad usare dvswitch mobile (da Android) come se fosse su una vm dedicata o raspberry. L’unica porta addizionale da aprire è una sola porta UDP per il traffico audio (Analog_Bridge).

In DMR funziona egregiamente, gli altri modi non li ho provato in quanto non li uso. La mancanza della dashboard è una lacuna accettabile in quanto abbiamo comunque a disposizione sia i bot telegram sia i LH (Last Heard) di BrandMeister. Idem per il Monitoring che in un sistema complesso come il mio è gestito a più alto livello da altri software.

Non interferisce con nessuno dei tanti servizi che girano sul server (e son davvero tanti) e l’impatto non è eccessivo in termini di ram/cpu. Se volete poi ulteriormente ottimizzare , a seconda dell’uso , è sempre possibile arrestare e disabilitare i protocolli e relativi servizi che non si usano. Nel mio esempio d’uso che contempla solo il DMR i seguenti servizi:

nxdngateway, ysfgateway, ircddbgatewayd.service, nxfnparrot, ysfparrot,p25parrot.

In questo modo il footprint RAM scende a circa 124MB (analog bridge+md380 emu+mmdvm Bridge). N.B: E’ probabile che inoltre si perda la funzionalità del push del db dei TG al terminale. A chi può servire? A chi ha già dei server in produzione accessibili via internet usati per altri servizi basati su distribuzioni Linux  Debian 12 e derivati e superiori. In questo modo si evita di dover dedicare una vm o altro hw di qualsiasi tipo per il sistema DVSwitch. A chi non serve? A chi preferisce e può dedicare hw/vm a dvswitch e preferisce qualcosa di completo ed isolato da eventuali altri sistemi/servizi.

BONUS: durante le prove fatte ho visto che dvswitch server a volte non gestisce bene il Talker Alias su BM. Nel mio caso riportava nominativo+posizione+sistema. (Es: IUDLC, Milano, Italia, MMDVM Bridge) Questo problema credo si possa verificare anche su installazioni standard e complete. Per ovviare a questo inconveniente e rendere il Talker Alias conforme a quanto stabilito da BM basterà modificare nel file:

/opt/MMDVM_Bridge/DVSwitch.ini

la riga talkerAlias sostituendola con:

talkerAlias = %callsign nome 

“nome” è il vostro nome operatore o quel che preferite senza parentesi, o altro. Nel mio caso la riga è: talkerAlias = %callsign Pietro

73, Pietro, IU2DLC

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.