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
Quindi selezioniamo RASPBERRY PI OS (OTHER)
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
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
Posta un commento