Passa ai contenuti principali

Creiamo un reflector XLX!

In questo post voglio riportare tutti i passaggi per creare un reflector XLX!

Premetto che è molto semplice, nulla di particolarmente difficile e questo anche perchè i compilatori che hanno creato questo software, hanno davvero fatto tanto lavoro per rendere le cose molto ma molto semplici.

In questa mini guida, costruiremo un reflector XLX che dovrà girare su una raspberry PI 4 con architettura arm 64 bit (provato anche su Orange PI 3 LTS, Raspberry PI 3B+ e VPS) dove si avranno 26 moduli attivi (A, B, C...) con sistema di transcodifica delimitata al solo modulo C implementando, ovviamente per quest'ultima, i driver per le famigerata key AMBE 3000, nello specifico due DVMEGA STICK 30.

Siete liberi di usare qualsiasi metodologia idonea a portare su microSD il sistema operativo ma dato che si tratta di una Raspberry, penso che la scelta migliore, e sicuramente più rapida, è quella di utilizzare il software RASPBERRY PI IMAGER (scaricabile questo link).

Installato il predetto software procediamo alla preparazione della SD con successiva installazione del sistema operativo.

Nella schermata che si aprirà, selezione la voce SCEGLI DISPOSITIVO




Scelta la raspberry in nostro possesso procediamo, poi, con la scelta del sistema operativo che per noi va bene la versione LITE non desktop e, per essere sicuri che il nostro reflector funzioni bene, almeno per ora, conviene scaricare la versione BULLSEYE e non BOOKWORM (si debian 11, no debian 12). 

Quindi selezioniamo RASPBERRY PI OS (OTHER)


poi, come scritto in precedenza, scegliamo RASPBERRY PI OS (LEGACY, 64 BIT) LITE





fatte queste scelte, selezionare la microSD da formattare nel menu "SCEGLI SCHEDA SD" e poi cliccare su "SCRIVI".

In pochi minuti l'unità è pulita e bisogna procedere con l'installazione del sistema operativo e quindi, sempre dal tasto "SCEGLI SO" trovare la voce "RASPBERRY PI OS (OTHER) e successivamente scegliere il sistema che fa al caso nostro, ovvero "RASPBERRY PI OS LITE (64-BIT).




Confermato il tutto si ritorna alla schermata principale dove, oltre a riscegliere la microSD sulla quale deve essere montato il sistema operativo, dobbiamo anche attivare un'opzione importantissima che ci consentirà di raggiungere il nostro micro computer via SSH (con un qualsiasi client SSH quali bitvise o Putty od altri): abilitare l'accesso SSH!

Quando si va a cliccare sul tasto avanti, comparirà la finestra sotto riportata, da qui, ci portiamo a modificare i parametri sopra descritti cliccando sul tasto MODIFICA IMPOSTAZIONI e successivamente "ABILITA SSH" e nel campo relativo alla password, inserire una chiave personalizzata.





Clicchiamo su "SALVA" e, ritornati di nuovo nella schermata principale, selezionare "SCRIVI".

Non ci resta che attendere il completamento dell'operazione ed inserire la scheda nella nostra amata Raspberry.

E' inutile dire come fare a raggiungere il microcomputer da client SSH (trovare l'indirizzo IP che il modem assegna alla raspberry, individuato questo, dal client SSH inseriamo il predetto IP, l'username che, se non è stato cambiao nella schermata raffigurata nell'immagine qui sopra, è "pi" con la password che avete inserito prima di procedere al flash della SD)

Passiamo, adesso, nel vivo della compilazione del reflector, quindi, non ci resta che copiare ed incollare le righe di comando sotto riportate (eccetto, ovviamente, eventuali spiegazioni).

sudo su

timedatectl set-timezone Europe/Rome
(serve per settare il S.O. al nostro fuso orario, molto utile per avere un orario apportato al nostro fuso orario sui transiti che avverrano sul nostro server)

dpkg-reconfigure locales
(è possibile anche saltare questo passaggio in quanto non fa altro che portare in lingua italiana gran parte del testo che leggereo nella shell, se si procede con la configurazione, scegliete it-UTF8 e renderlo, quando chiesto, linguaggio di default)

apt update && apt upgrade -y

reboot

sudo su

apt install git git-core

apt install apache2 php7.4

apt install build-essential

cd

git clone https://github.com/LX3JL/xlxd.git

cd xlxd/src

Nel file che adesso andramo ad aprire, dobbiamo aggiungere delle modifiche che ci serviranno per limitare l'eventuale transocidifica ad un determinato modulo del nostro reflector, nel caso della Italy Centro, lo abbiamo limitato al modulo C.

nano cpacketstream.cpp

portiamoci alla fine delle stringhe sotto riportate ed aggiungiamo le righe evidenziate in grassetto (la riga sottolineata è una riga che è già esistente nello script originale, bisogna solo portarla sotto la condizione if - un'altra piccola attenzione da rivolgere al file è che se copiate i comandi in grassetto, ricordatevi di ribattere gli apostrofi " ' " prima e dopo la "C"):

{
bool ok = false;
// not already open?
if ( !m_bOpen )
{
// update status
m_bOpen = true;
m_uiStreamId = DvHeader.GetStreamId();
m_uiPacketCntr = 0;
m_DvHeader = DvHeader;
m_OwnerClient = client;
m_LastPacketTime.Now();

if (DvHeader.GetRpt2Module() == 'C')

m_CodecStream = g_Transcoder.GetStream(this, client->GetCodec());

else
m_CodecStream = g_Transcoder.GetStream(this, CODEC_NONE

salviamo il file e procediamo con la modifica di main, ovvero quel file che serve anche a decidere quanti modulo voglioamo attivarre sul nostro XLX. Premetto che di default sono attivi 10 moduli (dal modulo A al modulo J), nel caso non avete bisogno di attivarne altri, ovviamente, saltate questo passaggio.

nano main.h

nella sezione "reflector" (sotto riportata) modifichiamo il numero 10 con un numero che vogliamo, nel nostro caso 26 (si parla sempre di moduli da attivare)

// reflector ---------------------------------------------------

#define NB_OF_MODULES                  10

Salviamo anche questo file e proseguiamo...

make clean

make

make install

cp ~/xlxd/scripts/xlxd /etc/init.d/xlxd

nano /etc/init.d/xlxd

all'interno del file xlxd, individuiamo la vode "ARGUMENTS" e il reflector preimpostato con quello nostro (quello già riportato che dovrebbe esserere XLX999, ovviamento sostituiamo il "999" con il numero del reflector che dobbiamo crare) e sostituire il primo indirizzo IP con l'indirizzo IP che ha assegnato il modem al raspberry (questo rendetelo statico sul modem/router) e lasciate invariamo il secondo gruppo IP (127.0.0.1 - servirà per far comunicare la transcodifica)

wget -O /xlxd/dmrid.dat http://xlxapi.rlx.lu/api/exportdmr.php

(questo comando, invece, serve per importare gli ID DMR mondiali, possiamo anche inserirlo in crontab per fare un aggiornamento periodico)

reboot

sudo su

service xlxd start

dato questo comando, possiamo vedere se ci sono errori, se non compare nulla, sugifica che è tutto ok, nel caso ci fossero, evidentemente ci sono stai dei problemi di battitura nei comandi dati fino ad ora.

service xlxd stop

update-rc.d xlxd defaults

Passiamo alla dashboard...

cp -r ~/xlxd/dashboard/* /var/www/html

rm /var/www/html/index.html

chmod +r /var/log/messages

reboot

mv config.inc.php /var/www/html/pgs/config.inc.php

Il file che abbiamo spostato con il camando qui sopra, è un file che va a gestire gran parte dei dati visibili nella dashboard, modifcate a piacimento ovviamente seguendo le basilari regole imposte stesso all'interno del file nel testo commentato.

Particolare attenzione da dare alla voce "CallingHome", modificare le voci che riporto in grassetto:

$CallingHome['Active']    =true;
$CallingHome['HashFile']   = "/callhome/callinghome.php";

Salviamo il file e procediamo

cd /

mkdir callhome

chmod 777 callhome

Il file "callinghome.php" contiene una chiave che serve ai server irccd di individuare con più facilità il nostro reflector, è consigliabile di salvarlo in locale in modo da poterlo reinserire in una nuova struttira del reflector qualora avvenisse un crash irreversibile.

Adesso passiamo all'installazione dei driver delle due key AMBE 3000, nel nostro caso DVMEGA DV STICK 30. 

Dato che stiamo procedendo all'installazione del server di transcodifica AMBEd su una macchina a 64 bit arm, possiamo senza problemi prelevare i file descritti prossimamente. Ovviamente, nel caso state installando il tutto su un micro computer diverso, di architettura differente, preleverete driver diveri da questo sito.

cd
wget https://ftdichip.com/wp-content/uploads/2022/07/libftd2xx-arm-v8-1.4.27.tgz

tar xfvz libftd2xx-arm-v8-1.4.27.tgz

cd release/build

cp libftd2xx.* /usr/local/lib

chmod 0755 /usr/local/lib/libftd2xx.so.1.4.27

ln -sf /usr/local/lib/libftd2xx.so.1.4.27 /usr/local/lib/libftd2xx.so

apt update && apt upgrade -y

cd

cd xlxd/ambed

make clean

make

make install

sh ./run

a questo punto dovremme vedere una serie di dati, se tutto è ok, dovremmo vedere una scherata simile a questa che segue 


reboot

Se è tutto andato come descritto, significa che il gioco è fatto!!!

All'avvio non ci resta che far ripartire tutto...

sudo su

service xlxd start

service xlxd restart

cd ~/xlxd/ambed && sh ./run


Adesso ci dobbiamo concentrare sul porte da aprire sul nostro modem, queste sono le seguenti:

TCP port 80 (http) optional TCP port 443 (https)
TCP port 8080 (RepNet) optional
UDP port 10001 (json interface XLX Core)
UDP port 10002 (XLX interlink)
TCP port 22 (ssh) alternative TCP port 10022
UDP port 42000 (YSF protocol)
UDP port 30001 (DExtra protocol)
UPD port 20001 (DPlus protocol)
UDP port 30051 (DCS protocol)
UDP port 62030 (MMDVM protocol)
UDP port 8880 (DMR+ protocol)
UDP port 10100 (AMBE controller port)
UDP port 10101-10199 (AMBE transcoding port)
UDP port 12345 – 12346 (Icom Terminal presence and request port)
UDP port 40000 (Icom Terminal dv port)
UDP port 21110 (Yaesu IMRS protocol)

Commenti

Post popolari in questo blog

Configurazione DVSwitch Mobile

In questo post, diamo indicazioni su come impostare i dati sull'applicazione DVSWITCH MOBILE per potersi connettere alla rete Digital Network (e non solo). Prima conosciamo che cos'è DVSwitch Mobile! DVswitch Mobile non è altro che un client, che si connette ad un server, con la quale è possibile fare "radio" con uno smartphone, tablet o poc radio mettendo a disposizione varie modalità digitali come DMR, YSF, P25, NXDN e D-Star (nel caso del nostro server, possiamo offire solo l'accesso via DMR e non su altri protocolli - Limitazione dovuta al sistema multiutente). Per poter accedere da tale sistema con i nostri server, bisogna essere abilitati dal sysop del DVLINK (IZ0THD o IZ0LDE - per le richieste potete inviare richiesta compilando il form che trovate nella pagina " ISCRIZIONI AI SERVIZI "), una volta ricevuti i dati, è possibile procedere alla configurazione che segue. Se si utilizza un dispositivo android, recarsi nel play store e  cercare l'ap

E' come DVLINK? (DVSwitch Server con Analog Reflector e client HTML)

Come ben sapete, noi della Digital Network mettiamo a vostra disposizione, il servizio DVLINK. Questo sistema non è altro che una versione "avanzata" del DVSwitch, ovvero, quel server che permette di potersi connettere, con il proprio smartphone o POC Radio, su reti DMR, C4FM, D-Star, ecc..  La differenza tra DVSwitch e DVLink sta nel fatto che, il primo offre le suddette possibilità ad un solo utente, mentre, il secondo, offre le stesse possibilità ad un definito numero di utenti ("definito numero" che è variabile in base alla piattaforma  hardware dove viene fatto girare il software - più perfomante è il computer che ospita il DVLink, più utenti si possono inserire ma sempre senza trascurare la questione connessione internet) e tutti possono scegliere liberamente dove andare a fare QSO. Da qualche giorno, invece, stiamo testando un nuovo sistema: DVSWITCH SERVER con ANALOG REFLECTOR... che cos'è? Beh, in realtà è di base sempre il classico DVSwitch, dotato di

DUDE STAR, un altro programmino per parlare dal PC!

In passato abbiamo parlato di vari applicativi che potevano farci utilizzare il nostro PC per poter fare QSO, come un'emulazione del sistema operativo Android per far funzionare l'applicazione DVSwitch, così come abbiamo parlato del software USRP CLIENT per accedere sempre dal lato DMR collegandosi al server DVSwich/DVLink. Tutti e due i programmi avevano dei piccoli problemi in termini di facilità di installazione. Il primo sembra essere molto performante ma non sono da sottovalutare gli aspetti tecnici della macchina sulla quale si deve installare, e poi, si devono andare a regolare alcune opzioni per alleggelirla e, per chi non è molto ferrato in campo, può essere alquanto complicato. Per quanto riguarda USRP Client... peggio che andar di notte!!! Sempre per chi non è molto ferrato in ambito informatico, settare, cofigurare e far funzionare il predetto software, non è tanto facile, aggiungiamoci, poi, anche il fatto che USRP CLIENT sembra funzionare solo su sistemi operativi