Percorso

 

                                                   Per gli utilizzatori RASPBERRY-PI


Disco immagine di Brian gw6wtk ottimizzata e aggiornata da IZ5ILH

Questa immagine va bene su DV-RPTR v1 v2 v3 DV-MEGA DVAP e GMSK Modem
basta modificare il D-Star Config secondo la propria interfaccia radio

D-StarRepeater+Dv-Mega+ircDDB+VNC+Win32-20140808.zip

Configurazione immagine:
Aggiornato DStarRepeater-20140521
Aggiornato ircDDBGateway-20140602
Aggiornato librerie sistema operativo
Overclock cpu Raspberry pi a 900 Mhz
Aggiornato file dplus_hosts.txt e dextra_hosts.txt che permettono di utilizzare gli xrf008-055-033
Aggiornato file dcs_hosts.txt blocco ip DCS008
Aggiornato script avvio Dv-Mega
Configurato DStarRepeater avvio Dv-Mega su frequenza 431.525
Ack time a 300 ms e Tx delay a 150 ms
Controllo Comandi Abilitato RPTRCTLD
Aggiunto comandi ur REBOOT e STOP
Aggiunto comandi annuncio rpt1 e rpt2 RECORD A e G e DELETE A e G
Inserito nello zip Win32DiskImager ultima versione e VNC 32 e 64 bit per sistemi Windows


Comandi UR REBOOT e STOP
Per utilizzare questi 2 comandi, il REBOOT riavvia il raspberry e STOP spenge il raspberry dobbiamo
configurare la nostra radio in questo modo, nel quadro control 1 del pannello di configurazione dovere mettere:

RPT1 callsign:
RPTRCTLD
RPT2 callsign: XXXXXX G  le x sono il vostro nominativo o quello del ponte

Naturalmente sul campo RPT1 ci potete mettere un vostro comando "segreto"ondevitare spengimenti o riavvi del vostro raspberry da parte di altri utenti.

La vostra radio dovrà avere una memoria configurata con RPT1 comando "segreto" e RPT2 vostro nominativo G
nel campo UR al posto del
CQCQCQ dovete inserire il comando REBOOT se dovete riavviare o STOP
per spengere il vostro raspberry, ricordatevi se date lo
STOP il raspberry non si riaccenderà.

Il comando Annuncio è disabilitato basta abilitare e selezionare il tempo, di default è settato a 8 minuti, per registrare il messaggio di benvenuto o qualsiasi alto annuncio la procedura è questa:

Per registrare impostare sulla tua radio RPT1:
RECORD A e RPT2:RECORD G sul campo UR:CQCQCQ
a questo punto premete il ptt e cominciate a registrare il tempo massimo non l'ho ancora verificato ma credo oltre un minuto poi vedremo.

Per cancellare  impostare sulla tua radio RPT1:
DELETE A e RPT2:DELETE G sul campo UR:CQCQCQ
e premere il ptt così facendo l'annuncio viene cancellato.
Ps.
Questi comandi rispettano lo standard "ripetitore" per funzionare la vostra frequenza memorizzata dovà avere
Shift impostato +/- e offset a 0

Quando date questi comandi il vostro Hotspot o ripetitore non darò nessuna risposta vedrete spengere o riavviare il vostro raspberry.

Buone prove Roberto iz5ilh

 


Per gli utilizzatori
RASPBERRY-PI


Software di Brian gw6wtk per la gestione ripetitore o nodo Hotspot

http://www.westerndstar.co.uk/html/downloads.html

Guida configurazione by IZ5CMC


File modificati che permettono di utilizzare gli xrf008-055-033 con ircddb Gateway come hotspot sia sotto Linux

files:DPlus_Hosts.txt
files:DCS_Hosts.txt  
files:DExtra_Hosts.txt
files:file_host_mod.zip


Per abilitare la connessione al DCS008 occorre modificare il file
DCS_Hosts.txt che trovate nella directory usr/local/etc
1 - Aprire il file DCS_Hosts.txt
2 - Localizzare la seguente riga
     DCS008 dcs008.xreflector.net
3 - Modificarla come
     
DCS008 87.106.84.53 L
4 - Salvare le modifiche e riavviare

Giuda configurazioni su raspberry Pi

Per modificare l'ip da dinamico a statico:
da terminale:
sudo nano /etc/network/interfaces
Individuiamo la riga eth0, e cambiamo da dhcp a static
Proprio sotto questa riga, incollare le seguenti righe modificando i valori per la vs. rete.
address 192.168.1.xx
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.yy
dns-nameservers 8.8.8.8
poi salvare con ctrl-o e ctrl-x

Per aggiornare lo script KLXUpdater version 1.4 o 1.5 alla 1.6.
script che consente di aggionare le nuove versioni di Jonathan Naylor G4KLX
in particolare Dstar Repeater su immagine di Brian GW6WTK:
da terminale:
wget http://www.westerndstar.co.uk/KLXstuff/klxupdate
sudo install -g bin -o root -m 0775 ./klxupdate "/usr/local/bin"
sudo rm klxupdate

Per modificare i programmi all'avvio:
cd /home/pi/.config/autostart
ed editare i file del tipo start_modem.desktop
togliendo "#" come commento dalle righe che ci interessa abilitare


Aggiornamento del sistema operativo dell’immagine di Brian GW6WTK:
da terminale:  
sudo apt-get update

poi quando ha finito:
sudo apt-get upgrade

 
 

Riavvio o spengimento Raspberry in automatico per il ripetitore D-Star remoto

image_pdfimage_print

E’ facilmente configurabile il riavvio, o lo spegnimento del sistema Raspberry Linux in automatico.

Occorre entrare tramite ssh e dare il comando “sudo -s” per ottenere i privilegi di amministratore, quindi editare il file dei processi programmabili in automatico con il comando “crontab -e” ed aggiungere una riga del tipo:

30 02 * * * /sbin/shutdown -h now

Questo attiva uno spegnimento del vs. sistema tutte le notti alle ore 2.30

Diversamente, se diamo il comando

30 02 * * * /sbin/shutdown -r now

attiveremo un riavvio.

Ricordo che per salvare ed uscire dal file di configurazione crontab occorre premere control-o e control-x

La prima parte della voce descrive quando l’azione deve essere effettuata. Ci sono cinque campi, separati da uno spazio, ognuno dei quali accetta un numero, un asterisco o un testo appropriato. I campi specificano, in ordine (tra parentesi l’abbreviazione standard):

minuti, da 0 a 59 («m»);
ore, da 0 a 23 («h»);
giorno del mese, da 1 a 31 («dom»);
mese, da 1 a 12 («mon»);
giorno della settimana, da 0 (domenica) a 6 (sabato) («dow»).

Il campo del mese e quello del giorno della settimana permettono di usare un’abbreviazione, come ad esempio «jan» per gennaio (in inglese January) o «thu» per giovedì (in inglese Thursday).

Per verificare che il processo sia stato correttamente configurato, digitare “crontab -l” dalla riga di comando.

 
 


                                                              

                                                        Invio messaggi di testo su ripetitore D-Star da web



image_pdfimage_print

Prima di tutto occorre installare il server web APACHE ed il linguaggio di programmazione PHP sul raspberry.
Entrare nel raspberry da console in SSH (usare il software PUTTY sotto windows).


Al prompt dei comandi, per aggiornare il sistema, digitare:

sudo apt-get update
sudo apt-get
upgrade

E confermare l’installazione di eventuali pacchetti.
Poi digitare:

sudo apt-get install apache2 php5 libapache2-mod-php5
e confermare. Infine riavviare il servizio con sudo service apache2 restart


A questo punto, per verificare che il server web sia operativo sul raspberry, da un altro computer digitare, inserendo il numero ip del raspberry, da un browser:


http://xx.xx.xx.xx
Dovreste ottenere una risposta del tipo:

It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

Vuol dire che il servizio è in ascolto correttamente sulla porta 80 (standard http) del raspberry.

Adesso occorre copiare i due file
onair.php
result.php

nella dir /var/www del raspberry (la cartella ove risiedono i file che vengono letti dal server web); potete usare il software Winscp per windows, li copiate nella dir /home/pi (la vostra cartella home) e poi sempre da console entrando nella vs. cartella home potete dare il comando

sudo cp onair.php /var/www
sudo cp result.php /var/www

Per capire la corretta sintassi dei comandi chiamati “da shell linux” fate una ricerca su Google del tipo “comandi shell bash”, ci sono tantissime guide.


Adesso occorre editare il file onair.php con il comando sudo nano onair.php e modificare il testo relativo al ripetitore/hotspot che state usando:

<input type=”text” size=”6″ value=”ir5ucq” maxlength=”6″ name=”ripetitore”>

e anche al modulo che vi interessa mettere di default (la prima riga che inserite in <option> è quella di “default”)

<select name=”modulo”>
<option>B</option>
<option>C</option>
</select>

salvate il file con CTRL-O e CTRL-X

Ora occorre editare il file result.php con il comando sudo nano result.php

La riga che ci interessa è:
$comando = “texttransmit ” . $ripetitore . “_” . $modulo . ” -text ‘”. $testo . “‘”;

 facendo attenzione se il vs. nominativo è di 5 o 6 lettere, altrimenti occorre inserire nella posizione “_” due underscore “__” che equivalgono a due spazi. Lo script fa uso del software di Jonathan G4KLX ed in particolare del programma “texttransmit”. La pagina result.php riceve i valori dalla pagina onair.php e li inserisce in delle variabili, poi viene richiamato il programma “texttransmit” passandogli in maniera opportuna i valori ricevuti. Per inviare messaggi in rf, ovviamente solo in frequenza e non verso la rete network perchè il software è stato così predisposto da Jonathan, richiamate la prima pagina in questa maniera da un qualsiasi browser:

 http://xx.xx.xx.xx/onair.php

Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

messaggi_dstar.zip

 


Visualizzare lo stato del sistema

A seguire l'installazione delle pagine per l'invio dei messaggi in frequenza, vediamo adesso la visualizzazione dello stato del sistema.
Collegarsi sul raspberry con Winscp (sotto Windows) e caricare la pagina sistema.php nella dir del server web /var/www
Il procedimento è analogo a quanto visto in precedenza.
Nota Bene: se rinominate il file sistema.php in index.php (e togliete/rinominate altre pagine eventualmente presenti del tipo index.html) questo sarà caricato di default quando sarà richiamato l'url del web server:

http://xx.xx.xx.xx
diversamente la pagina potrà essere visualizzata con
http://xx.xx.xx.xx/sistema.php

Per rinominare un file, sotto linux, usare il comando "mv", ovvero "sudo mv sistema.php index.php" per cambiare nome in index.php
Ricordo che al posto di xx va messo l'ip del raspberry. Si sta sempre parlando di visualizzazioni nella vs. rete lan interna, altrimenti occorre oltre che mettere un ip statico nel raspberry (cosa che è comunque consigliata fare, vedere su Google "configurazione ip statico raspberry") anche configurare sul router una NAT, ovvero un percorso, una regola che permetta di ricevere le chiamate dall'esterno (WAN) sulla porta 80 e girarle verso l'ip del raspberry.
A volte è chiamata "virtual server".
Dovete inoltre avere o un ip pubblico su internet oppure un dns dinamico configurato (vedere ad esempio duckdns.org) che permetta da fuori entrare sul raspberry digitando il nome dell'host che avete configurato (es. lamiastazioneradio.duckdns.org).
Queste informazioni servono anche per accedere da fuori al servizio SSH (la console), che fa ascolto sulla porta 22 (configurando quindi la relativa NAT).
Caricata la pagina sul web server entrate in console (con Putty ad esempio) nel raspberry e digitate "
sudo raspi-config" per configurare correttamente i vari parametri del computer, quali il suo nome (hostname), la password di accesso, etc.
Il nome inserito, dopo il reboot, sarà visualizzato nella pagina sistema.php poichè questa pagina non fa altro che leggere alcuni valori del raspberry e visualizzarli in html, quindi tutto molto semplice. Potete infine editare (comando "
sudo nano sistema.php") il file sistema.php (o il nome che avete dato) modificando queste righe affinchè compaia ad esempio il vs. nominativo e il link ad una vostra pagina web:

<p><a href="http://www.bencini-informatica.it"><font size="2px" color="#FFFFF">IK5XMK</font></a></p>

Salvare il tutto con CTRL-O e CTRL-X

Alcuni utili comandi da digitare in console
per vedere l'ip del raspberry:
ifconfig
per riavviare il sistema: sudo reboot
per spengere il sistema:
sudo shutdown -h now

Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

status_dstar.zip

 


Visualizzazione della temperatura

La procedura relativa all'invio in frequenza del messaggio della temperatura richiede sia installata nel sistema, oltre al web server apache e al php (anche nella versione cgi con il comando sudo apt-get install php5-cgi libapache2-mod-php5) anche la libreria CURL:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

Controllare che nel file php.ini presente nel vs. sistema linux sia decommentata la riga

;extension=php_curl.dll

togliendo quindi il ";"

Potete facilmente verificare che la libreria curl sia presente nel sistema , basta creare un file tipo info.php (
sudo touch info.php) all'interno di /var/www editarlo (sudo nano info.php) ed inserire al suo interno queste istruzioni:

<?php
echo phpinfo();
?>

Adesso, se digitate
http://xx.xx.xx.xx/info.php vedrete una pagina riassuntiva le caratteristiche del php installato, e nella relativa sezione, se presente, la libreria curl (ricordo che al posto di xx va messo l'ip del raspberry).

La pagina che ci interessa si chiama
cattura.php e va messa sempre sotto /var/www

L'obiettivo è "catturare" dal sito
http://www.cfr.toscana.it/ le informazioni che ci interessano e una volta estrapolate inviarle al programma "texttransmit" che si occuperà di inviarle lato rf.

La pagina è abbastanza commentata  nelle varie linee del codice, i punti ove intervenire sono:

$ch = curl_init("http://www.cfr.toscana.it/");

ovvero l'indirizzo web ove andare a prendere le informazioni, specificare dove andare a posizionarsi per i dati che ci interessano:

$ricerca = "Firenze";

ed infine adattare l'output al proprio sistema radio:

$comando = "texttransmit ir5ubo_b -text '". $msg . "'";

Il tutto è stato pensato per trovare informazioni del tipo (sempre da
cfr.toscana.it)

Firenze 28.2 °C - 1.3 m/s da N 40 %

dove andremo a prendere solo il nome della città ed il valore della temperatura, ovviamente la procedura può essere adattata a pagine diverse, con formati diversi, in tal caso occorre agire nel codice per posizionarsi e leggere solo ciò che ci interessa.

Infine, inserire nel cron (
sudo crontab -e) la periodicità con la quale vogliamo eseguire le letture (ed inviarle in radio), che nel ns. caso è stato messo ogni 15 minuti:

*/15 * * * * /home/pi/temp_fi.sh >/dev/null 2>&1

Per praticità è stato creato un file
temp_fi.sh (con i diritti di esecuzione, sudo chmod 777 temp_fi.sh) che viene eseguito appunto ogni 15 minuti, e che si occupa di lanciare da riga di comando la pagina php in esame:

#!/bin/sh
sudo /usr/bin/php /var/www/cattura.php


Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

temperatura_dstar.zip

In aggiunta al mio precedente script presente sul sito, da leggere per le varie configurazioni di base e per l’avvio in automatico della trasmissione dei valori rilevati, integro quanto inviatoci dal collega Andrea IZ0XBM, che ringrazio.

Ricordo che tutto deve essere caricato sotto /var/www

Queste le note del collega:

Per avere il beacon della temperatura della città voluta, bisogna modificare prima il file index.php nella cartella meteo.
Alla riga 55 <?php getMeteoTargetweb(“http://weather.yahooapis.com/forecastrss?w=781739&u=c”); ?> bisogna cambiare le sei cifre, quelle di esempio qui sono per la città di Basilea 781739.
Per trovare quella desiderata andare sul sito https://weather.yahoo.com/ nel campo ricerca inserire la città e dare invio.
Nel campo URL ci sarà la risposta voluta, copiare solo le sei cifre che compongono la url ed incollarla nella pagina index.php alla riga 55.

Fatto questo, salvare e aprire la pagina cattura2.php. (NdR da ik5xmk – era cattura.php)
Alla riga 5 modificare la stringa con indirizzo dns associato alla raspberry:
$ch = curl_init(“http://indirizzo dns della raspberry/meteo/index.php”);

(NdR da ik5xmk: mettere “localhost” ove indicato “indirizzo dns della raspberry”)

alla riga sei nel campo $ricerca inserire la città cosi come viene vista dalla pagina Yahoo. In questo caso Basel.

Ciao
Andrea IZ0XBM

Questo lo script che chiameremo cattura2.php, dove presente page.txt ho sostituito page2.txt per far coabitare entrambi gli script qualora presenti sul sistema (era il nostro caso…). ik5xmk

Sono indicati di seguito i dati di Firenze, per ogni città va obbligatoriamente rivista la formattazione della stringa perchè i nomi non hanno la stessa lunghezza, quindi occorre agire sul codice aumentando o diminuendo i valori che “catturano” il testo dentro il file page2 …

*** inizio script, iniziare a copiare da <?

<?php

//cattura la pagina e la registra in un file di testo [page2.txt]

$ch = curl_init(“http://localhost/meteo/index.php”);
$fp = fopen(“page2.txt”, “w”);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

//ricerca nel file quello che ci interessa
//togliendo i caratteri html e quant’altro di non necessario

$ricerca = “Florence”;
//$ricerca1 = “Temperatura”;
$haystack = file(‘page2.txt’);
for ($i=0;$i<count($haystack);$i++)
{
//ogni riga del file e’ un record e facciamo un controllo per vedere
//se quel record contiene la parola cercata
if (strstr($haystack[$i], $ricerca))
{
//ok e’ stata trovata allora gestiscila
//toglie i caratteri html
$risultato[$i]= strip_tags($haystack[$i]);
//ricerca nuovamente nel record trovato per posizionarsi alla parola
$risultato[$i]= strstr($risultato[$i], $ricerca);
//preleva solo caratteri fino alla C (+1 per comprendere la C)
//se metto -1 tolgo oltra alla C anche il segno del grado che non riconosce l’rtx
$risultato[$i]= substr($risultato[$i],0,strpos($risultato[$i], “C”) -1);
//adesso lo formatto coma piace a roberto
$primaparte=substr($risultato[$i],0,7);
$secondaparte=substr($risultato[$i],7,strlen($risultato[$i])-strlen($primaparte));
$msg = $primaparte . “: ” . $secondaparte . “gradi”;
//invia in frequenza
$comando = “texttransmit ir5ubo_b -text ‘”. $msg . “‘”;
$output = shell_exec(“$comando”);

}
}

?>

*** fine script a ?>

Questo il file da “unzippare” sul nostro raspberry che contiene la pagina index.php e la cartella meteo:

 

 


Utilità di sistema

Abbiamo constatato che il sistema si comporta in maniera ottimale "ripulendo" la ram una volta al giorno, eseguendo lo script ram-free.sh (dare sempre i permessi di esecuzione) posizionato sotto /usr/bin :

sync
echo 3 > /proc/sys/vm/drop_caches

e nel cron (sudo crontab -e):

0 5 * * * sudo ram-free.sh

Ricordo l'importanza di utilizzare il software raspi-config (
sudo raspi-config) per i vari settaggi del sistema, dall'aumento della velocità del processore all'internazionalizzazione della lingua, al nome del sistema, etc.

Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.


 

                                                  

Il nostro RasPi ci avvisa se il software dstarrepeater non è operativo

 

image_pdfimage_print

Questo breve testo illustra i passaggi per le configurazioni necessarie affinchè il nostro hotspot/ripetitore gestito dal raspberry pc possa inviarci una mail allorchè il software di Jonathan “dstarrepeater” non sia un funzione. Il tutto è facilmente modificabile e adattabile anche per altre esigenze, questo è solo un esempio di base per stimolo ad altre soluzioni. Nel testo si fa riferimento al possesso di un account di posta elettronica su Gmail. Ulteriori approfondimenti sulle configurazioni di SSMTP per linux possono essere facilmente trovati su Google.

Per prima cosa occorre installare a bordo nel nostro hotspot il servizio SSMTP, procediamo come di consueto ai vari comandi:

sudo -s

apt-get update

apt-get install ssmtp

apt-get install mailutils

editiamo ora il file di configurazione

nano /etc/ssmtp/ssmtp.conf

e procediamo con l’inserimento dei nostri parametri (account su Gmail Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.), ci sono i commenti nel file molto esplicativi

root=ik5xmk
mailhub=smtp.gmail.com:587
hostname=Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
AuthUser=Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
AuthPass=lamiapassword
UseSTARTTLS=YES

opzionalmente possiamo effettuare questa configurazione se vogliamo che le mail inviate siano mostrate con il nostro dominio anzichè con @gmail.com

rewriteDomain=your.domain

FromLineOverride=YES

adesso passiamo ad editare il file che contiene gli alias aggiungendo una riga per ogni utente abilitato all’invio di mail

nano /etc/ssmtp/revaliases

questa la riga da inserire per abilitare root, il procedimento è identico per ogni utente

root:Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:smtp.gmail.com:587

(quanto sopra riportato è da documentazione ufficiale, nel mio caso per farlo funzionare ho inserito “pi:root”)

e infine salviamo e attiviamo i permessi sul file editato

chmod 774 /etc/ssmtp/ssmtp.conf

e proviamo a mandare una mail

echo “Testo della mail nel corpo della stessa” | mail -s “Oggetto della mail” Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Ora rimane da creare un piccolo script di sistema che controlli se un processo è attivo, nel nostro caso il programma “dstarrepeater”, e in caso negativo invii una mail (ma potrebbe anche riavviare il raspberry!). Lo script lo chiamiamo “ck.sh”, lo mettiamo sotto /home/pi e abilitiamo i permessi di avvio con il comando opportuno:

 nano /home/pi/ck.sh

inseriamo il testo che segue modificando l’indirizzo di posta elettronica con quello del destinatario che riceve gli avvisi

#!/bin/bash

if $(ps ax | grep dstarrepeater | grep -v grep > /dev/null ) ;
then
        exit ;
else
        echo “Attenzione: il programma dstarrepeater non è in funzione sul tuo hotspot…” | mail -s “Comunicazione da hotspot D-Star ” Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. ;
        logger “inviata mail di avvertimento”;

#togli il # dalla riga seguente se vuoi riavviare il rasberry

#/sbin/shutdonw -r now ;
fi

salviamo e abilitiamo in esecuzione lo script creato

chmod +x /home/pi/ck.sh

Come ultimo passaggio automatiziamo il controllo, magari alle 1 di notte

crontab -e

ed aggiungiamo questa riga, salviamo e …

0 1 * * * /home/pi/ck.sh >/dev/null 2>&1

riavviamo il servizio

service cron restart

Non mi rimane che augurare buone prove, e se volete farmi sapere di modifiche o altro, il mio indirizzo mail è Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

David


 

 

     

                                              Se il nostro hotspot D-Star cambia IP ci manda una mail

 
image_pdfimage_print

Questo script ci avvisa se il nostro IP pubblico è cambiato inviandoci una mail. E’ utile, ad esempio, se usate il vostro sistema connesso a determinati server o servizi e vengono autorizzati tramite firewall, dovreste continuamente controllare se la vs. ADSL di casa, che generalmente non ha un IP statico,  ha cambiato indirizzo, in questo caso ci pensa il RasPi ad avvisarvi. Per l’installazione del servizio di invio mail sulla versione “raspian” come per inserire lo script in automatico vi rimando all’articolo:

Il nostro RasPi ci avvisa se il software dstarrepeater non è operativo

RaspberryPI_Email

Questo breve testo illustra i passaggi per le configurazioni necessarie affinchè il nostro hotspot/ripetitore gestito dal raspberry pc possa inviarci una mail allorchè il software di Jonathan “dstarrepeater” non sia un funzione. Il tutto è facilmente modificabile e adattabile anche per altre esigenze, questo è solo un esempio di base per stimolo ad altre soluzioni. Read more


 

Per prima cosa installare e configurare SSMTP come indicato, poi creare un file “vuoto” nella home directory dell’utente pi con il comando

sudo -s

touch /home/pi/ip

editare lo script

nano /home/pi/controlla_ip.sh

ed inserire le seguenti linee di codice

#!/bin/bash

#il file IP deve esistere, crearlo la prima volta con “touch IP”
IP1=$(cat /home/pi/ip)
IP2=$(lynx -dump http://31.193.24.204/ip.php | grep “IP:”)

#confronta se l’attuale IP e’ uguale a quello presente nel file IP
if [ “$IP1″ = “$IP2″ ]; then
#non e’ variato, non facciamo nulla
echo “”

else

#e’ variato, memorizza il nuovo IP e manda la mail
echo “$IP2″ > /home/pi/ip
cat /home/pi/ip | mail -s “My NEW IP address” Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
#registra l’evento nel sistema
logger “Variato indirizzo IP”

fi

modificare l’indirizzo di posta elettronica con il vostro, salvare e rendere lo script eseguibile

chmod +x /home/pi/controlla_ip.sh

se sul vs. sistema non è presente “lynx” installarlo con il comando

apt-get install lynx

fate una prova eseguendo lo scritp con il comando

sh /home/pi/controlla_ip.sh

vi dovrebbe arrivare una mail con l’indirizzo pubblico attuale; a questo punto inserite il controllo in automatico nel file cron per dare, ad esempio, una esecuzione ogni 30 minuti. Buone prove.

 

                                          

                                                 Comandi UR REBOOT STOP e RECORD sul software di Jonathan

image_pdfimage_print

Comandi UR REBOOT e STOP

Per utilizzare questi 2 comandi, il REBOOT riavvia il raspberry e STOP spenge il raspberry, dobbiamo configurare la nostra radio in questo modo ovvero nel quadro control 1 del pannello di configurazione dovete mettere:

RPT1 callsign: RPTRCTDL
RPT2 callsign: XXXXXX G  le x sono il vostro nominativo o quello del ponte

Naturalmente sul campo RPT1 ci potete mettere un vostro comando “segreto”onde evitare spengimenti o riavvi del vostro raspberry da parte di altri utenti.

La vostra radio dovrà avere una memoria configurata con RPT1 comando “segreto” e RPT2 vostro nominativo G
nel campo UR al posto del CQCQCQ dovete inserire il comando REBOOT se dovete riavviare il raspberry o STOP per spengere il vostro raspberry, ricordatevi se date lo STOP il vostro raspberry non si riaccenderà.

Il comando Annuncio è disabilitato, basta abilitare e selezionare il tempo, di default è settato a 8 minuti; per registrare il messaggio di benvenuto o qualsiasi alto annuncio la procedura è questa:

Per registrare impostare sulla tua radio RPT1:RECORD A e RPT2:RECORD G sul campo UR:CQCQCQ
a questo punto premete il ptt e cominciate a registrare, il tempo massimo non l’ho ancora verificato ma credo oltre un minuto poi vedremo.

Per cancellare impostare sulla radio RPT1:DELETE A e RPT2:DELETE G sul campo UR:CQCQCQ e premere il ptt, così facendo l’annuncio viene cancellato.

NOTA BENE:
Questi comandi rispettano lo standard “ripetitore”, per funzionare la vostra frequenza memorizzata del vostro Hotspot dovà avere Shift impostato +/- e offset a 0 (ZERO)

Buone prove Roberto iz5ilh

 

                                                             

IrcDDB remote applicazione per android

image_pdfimage_print

Con questa applicazione è possibile controllare il software di gateway ircDDB di Jonathan Naylor G4KLX in remoto attraverso un dispositivo Android.

È possibile collegare e scollegare  il proprio gateway di ircDDB ad ogni reflector D-Star o DCS direttamente dal proprio smartphone e tablet senza l’utilizzo del ricetrasmettitore.

Per scaricare l’applicazione seguire il link:

https://play.google.com/store/apps/details?id=com.pd7l.v2ircddbremote

È possibile trovare una breve manuale sul seguente sito:

http://pd7l.wordpress.com/ircddbremote/

 

                              

Installazione OPENVPN per la gestione degli hotspot D-Star connessi su rete 3G – PARTE 1 – SERVER

 

image_pdfimage_print

Premessa: la necessità di implementare questo sistema è nata dal voler connettere i nostri ponti ripetitori e hotspot d-star ubicati in postazioni remote e connessi ad internet tramite rete cellulare 3G. Non disponendo di IP pubblico statico e, soprattutto, non potendo gestire NAT sui router 3G connessi ai nostri raspberry pi (o problemi con operatori di telefonia mobile che non permettono questo tipo di connessione essendo in qualche modo bloccata), abbiamo pensato all’attivazione di una soluzione “a stella”, ovvero ogni sistema remoto connesso ad un server centrale, e da qui la relativa interconnessione anche tra i vari client. Ringrazio Matteo IZ5WGA che per primo ci ha fatto provare questa configurazione ospitandoci per dei test su di un suo server e dalla guida da lui preparata ho preso spunti e frammenti di testo. Mi scuso per eventuali errori o mancanze, ogni segnalazione è ben accetta all’indirizzo mail Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Una VPN  è una rete privata virtuale: la sua implementazione consente ad apparati, appartenenti a segmenti di rete diversi, di vedersi l’un l’altro come se appartenessero ad un medesimo segmento. La configurazione denominata “road warrior” consiste nel predisporre un server centrale al quale si connetteranno i client e che funzionerà da centro stella della rete. Tale server avrà unicamente la funzione di “collante”: suo requisito è avere la raggiungibilità mediante IP pubblico.

OpenVPN è un software rilasciato con licenza GPL e ha lo scopo di creare tunnel cifrati – mediante Openssl – in modalità punto-punto tra apparati di rete remoti. L’autenticazione che utilizzeremo è basata sullo scambio di certificati digitali. Su ogni macchina che effettuerà l’autenticazione (server incluso) verrà creata un’interfaccia virtuale che assumerà uno degli indirizzi IP disponibili nel pool specificato nei file di configurazione del server (tale pool sarà comunque una classe privata); quando una macchina appartenente alla VPN vorrà comunicare con un’altra anch’ essa appartenente, le richieste verranno automaticamente girate attraverso il canale privato, e l’instradamento sarà effettuato sfruttando l’indirizzo così ottenuto. Nei sistemi unix like questo è possibie grazie al load di un modulo chiamato tun (nei raspberry viene caricato di default); nei sistemi Microsoft Windows verrà invece installato un Win32Tap Driver. Si capisce come, riducendo ogni macchina remota ad essere un componente di una rete privata virtuale, il nat introdotto dai provider non sia un problema.

Il server si dovrà occupare di creare i certificati da distribuire agli apparati remoti, quindi la configurazione non si limita alla mera stesura di un file di configurazione, ma anche alla creazione del certificato CA, al Diffie Hellman e alle chiavi. Si presuppone che i comandi siano tutti impartiti da root e che siamo su un server Debian linux, oppure un raspberry. Nel nostro caso abbiamo creato un Server OpenVpn per il Gruppo Radio Firenze che opera su Raspberry Pi.

Procediamo con i comandi:

per prima cosa diventiamo amministratori (root) ed aggiorniamo il sistema

sudo -s

apt-get update

apt-get upgrade

ed installiamo quanto necessario

apt-get install openvpn -y

apt-get install openssl -y

copiamo adesso quanto necessario nella dir di configurazione (che è /etc/openvpn), attenzione allo spazio dopo -r e dopo rsa

cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn

cd /etc/openvpn/easy-rsa/2.0

possiamo personalizzare il contenuto del file “vars”, come ben commentato al suo interno, personalmente ho lasciato tutto di default

nano vars

e procediamo con la creazione dei certificati (certificato CA, DH, chiave e certificato per il server e per ogni client)

source ./vars

./clean-all

./build-ca

./build-key-server server

importante, rispondere affermativamente (Y) alle richieste: Sign the certificate? [y/n] e 1 out of 1 certificate requests certified, commit? [y/n]

procediamo adesso con la creazione dei certificati dei client che si collegheranno al nostro server, uno per ogni sistema

./build-key client1

./build-key client2

… etc.

ed infine

./build-dh

se occorre successivamente aggiungere altri client, possiamo farlo tranquillamente ripetendo questi passaggi

source ./vars

./build-key clientxx

./build-key clientxxx

… etc.

Passiamo quindi alla creazione del file di configurazione vero e proprio, cioè quello che decide come i client si autenticano e crea la VPN. Copiamo i file di certifcato del server  in /etc/openvpn (attenzione alla sintassi, es. dopo ca.crt c’è uno spazio e poi un punto)

cd /etc/openvpn
cp easy-rsa/2.0/keys/ca.crt  .
cp easy-rsa/2.0/keys/server.crt .
cp easy-rsa/2 .0/keys/server.key .

e creiamo il file di configurazione. Per OpenVPN qualsiasi file con estensione .conf all’interno /etc/openvpn è un file di configurazione. Questo per dire che si possono tirare su più VPN contemporaneamente

nano server.conf

ecco il contenuto del mio file di configurazione, con indicata la rete privata 10.8.0.0 che utilizzeremo per l’interconnessione con i client, il server prenderà l’ip 10.8.0.1 (per ulteriori spiegazioni sui vari comandi rimando alla documentazione presente su https://openvpn.net/index.php/open-source/documentation/howto.html )

port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-to-client
keepalive 600 1800
verb 3
status /var/log/openvpn-status.log
persist-key
persist-tun
reneg-sec 3600
user nobody
group nogroup

bene, adesso occorre fare gli ultimi due passaggi, ovvero impostare l’avvio del servizio in automatico

service openvpn start

che, nel caso riportasse un errore (failed) probabilmente è da imputare ad una errata scrittura del file di configurazione ovvero i comandi entro contenuti, e, importante, girare sul router la NAT con porta 1194 TCP verso l’ip del nostro server

Il server è pronto, non rimane altro che prendere i seguenti file presenti in /etc/openvpn/easy-rsa/2.0/keys (con winscp se stiamo usando windows) e creare dei pacchetti di configurazione da copiare nei client (sotto /etc/openvpn se linux o nella dir conf del programma client sotto windows)

 ca.crt
 client1.key
 client1.crt

e aggiungiamo anche il file di configurazione

nano client1.conf

con le seguenti righe, modificando con l’ip pubblico statico del server dove indicato

client
remote IP_PUBBLICO_DEL_SERVER 1194
dev tun
proto tcp
ca ca.crt
cert client1.crt
key client1.key

e, con appunto i file ca.crt client1.key client1.crt client1.conf creiamo il file compattato linuxClient.zip stessa cosa per il file clientWindows.zip dove l’unica differenza sarà l’estensione del file di configurazione, ovvero “.ovpn” anzichè “.conf” Per ogni client dovremo preparare il relativo file compattato, a seconda del sistema operativo utilizzato.

La seconda parte di questa guida riporta l’installazione “lato client” della nostra rete privata virtuale.

 

Installazione OPENVPN per la gestione degli hotspot D-Star connessi su rete 3G – PARTE 2 – CLIENT

 

image_pdfimage_print

Vediamo le configurazioni necessarie sia sul pc con windows (che sarà il ns. pc dal quale lanceremo la connessione per effettuare la manutenzione al nostro hotspot D-Star) che sul Raspberry Pi, ovvero il nostro hotspot collegato alla rete 3G magari situato lontano da casa.

Riprendiamo in esame i due file (clientWindows.zip e clientLinux.zip) che abbiamo preparato sul nostro server openvpn; questi file contengono i certificati che abbiamo creato precedentemente e i file di configurazione che ricordo hanno estensione .ovpn sotto windows e .conf sotto linux.

Procediamo con la parte WINDOWS.

Come primo passo andare sul sito di openvpn e scaricare il software client per windows relativo alla versione del sistema operativo in uso:

https://openvpn.net/index.php/open-source/downloads.html

Personalmente ho fatto le prove con la versione per XP a 32 bit, funziona bene anche su W7.

Eseguire l’installazione e procedere con quanto proposto di default, alla fine comparirà una icona sulla barra in basso a destra (dove c’è l’orologio). Facendo click con il bottone del mouse su tale icona compare il menu di gestione. Prima di altre operazioni occorre scompattare il file ricevuto (clientWindows.zip) nella dir del programma relativo alla configurazione, dovrebbe essere:

C:\Program Files (x86)\OpenVPN\config

Nota bene: ricordarsi di avviare il programma con i privilegi di amministratore se abbiamo scaricato la versione per windows 7 o superiore, altrimenti si connette alla rete ma non permette di fare nessuna operazione (grazie Maurizio IZ5CMC).

Possiamo ora eseguire la connessione e riceveremo dal server vpn un indirizzo IP (10.8.0.x) relativo alla nostra macchina client windows. Per una conferma di buon esito possiamo provare un ping al server, ovvero all’indirizzo 10.8.0.1

Passiamo a LINUX, qualche passaggio in più ma nulla di impossibile.
 
Digitare da linea di comando i soliti “sudo -s” e “apt-get update” e “apt-get upgrade” per avere tutto aggiornato. Poi dare i comandi, sempre come superuser, “apt-get install openvpn” e “apt-get install openssl“.
 
Adesso dobbiamo posizionarci sotto  “/etc/openvpn” e depositarci il contenuto del file clientLinux.zip
 
Per praticità mi sono scompattato il file in una dir sotto windows, poi con il programma WINSCP ho copiato i file da windows nella dir di default del raspberry che è “/home/pi” e da lì con il comando “cp nomefile.est /etc/openvpn” ho copiato il tutto nella dir “/etc/openvpn” (nomefile.est è ad esempio client.conf, e a seguire gli altri file dei certificati).
 
Bene, a questo punto nel percorso /etc/openvpn devono essere presenti i 3 file di certificato  e il nostro file client.conf, niente altro è richiesto.
 
Sempre come superuser dare il comando “service openvpn restart” e in automatico verrà abilitata la connessione al server vpn, in questo modo anche riavviando il raspberry il client si riconnetterà al server da se
 
Proviamo a fare il classico ping al server (10.8.0.1) e vediamo se risponde.
 
Se OK vediamo con “ifconfig” che IP abbiamo ricevuto, lo si capisce analizzando la scheda di rete che viene mostrata con nome “tun”.
 
Ci siamo, torniamo al pc windows e con il software putty proviamo a connettere l’hotspot in ssh utilizzando l’indirizzo 10.8.0.x che abbiamo ricevuto sul raspberry.

                            

Raspberry, Arduino e DVmega by IZ5YBI

Arduino_Uno
image_pdfimage_print

In questo post voglio spiegare come leggere i dati seriali di Arduino da Raspberry e inviarli per mail tramite un comando remoto alla DVmega con il software di Jonathan. Capita che il nostro hotspot sia collegato ad una batteria che lo alimenta magari usandolo come ripetitore o dove non si ha la possibilità di collegarlo alla rete domestica, con questo esempio andremo a leggere il voltaggio della batteria con Arduino e ci faremo mandare un email da raspberry solo premendo il microfono della nostra radio…Questo è un esempio, le applicazioni sono infinite, l’unico limite è la fantasia…

Partiamo con installare IDE di Arduino:

sudo apt-get install arduino

Installiamo il modulo per leggere i dati seriali di Arduino:

sudo apt-get install python-serial

Adesso possiamo connettere Arduino al nostro Raspberry e andiamo a scrivere il nostro sketch per leggere il livello della batteria.

Apriamo IDE di arduino, lo troviamo sotto Eletronics e scriviamo il programma

arduino1

In questo caso ho collegato una batteria da 12v e ho settato sullo sketch il voltaggio massimo della batteria a 13.33v questo valore va regolato di poco più o meno per rendere la lettura del sensore uguale a quella del tester o multimetro :)

ATTENZIONE: la porta analogica di arduino legge valori di tensione da 0 a 5 volt quindi bisogna usare un partitore di tensione. In questo caso ho usato una resistenza da R1 77kΩ e una da R2 46kΩ L’importante è tenere conto del voltaggio massimo della batteria.

arduino2

OK fatto questo andiamo a scrivere un programmino che legga i dati della porta seriale, bisogna sapere la porta seriale che usa arduino per comunicare con raspberry, nel mio caso è /dev/ttyACM0 , la troviamo scritta in basso a destra sull’IDE di arduino.

Apriamo Leafpad:

import serial
ser = serial.Serial(‘/dev/ttyACM0′,9600)
for count in range(1, 5):
    message = ser.readline()
message = ser.readline()
print message

salviamolo su desktop col nome serialdata.py

(NdR il suffisso “py” sta per Python, linguaggio presente sul raspberry di default)

A questo punto bisogna configurare raspberry per mandare le mail, vi rimando al post di ik5xmk intitolato “Il nostro RasPi ci avvisa se il software dstarrepeater non è operativo” con un dominio @gmail.com

Ora bisogna far si che raspberry legga i dati seriali e le invii al nostro indirizzo di posta, scrivendo questo altro programmino sempre con Leafpad

#!/bin/bash
cd /home/pi/Desktop
python serialdata.py | mail -s “livello batteria” Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

salvatelo sul desktop come levelbat.sh

(NdR abilitare i permessi di esecuzione + x al file sopraindicato)

Bene ora apriamo D-Star Config, andiamo su control1 e abilitiamolo, su RPT1 scriviamo RPTRCTDL e su RPT2 il callsign del nodo con G rispettando gli 8 spazi

arduino3

Poi andate su control2 e inserite su un comand libero LEVELBAT, e accanto il comando che va a leggere il nostro ultimo programmino

sudo bash /home/pi/Desktop/levelbat.sh

arduino4

Salvate e riavviate d-star repeater e ircddbgateway. Adesso inviamo il comando dalla nostra radio, per fare questo bisogna modificare il campo UR e RPT1 che andranno messi così:

UR:LEVELBAT
RPT1:RPTRCTDL
RPT2:callsign del nodo in gateway

arduino5

Il gioco è fatto, premete il microfono e dopo qualche secondo dovrebbe arrivare l’email. Saluti e buone prove!!!!
Federico IZ5YBI



server xreflector

Realiziamo un XReflector con il Raspberry [parte 1]

image_pdfimage_print

Quando parliamo dei sistemi D-Star si arriva inevitabilmente a discorrere di DCS, XREFLECTOR e REFLECTOR, software che permettono l’interconnessione di più stazioni radio fra loro. Ognuno di questi software ha proprie caratteristiche di gestione, ma tutti sono privi di “porte radio” ed il loro compito è quello di ricevere un flusso dati (la nostra voce digitalizzata) da una stazione radio connessa ad internet (tramite un software “gateway” o “ircddbgateway“) e ritrasmetterlo simultaneamente e tutte le stazioni radio che in quel preciso momento sono collegate al sistema. Si assiste quindi ad uno scambio di dati fra i vari ponti ripetitori, hotspot, dongle, etc. connessi, ma “in frequenza” si uscirà solo grazie alle singole stazioni che riceveranno tali flussi di dati che con il software opportuno (si parla di “dstarrepeater“) e a schede tipo DVRPTR, Satoshi, DVMega, etc. effettueranno la trasmissione su apparati ricetrasmettitori.

 dxrfd è il software (Open Source G2 DSTAR Reflector, ovvero XRF reflector) usato per creare un “reflector D-Star”. Esso “gira” su qualsiasi sistema Linux e comunica con i vari gateway e ripetitori oltre che hotspot, dvdongle, dvap, etc. Occorre eseguire un port-forwarding verso l’ip del server della porta 30001 (udp) sul router per permettere la connessione ai ponti ripetitori (ricorda che il reflector riceve la connessione e NON la effettua) e la porta 20001 (udp) per i dongle e hotspot dei singoli utenti. E’ molto importante avere una connettività ADSL con banda garantita sufficiente e un indirizzo IP pubblico statico (non obbligatorio, ma consigliato). Il software reflector non può funzionare su di un sistema ove già è presente un software gateway, occorre destinare un server ed una linea (ip) dedicati.

Vediamo come compilare il software dxrfd sul nostro raspberry (distro raspian):

diventiamo amministratori e creiamo una directory vuota sotto root

sudo -s

mkdir /root/dxrfd

cd /root/dxrfd

copiamoci il nostro file dxrfd.zip (usando winscp) e scompattiamoci dentro il suo contenuto

 

 
xrfd versione 3.11
 
 
 

 

unzip dxrfd.zip

adesso aggiorniamo il sistema e installiamo il compilatore

apt-get update

apt-get install gcc

apt-get install c++

ora occorre eseguire i seguenti comandi dentro la nostra dir

chmod +x *.doit

./dxrfd.doit

./xrf_lh.doit

dovremo avere a quest punto i nostri file binari

dxrfd

xrf_lh

Per configurare il nostro nuovo reflector occorre editare il file /root/dxrfd/dxrfd.cfg  e inserire gli opportuni valori

nano /root/dxrfd/dxrfd.cfg

Una lista degli attuali XReflector è possibile visionarla al seguente link oppure nel software di Jonathan G4KLX nel file DExtra_Hosts.txt sotto /usr/local/etc

Questi i parametri inseriti nel nostro sistema:

#inserire il numero del vostro reflector in questa forma XRF123

OWNER=XRF077

#inserire il nominativo di chi amministra il sistema

ADMIN=IK5XMK

#il reflector ascolterà su ogni rete

LISTEN_IP=0.0.0.0

#i ripetitori si connetteranno su questa porta

LISTEN_PORT=30001

#questa invece la porta per gestire i comandi da shell

COMMAND_PORT=30002

#numero massimo di connessioni di ripetitori

MAX_USERS=25

#abilita il log dei qso dettagliati

QSO_DETAILS=N

USERS=/root/dxrfd/xrfs.txt

BLOCKS=/root/dxrfd/blocks.txt

#numero massimo di dongle, hotspot, etc.

MAX_OTHER_USERS=20

 

Per eseguire il nostro nuovo XReflector consiglio di creare un file start.sh (dentro la dir /root/dxrfd con i diritti di esecuzione +x) contenente il seguente comando:

/root/dxrfd/dxrfd[spazio] /root/dxrfd/dxrfd.cfg [spazio] /var/log/dxrfd.log &

e lanciarlo con sh ./start.sh

Potrà essere automatizzato l’avvio inserendo nel file /etc/rc.local tale comando.

Nella seconda parte vedremo come controllare il reflector digitando dei comandi dalla shell, e come preparare una pagina di status visionabile da internet.

 
 

Realiziamo un XReflector con il Raspberry [parte 2]


image_pdfimage_print

Il server reflector dxrfd può essere controllato direttamente dalla shell di Linux usando il comando netcat. Il server è in ascolto sulla porta di default 30002 come indicato nel file di configurazione dxrfd.cfg Inviare comandi è molto semplice, occorre prima di tutto eseguire netcat con questa sintassi: nc -u 127.0.0.1 30002 (nota bene: usiamo l’ip localhost 127.0.0.1 poichè nel file di configurazione abbiamo indicato di prestare ascolto su tutte le porte – 0.0.0.0 – ). Dopodichè il sistema si metterà in “ascolto” dei nostri comandi, ovvero attenderà che venga digitato uno specifico sub-comando tra i seguenti:

ComandoDescrizione
pu visualizza gli "users" connessi
mu zittisce gli users
uu riabilita il traffico voce agli users
pl visualizza le connessioni
sh spenge il servizio
pb visualizza i nominativi bloccati
ab NOMINATIVO blocca al traffico il NOMINATIVO
rb NOMINATIVO rimuove il blocco al NOMINATIVO
mc NOMINATIVO zittisce il NOMINATIVO
uc NOMINATIVO riabilita la voce al NOMINATIVO
qsoy attiva i qso dettagliati
qson disattiva i qso dettagliati
pv visualizza la versione del software in uso

Facciamo un esempio:

nc -u 127.0.0.1 30002
pu

il sistema potrà visualizzare le stazioni radio connesse:

IK5XMK ,151.40.152.185-20002,DONGLE(DV019999),122714,05:06:08
IZ5CMC H,2.227.11.230-20002,DONGLE(DV019999),122714,00:36:11

quanto mostrato indica che ci sono due stazioni radio connesse, in questo caso hotspot,  il numero IP in arrivo da ogni hotspot, e quando si sono collegate.

per uscire dal comando netcat digitare control-c

 Vi è un file XRF_STATUS.txt che mostra tutti i collegamenti dei 5 moduli del reflector, se vi sono connessioni.

Vediamo ora come visualizzare la pagina di stato, ovvero le connessioni in atto, del nostro reflector sul  sito web presente sul raspberry. Rimando alla lettura di miei precedenti post per quanto riguarda l’installazione del web server apache sul raspberry.

Per prima cosa creare la directory g2_ircddb nella dir del server web e copiarci dentro due file dalla dir del programma:

mkdir /var/www/g2_ircddb

cp /root/dxrfd/mm_spacer.gif /var/www/g2_ircddb

cp /root/dxrfd/mm_training.css /var/www/g2_ircddb

Ora automatiziamo il processo di creazione della pagina di stato, che avviene mediante l’utilizzo del programma xrf_lh, inserendo nel file crontab (con il comando crontab -e) la seguente azione (che dovrete personalizzare):

*/2 * * * * /root/dxrfd/xrf_lh IK5XMK XRF077 “Gruppo Radio Firenze – Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.” 127.0.0.1 >/var/www/XRF077_status.html 2>/dev/null

ovvero ogni 2 minuti esegue il programma xrf_lh creando la pagina di stato che si chiama XRF077_status.html (può avere qualsiasi nome). Per vedere un esempio potete collegarvi alla nostra pagina di stato XRF077 tramite questo link.

statoXRF077

Grazie a Scott KI4LKF che ha creato il software

micro_sd

Immagine ISO su Debian 8 “jessie” by GW6WTK Brian

image_pdfimage_print

Brian ha preparato una immagine, sempre con le ultime versioni del software di Jonathan, con la nuova versione del sistema operativo “jessie” (Debian 8), di seguito la sua comunicazione in inglese sul gruppo Yahoo ed il link al suo sito per il download:

There are several changes in the background of this image that will make it easier to develop in the future.The image is based on a beta version of Debian 8 (jessie) for the R-Pi, in appearance it is similar to the 24-12-14 release of Raspian Wheezy. One of the main reasons for adoptng this O/S is the fact that this version of Debian uses ‘systemd’ like the original ‘experimental’ Arch (and other modern O/Ss) version with the ‘widget’, the use of systemd makes the startup widget more reliable, flexible and slicker. If you are currently happy with your system then there is nothing functionally exciting enough here to encourage changing to this image, however if your curious…..As always, thanks to all involved with software development contained on this image.

This will fit on most 4Gb cards, but an 8Gb or larger class 10 is recommended.

REMEMBER: there seems to be hackers about so change you system/ssh password ASAP.

Open terminal

Type ‘passwd’ then you will be prompted for your current (Unix) password, original is ‘raspberry’

Then enter you new password twice and MAKE A NOTE OF IT
To change VNC password

Open terminal

type ‘sudo x11vnc -storepasswd’

then you will be prompted for your current VNC password, original is ‘raspberry’

Then enter you new password twice and MAKE A NOTE OF
Or; use the icons on the new desktop.

Happy new year to all

Regards

Brian

gw6wtk

LINK ALLA PAGINA DI DOWNLOAD


 

 
dvrptr

Come controllare se la scheda DVRPTR viene vista da Linux

image_pdfimage_print

Mi è capitato di trovare “impallata” la scheda DVRPTR sul mio hotspot remoto, ovvero non venisse “trovata” da Linux. Per verificare se il sistema operativo la rileva è possibile eseguire questi comandi da shell:

lsusb

e l’output dovrebbe essere simile a questo, ho evidenziato la riga relativa alla scheda

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 03eb:2307 Atmel Corp.

oppure, anche in questa maniera

dmesg | grep ”DV-RPTR*”

con un output del tipo:

[ 3.534237] usb 1-1.3: Product: DV-RPTR CDC

Se ciò non avviene occorre “resettare” la scheda togliendo l’alimentazione, come ho indicato in un precedente post.

 
resize

Se non funziona il “resize” del comando raspi-config …

image_pdfimage_print

Mi è capitato (in verità sulla Debian 8 “jessie” per Raspberry) che dopo aver caricato sulla memoria SD l’immagine di Brian non funzionasse il comando “resize” attivato dall’utility raspi-config per “ridimensionare” la partizione a 8 GB della mia scheda di memoria (l’immagine è preparata per 4 GB). Quindi mi sono trovato una occupazione del 98% (comando “df”) senza poter far vedere al sistema tutto lo spazio disponibile sulla scheda.

Allora la soluzione è quella di procedere “a manina” per intervenire sulla tabella delle partizioni … procedere con cura e attenzione, e magari prima fatevi una copia della SD, non si sa mai ;-)

Eseguire fdisk

sudo fdisk /dev/mmcblk0

procediamo con cancellare le partizioni  con “d” e crearne una nuova  con “n”, si vede le esistenti con “p”, in questo ordine:


d, 3 per cancellare la “swap partition” se presente
d, 2 per cancellare la “main partition”

n, p, 2 per creare una nuova “primary partition”

controlliamo i valori che ci vengono proposti di inizio e fine, compatibilmente con l’occupazione di tutto lo spazio confermare premendo “enter” un paio di volte

controlliamo quindi il risultato finale con “p” e diamo “w” per scrivere definitivamente quanto fatto, poi riavviamo

sudo shutdown -r now

Dopo il reboot dobbiamo quindi concludere con il resize usando il comando resize2fs che gestirà i valori cambiati nella tabella delle partizioni.

sudo resize2fs /dev/mmcblk0p2

Potrebbero volerci anche alcuni miniti, dipende dalla memoria e velocità della SD.

Alla fine controlliamo con

df -h

icom_dstar

INSTALLAZIONE PONTE ICOM D-STAR SU RASPBERRY PI by IZ5FSA

image_pdfimage_print

Preparare la SD con l’ultima versione di Raspian e disabilitare con raspy-setup la porta seriale e fare un minimo di overclock… a 900MHz basta. Quindi occorre aggiornare il sistema:

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ rpi-update
$ halt
e togliere corrente.
Inserire l’adattatore usb<->ethernet e riavviare. Verificare che sia stato riconosciuto l’adattatore tramite il comando
$ lsusb

Se riconosciuta a questo punto fare il setup della rete; è importante avere su eth0 la rete locale e eth1 per connettere l’RP2C, meglio se configurazioni statiche.

Editare quindi il file /etc/network/interfaces; questo è il mio:
——————————————————————————–
auto lo
iface lo inet loopback

# local lan setup
iface eth0 inet static
address 192.168.1.6
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254

# D-STAR ICOM RP2C
iface eth1 inet static
address 172.16.0.20
netmask 255.0.0.0
network 172.16.0.0
broadcast 172.16.0.255

# WiFi if useful
#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
——————————————————————————–

la parte WiFi non l’ho mai provata… chi riesce a metterla a punto me lo faccia sapere!!!

Adesso installare ircddbgateway secondo quanto descritto nel documento:
ircDDBGateway-DEB-instructions-ENG-20130430.pdf che si trova sul gruppo yahoo di ircddbgateway.
Ecco un sunto delle cose da fare:

$ sudo curl ftp://141.75.245.226:8021/debian/opendv.list /  -o /etc/apt/sources.list.d/opendv.list
$ cd /tmp
$ wget ftp://141.75.245.226:8021/debian/dl5di.pk
$ sudo apt-key add dl5di.pk
$ sudo apt-get update
$ sudo apt-get install ircddbgateway

Questa fase di installazione richiede di inserire la password per il nuovo utente opendv e poi lancia il programma di configurazione testuale ircddbgw_conf
E’ importante, nella fase di configurazione, tenere a portata di mano la password per accedere a ircddb.net (non serve per accedere solo ai DCS) e le coordinate del ponte. Inoltre occorre definire bene il ponte ICOM indicando l’indirizzo IP della porta eth1.

A questo punto dovrebbe funzionare!

73 Leonardo IZ5FSA [Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

IMG-20150111-WA0003

 
 
 
 
 
 
 
 
link_dcs

Un unico comando per spostare tutti i ponti D-Star [parte 1]

image_pdfimage_print

Premessa, una necessità.

Questo testo nasce da un esigenza pratica, ovvero tutto il nostro gruppo (e non solo visto che i sistemi D-Star stanno ultimamente crescendo, e questo fa enormemente piacere) viene “ospitato” al momento sul DCS 008 modulo D (D sta nella configurazione che è stata preimpostata da qualcuno per “centro Italia”). E’ una sorta di “calderone”, ovvero una raccoglitore di tanti sistemi D-Star fra cui ponti ripetitori, hotspot privati, dongle, etc. tra loro connessi via internet. Praticamente un software fatto da DG1HT (e altri? non saprei …) che gira su di un server in Germania (anche questo penso, non vi è molta informazione purtroppo in giro e se qualcuno ha ulteriori info ce le mandi, grazie). Ma cosa succede se questo “pentolone” digitale per qualche motivo va giù ? Un aggiornamento, un malfunzionamento, il raggiungimento di certi limiti … All’atto pratico da essere tutti connessi diveniamo in un istante “tutti isolati”, e da qui la rincorsa a mandarci una mail di avviso, un SMS, per ritrovarci ad esempio su di un sistema di backup (per il nostro gruppo abbiamo tirato su il Reflector XRF077, come indicato negli altri articoli pubblicati), ma non è immediato lo spostamento, anche solo per il fatto di collegarsi ai vari ripetitori ed inoltrare il comando di connessione ad altro sistema, e poi ci sono gli hotspot che vengono gestiti dai singoli utenti. Insomma, un bel “casino” come si dice a Firenze … Da qui l’idea: ma sarebbe possibile con un solo comando gestire tutta una catena di sistemi che aderiscono al progetto per attivare uno “spostamento di massa” ? Ovvero passare con un “colpo di portante” da 10 sistemi connessi sul DCS, ad esempio, ad una connessione complessiva su un XRF  senza dover fare tante chiamate e SMS di avvertimento ? Ovviamente alla fine dell’emergenza, con un altro colpo di PTT tornare al sistema iniziale. Si è tutto fattibile perchè il software ircddbgateway di G4KLX comprende tra i vari moduli anche questa possibilità… Vediamo assieme come realizzare questa soluzione, ovviamente migliorabile soprattutto in termini di sicurezza, ad esempio impiegando connessioni cifrate col protocollo SSH e certificati condivisi, ma per adesso, per partire come si dice, può andare bene anche così, sperando che il tutto sia di stimolo ad altri colleghi in ulteriori implementazioni.

La situazione attuale.

Vediamo bene una situazione tipo su questo schema, per ovvi motivi riassunto: IZ5ILH sta parlando con IW5EKI, uno su di un ponte ripetitore in UHF, l’altro su un ripetitore in VHF, ci sono degli hotspot dislocati fuori provincia, altri OM in ascolto su questi sistemi. Il collante: tutti sono connessi al DCS il quale ritrasmette a tutte le stazioni presenti quanto viene detto dai due colleghi. E’ un piccolo microcosmo, pensiamo invece siano collegate 40 e più stazioni radio tra ponti ripetitori e altro. E’ la situazione del momento, tutto è operativo ed il QSO prosegue senza problemi.

link_dcs

Vi è un problema. Per un motivo fra tanti il DCS non funziona più, è “giù” come si dice in gergo… Attendiamo qualche minuto ma il sistema non riparte, a questo punto vi è la necessità di cercare un “rattoppo”, ovvero provare a spostarci su qualche altro sistema (un  “pentolone” che potrebbe essere un XRF qualsiasi, o un altro DCS) per ritrovare i colleghi che prima stavano parlando. Ma tutti sono pronti e capaci nello spostamento ? E chi avvisa i colleghi che magari non sono al momento presenti ma che utilizzano un loro hotspot ? E vai di SMS, ma la cosa sta diventando complessa perchè metti che tra 30 minuti il DCS riparta… e chi li riavvisa nuovamente ? Uno scenario apocalittico, hi !! Ovviamente la sto buttando sullo scherzo, è un hobby il nostro, ma se miglioriamo il divertimento che male c’è ? ;-)

La soluzione, il “colpo di PTT” che ci toglie dai guai.

Guardiamo lo schema seguente e commentiamolo.

comando_cambio_sistema

IZ5ILH ha nel suo apparato radio alcune memorie già impostate, seleziona quella che prevede di inviare il comando di passaggio su XRF (nella parte 2 di questo testo parleremo in dettaglio di come fare) e preme il PTT sulla frequenza del ripetitore “capo maglia”, ovvero il sistema padre che inoltrerà a tutti i sistemi figli l’ordine di spostarsi. Il ripetitore padre, nel nostro caso IR5UBO come da schema, riconosce il comando, lo accetta ed esegue uno script, ovvero una serie di istruzioni in modo sequenziale. Inizierà a contattare IR5AY, il suo primo figlio, che da bravo ha sempre un orecchio in ascolto su di una certa porta (vedere il significato di “porta in ascolto” su Google per maggiori dettagli tecnici) perchè così gli abbiamo detto di fare, e questi, ricevendo la “chiamata” dal padre obbedisce e prontamente, usando il software “remotecontrold” presente a borso, commuta la sua connessione (anzi, al momento si trova in stato disconnesso se il DCS non è operativo)  su XRF. IZ5ILH potrà subito continuare il qso con IW5EKI perchè i due ponti ripetitori si ritroveranno sullo stesso “pentolone” ovvero un XRF, ma IR5UBO non si ferma perchè ha altri figli, e continua sempre in sequenza ad inoltrare comandi agli altri hotspot; così facendo, uno dopo l’altro, tutta la catena sarà gestita e i vari sistemi si ritroveranno assieme nuovamente. Quando vorrà IZ5ILH selezionerà un’altra memoria e con un secondo comando ordinerà a tutta la catena di sistemi di spostarsi nuovamente, tornando ad esempio sul DCS.

Requisiti obbligatori:

a) dobbiamo individuare un “capo maglia”, un ponte ripetitore a cui invieremo (e solo a lui) i comandi via RF;

b) tutti i protagonisti (ponti ripetitori. hotspot, etc.) devono essere collegati su internet e raggiungibili attraverso una porta che dovrà essere “girata” sul relativo router;

c) su tutti i sistemi deve essere operativo il software ircddbgateway di Jonathan ed essere attiva la sezione relativa al controllo remoto, con indicata un numero di porta (non è quella sopra menzionata, ma quella standard 10022) ed una password;

d) tutti gli attori non devono essere “chiusi”, ovvero devono poter accettare i comandi di connessione e disconnessione, ovvero non essere configurati a rimanere sempre e solo collegati ad un certo sistema.

Nella seconda parte vedremo in dettaglio le varie configurazioni. Ripeto nuovamente che questa è stata ed è per me una interessante prova, sicuramente migliorabile nella programmazione e nella sicurezza ed estendibile, che spero serva per nuovi spunti.


 
shell1

Un unico comando per spostare tutti i ponti D-Star [parte 2]

image_pdfimage_print

La configurazione deve essere eseguita sui vari sistemi con i privilegi di amministratore. Iniziamo configurando il “capo maglia”, ovvero il ponte ripetitore che accetterà i comandi via RF. Non mi dilungherò sulla spiegazione dei vari comandi, per maggiori informazioni sull’uso della shell di linux consiglio di leggere i precedenti articoli. Per questo testo la “porta” utilizzata nella comunicazione è la 51234 ma consiglio di cambiarla in fase di installazione della procedura per motivi di sicurezza, crearne una nuova a piacere. Ricordarsi di creare una regola NAT sul router (del sistema figlio) “girando” il traffico TCP per tale porta verso l’IP privato del pc che esegue il software di Jonathan. Il comando “nc” è netcat,  un programma open source a riga di comando di comunicazione remota, utilizzabile sia col protocollo TCP sia col protocollo UDP

creare sotto /root

nano ‘.Remote Control’

contenente queste righe

address=0.0.0.0
port=10022
password=latuapassword

deve essere abilitato in ircddbgateway il controllo remoto con stessa porta e password

poi creare nella /home/pi con permessi di esecuzione (+x)

nano link_dcs.sh

#comando al capo maglia che si sposta per primo, nel ns. caso IR5UBO

remotecontrold ir5ubo_b link never dcs008_d

#comando al prima sistema figlio

echo ‘”remotecontrold ir5xxx_b link never dcs008_d” | nc PRIMO_IP 51234 -v

#comando al secondo sistema figlio

echo “remotecontrold ir5xxx_c link never dcs008_d” | nc SECONDO_IP 51234 -v

aggiungere quindi una riga per ogni sistema figlio che dovrà essere gestito e salvare il file. PRIMO_IP dovrà essere scritto nella forma xx.xx.xx.xx oppure mioprimoripetitore.dyndns.info e così gli altri. Prestare attenzione a scrivere correttamente il nome del ripetitore/hotspot e relativo modulo, dovranno esserci sempre 6 caratteri poi “_” e modulo o 5 caratteri e “__”  e modulo. Attenzione, se viene fatto copia e incolla, ai caratteri virgolette che siano quelle giuste dentro l’editor nano.

creare poi il file per il link a xrf sempre con permesso di esecuzione

nano link_xrf.sh

#comando al capo maglia che si sposta per primo, nel ns. caso IR5UBO

remotecontrold ir5ubo_b link never xrf077_a

#comando al prima sistema figlio

echo “remotecontrold ir5xxx_b link never xrf077_a” | nc PRIMO_IP 51234 -v

#comando al secondo sistema figlio

echo “remotecontrold ir5xxx_c link never xrf077_a” | nc SECONDO_IP 51234 -v

 prepariamo i comandi via radio abilitandoli sulla parte repeater del software di G4KLX

su control1
RPTR1: RPTRCTDL
RPTR2: nominativo del gateway (IR5XXX G)

su control2
COMMAND1: CNTDCS sudo sh /home/pi/link_dcs.sh
COMMAND2: CNTXRF sudo sh /home/pi/link_xrf.sh

A questo punto il “capo maglia” è pronto ad inviare i comandi alle altre stazioni. Procediamo quindi nel configurare il primo ripetitore/hotspot figlio; questa procedura andrà ripetuta su tutti i sistemi figli, come abbiamo inserito nelle righe dei file link_dcs.sh e link_xrf.sh Si tratta di creare uno script che viene lanciato all’avvio ed eseguito in background con un comando che si pone in ascolto continuo sulla porta definita. Questo permetterà di ricevere il comando dalla stazione padre ed eseguirlo [ es. il figlio ir5xyz modulo B si connette a XRF modulo A ricevendo remotecontrold ir5xyz_b link never xrf077_a ]

creare sotto /root

nano ‘.Remote Control’

contenente queste righe

address=0.0.0.0
port=10022
password=latuapassword

deve essere abilitato in ircddbgateway il controllo remoto con stessa porta e password

poi creiamo il file con permesso di esecuzione

nano /home/pi/ascolta.sh

#!/bin/bash
while true ; do nc -l -p 51234 | /bin/bash ; done &

e facciamolo partire all’avvio inserendo in /etc/rc.local prima di exit 0
sudo /home/pi/ascolta.sh

Come ultimo passaggio occorre configurare due memorie sull’ RTX relative ai comandi che dovranno essere trasmessi al “capo maglia”, sostituire ir5xxx con il nominativo di tale ponte:

per connettere il dcs (eseguendo lo script link_dcs.sh)

MY :mionominativo
UR: CNTDCS
RPT1: RPTRCTDL
RPT2: IR5XXX G

per connettere xrf (eseguendo lo script link_xrf.sh)

MY :mionominativo
UR: CNTXRF
RPT1: RPTRCTDL
RPT2: IR5XXX G

Buone prove. David Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

 

 
 
 
 
 
firenze_xrf077

Aggiornamenti riguardanti l’installazione del XReflector

image_pdfimage_print

Grazie ad ulteriori prove eseguite con l’amico Raul M0ZZM abbiamo constatato che la versione dextra reflector 3.11 ci dava problemi nel collegare i ponti al nostro  xreflector 077 inserendo l’indirizzo ip nel file DEXTRA_Hosts.txt e non permetteva il collegamento tra i nostri due xreflector (Raul ha installato e reso operativo XRF400). A tal proposito abbiamo installato la versione dxrfd 3.08 (di seguito per il download) e adesso è operativo anche il link tra i due sistemi. Riportiamo, sperando sia utile ai nostri colleghi per le loro installazioni, quanto verificato nelle nostre sperimentazioni, ricordando che rimangono valide le informazioni sull’ installazione del XReflector che abbiamo inserito su questo sito web in precedenza (categoria Software e configurazioni per il RasPi):

a) gli indirizzi IP dei sistemi da collegare assieme (ad esempio XRF077 con XRF400) devono risiedere su entrambi i server ospitanti nel file /root/dxrfd/xrfs.txt nella forma XRF077 xrf077.duckdns.org (nome del reflector, spazio/tabulazione, indirizzo IP)

b) il comando per collegare i due reflector (per esempio xrf077 collega xrf400) è “lrf AXRF400A” ovvero “collega il modulo A del xrf077 al modulo A del xrf400″, tale istruzione, come riportato nei precedenti post, va eseguita da shell con l’apposito software “nc” presente sotto linux. Per disconnettere i due sistemi il comando da dare è “lrf AXRF400X” ovvero “disconnetti il modulo A del xrf077 dal reflector xrf400″.

 c) può essere utile automatizzare il collegamento inserendo nel file cron la chiamata allo script seguente (autolink.sh con permessi di esecuzione da inserire sotto /root/dxrfd), qualora si decidesse di tenere su un collegamento continuativo tra i due reflector:

#!/bin/sh

#questo script autolink.sh verifica se vi e’ connessione tra xrf077 e xrf400
#provato con versione dxrfd 3.08

modulo=”A”
xrfdest=”XRF400″
modulodest=”A”

echo “Controllo del link con ${xrfdest}”
nc -w1 -u 127.0.0.1 30002 <<EOF | grep -a XRF | awk ‘{print $1}’ > “autolink.log”
pu
EOF

connesso=”`cat autolink.log | awk ‘{print $1}’`”
echo “Il sistema e’ connesso a: ${connesso}”

if [ “${connesso}” != “${xrfdest}” ]; then
echo “Il sistema NON e’ connesso con ${xrfdest}. Provvedo ad effettuare la connessione …”
nc -u -w2 127.0.0.1 30002 << EOF
lrf ${modulo}${xrfdest}${modulodest}
EOF
echo “Il sistema e’ ora connesso con ${xrfdest}”
else
echo “Il modulo ${modulo} risulta gia’ connesso a ${xrfdest}”
fi

 

nel file cron di root inserire invece la riga seguente per un controllo ogni 15 minuti:

*/15 * * * * /root/dxrfd/autolink.sh

 

A seguire il link per il download della versione dextra reflector 3.08 da compilare sul proprio server, rinnovo i colleghi a segnalarci ogni eventuale errore e le loro prove poichè il fattore condivisione è importantissimo per far crescere la comunità D-Star

 
dxrfd 3.08
 
 
 

 

 

Controllo variazione IP e se e’ in esecuzione dstarrepeater

image_pdfimage_print

Di seguito un piccolo script che è una variazione di quanto già in precedenza pubblicato da eseguirsi nella shell di linux. Effettua il controllo dell’IP pubblico che stiamo utilizzando sulla nostra connessione internet, e, se variato dall’ultima verifica, invia una mail (per l’installazione della procedura di invio mail leggere il post presente sul sito). Visto che siamo a fare controlli lo script verifica anche se il software “dstarrepeater” è un funzione, diversamente provvede a riavviare il sistema con un reboot ( contento Roberto? ;-) ).

da shell:

sudo -s

cd /home/pi

creiamo il file ip “vuoto”

touch ip

e il nostro script

nano controlla_ip.sh

inserire le righe seguenti e salvare con control-o e control-x

#!/bin/sh

#nome del file script: controlla_ip.sh
#nome del file dove registrare l’indirizzo: ip

#memorizza attuale valore IP leggendolo dal sito
IP=$(wget -qO- http://31.193.24.204/ip.php)

#memorizza il vecchio valore dal file che era stato creato
IPOLD=$(cat ip)

#e infine memorizza il nome del sistema per l’avviso
NOME=$(uname -n)

#condizione di verifica, se diverso manda la mail di avviso
if [ “${IP}” != “${IPOLD}” ]
then
echo “nuovo ${IP}” | mail -s “IP di ${NOME} e’ cambiato” Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
fi

#memorizza il valore attuale nel file “ip”
echo “${IP}” > ip

#controlliamo se il dstarrepeater e’ in funzione
programma=’dstarrepeater’

if ps ax | grep -v grep | grep $programma > /dev/null
then
#se e’ in funzione non fare nulla
echo “”
else
#riavvia il sistema
/sbin/shutdown -r now
fi

exit 0

rendiamolo eseguibile

chmod +x controlla_ip.sh

e proviamo ad eseguirlo, la prima volta dovrebbe arrivare una mail perchè il file ip è inizialmente vuoto, successivamente con il comando “cat ip” possiamo vederne il contenuto e quindi l’ip pubblico ultimo utilizzato

sh controlla_ip.sh

per verificare il controllo del dstarrepeater provate a chiudere il programma e a lanciare nuovamente lo script, il raspberry si riavvierà

Infine occorre inserire nel cron l’automatismo, una verifica ogni 10 minuti

crontab -e

aggiungendo questa riga

*/10 * * * * /home/pi/controlla_ip.sh > /dev/null

salvare sempre con control-o e control-x e riavviare il servizio

service cron restart

IMG-20150209-WA0011

Colleghiamo il nostro hotspot D-Star ad un XRF

image_pdfimage_print

Usando il programma VNC ci colleghiamo al Raspberry inserendo il suo IP (vedi su Google come trovare attraverso delle utility gli indirizzi IP di computer in rete, es. “ipscanner”) e relativa password (se non modificata, sulla versione di Brian è “raspberry”) e quando viene visualizzato il desktop eseguiamo (doppio click oppure click bottone destro e poi “open”) il programma LXTerminal per lanciare una sessione terminale, ovvero la famosa “shell” di linux. Diversamente è possibile visualizzare il desktop grafico collegando direttamente un monitor/tv con ingresso HDMI e un mouse e tastiera usb al Raspberry.

IMG-20150209-WA0014

Dentro la sessione terminale digitiamo “sudo pcmanfm” per eseguire il programma “file manager” (gestore dei file) con i diritti di amministratore del computer.

IMG-20150209-WA0012

Cerchiamo la cartella “usr” ed entriamoci dentro con un doppio click,

IMG-20150209-WA0006

poi la cartella “local”

IMG-20150209-WA0015

ed infine la cartella “etc” che contiene i file dei DNS, ovvero la risoluzione del nome del sistema (es. XRF077) e relativo indirizzo IP o nome ad esso associato (es. xrf077.duckdns.org).

IMG-20150209-WA0013

Apriamo il file DPlus_Hosts.txt

IMG-20150209-WA0010

ed inseriamo il record nella giusta posizione (XRF077 a sinistra, tabulazione, xrf077.duckdns.org sotto la relativa colonna)

IMG-20150209-WA0007

Salviamo la modifica (menu file, salva). Per il nostro hotspot il lavoro è terminato, possiamo lanciare la configurazione del gateway con il software di Jonathan ed inserire la connessione al reflector che vogliamo. Se invece abbiamo un ripetitore e desideriamo solo aggiungere un nuovo reflector allora il file che ci interessa è DExtra_Hosts.txt, stesse modalità di inserimento.

IMG-20150209-WA0008

Aggiunta del record, salvataggio e fine.

IMG-20150209-WA0009

 

 

 

SD immagine di Brian gw6wtk ottimizzata e aggiornata il 10/02/2015 da IZ5ILH

image_pdfimage_print

Questa immagine va bene su DV-RPTR v1 v2 v3 DV-MEGA DVAP e GMSK Modem
basta modificare il D-Star Config secondo la propria interfaccia radio

Configurazione immagine:
Aggiornato DStarRepeater-20140521
Aggiornato ircDDBGateway-20140602
Aggiornato librerie sistema operativo
Overclock cpu Raspberry pi a 900 Mhz
Aggiornato file DPlus_Hosts.txt e DExtra_Hosts.txt che permettono di utilizzare gli xrf008-033-055-077 ecc.
Aggiornato file dcs_hosts.txt blocco ip DCS008
Aggiornato file dplus_hosts.txt blocco ip XRF027
Aggiornato file dplus_hosts.txt blocco ip XRF077  del Gruppo Radio Firenze
Aggiornato file dplus_hosts.txt ip REF068
Aggiornato file dplus_hosts.txt blocco ip XRF400 di M0ZZM Raul
Aggiornato file dplus_hosts.txt ip XRF003 Cisar
Aggiornato file dplus_hosts.txt Lista ip
Aggiornato script avvio Dv-Mega
Configurato DStarRepeater avvio Dv-Mega su frequenza 431.525
Ack time a 300 ms e Tx delay a 150 ms
Controllo Comandi Abilitato RPTRCTLD
Aggiunto comandi ur REBOOT e STOP
Aggiunto comandi annuncio rpt1 e rpt2 RECORD A e G e DELETE A e G
Inserito nello zip Win32DiskImager ultima versione e VNC 32 e 64 bit per sistemi Windows
Le Password di accesso sono:
Con VNC: raspberry
Con SSH: nome utente pi
Password: raspberry
Ricordo che per accedere dall’esterno dovete aprire le porte del Router verso l’indirizzo ip del Raspberry.
Le porte sono:
5900 per il vnc
22 per ssh


 
 
 
 
 
 
 
 
 
 

Metti al sicuro il tuo reflector D-Star

image_pdfimage_print

E’ buona norma (e non solo per il reflector) mettere in sicurezza i sistemi server collegati direttamente su internet. Oltre ad utilizzare password “robuste” e porte di accesso non convenzionali (ad esempio consiglio di “nattare” la porta 22 utilizzata per la connessione in ssh con un numero diverso di porta accessibile dall’esterno, ad esempio 43022, affinchè ci sia un minimo di sicurezza contro gli automatismi che tentano di “bucare” i sistemi) la presenza di un firewall è molto consigliata.

Ci siamo accorti che, in assenza di particolari protezioni, la porta 30002 (usata di default) che rimane in ascolto sui sistemi dextra reflector di eventuali comandi impartiti al sistema, è accessibile anche dall’esterno. Questo vuol dire che mi possono connettere senza fornire credenziali e impartire comandi ad un xreflector di non mia gestione.

Fornisco un esempio citando il reflector dell’amico Raul, il quale ha già messo in sicurezza quanto necessario:

da una mia console terminale linux eseguo il comando

nc -u -vvv xrf400.no-ip.org 30002

il suo sistema risponde con

Connection to xrf400.no-ip.org 30002 port [udp/*] succeeded!

a questo punto posso inviare dei comandi ed ottengo risposta

pu
XRF727  ,108.33.72.83,REPEATER,021015,22:45:01,notMuted
IZ5CMC  ,2.227.11.230,REPEATER,021215,12:04:25,notMuted
XRF077  ,5.249.151.111,REPEATER,021215,20:29:49,notMuted
MB6IBK  ,5.80.69.169,REPEATER,021115,17:53:56,notMuted
IW2ESL  ,62.94.244.223,REPEATER,021215,21:13:08,notMuted
IW2FZR  ,79.50.81.243,REPEATER,021315,05:00:49,notMuted
XRF911  ,82.49.51.160,REPEATER,021115,19:06:13,notMuted
IR2UFV  ,83.211.73.103,REPEATER,021115,13:25:49,notMuted
IR1UGO  ,87.15.192.143,REPEATER,021215,17:21:38,notMuted
OK
pv
3.08
OK
 
si capisce bene che così facendo ho preso il controllo del suo reflector. Un primo intervento per bloccare questa situazione è quello di inserire alcune righe nel firewall presente nei sistemi linux, consiglio di creare uno script (es. firewall_on.sh), renderlo eseguibile ed inserirlo all’avvio del server (es. nel file /etc/rc.local). Con queste istruzioni si permette l’inoltro dei comandi alla porta 30002 solo al “localhost” ovvero la console terminale dell’amministratore del sistema. Chiaramente è una patch “al volo” … meglio pensare di utilizzare software appositi (o hardware) che gestiscono in maniera completa le regole del firewall. Da valutare anche l’utilizzo di una porta diversa alla 30002, vedi la configurazione nel file dxrfd.cfg
 
 
iptables -A INPUT -s 127.0.0.1 -p tcp -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -p udp -j ACCEPT
iptables -A INPUT -p tcp -m tcp –dport 30002 -j DROP
iptables -A INPUT -p udp -m udp –dport 30002 -j DROP
 
 
Ricordo i comandi “iptables -L” per visualizzare le regole presenti nel firewall, e “iptables-F” per vuotare tutte le regole e aprire tutte le connessioni. Cercando su Google si trovano moltissime guide e riferimenti per impostare dei livelli minimi di controllo degli accessi ai propri server. Se i colleghi trovano altre soluzioni e/o criticità li invitiamo a comunicarcele (anche ai diretti interessati ovviamente) affinchè siano disponibili alla comunità che cresce grazie al
contributo di tutti.
 
 
 
link_xrf

Starnet su immagine di Brian, by IZ5CMC

image_pdfimage_print

Creare fino a 5 Starnet con il software di Jonathan Naylor utilizzando un Raspberry PI e l’immagine di Brian GW6WTK

Se vogliamo realizzare e gestire fino a 5 starnet direttamente sul nostro hotspot o ponte D-Star con nominativo registrato sulla rete ircDDB (possiamo fare la stessa cosa se utilizziamo la rete Quadnet, vedi articolo relativo a questo indirizzo http://dstar.grupporadiofirenze.net/quadnet2-usa-irc-network/ ) abbiamo la possibilità di farlo utilizzando un Raspberry PI e l’immagine di Brian GW6WTK ottimamente messa a punto da Roberto IZ5ILH e disponibile su questo sito all’indirizzo http://dstar.grupporadiofirenze.net/disco-immagine-di-brian-gw6wtk-ottimizzata-e-aggiornata-da-iz5ilh/ ed aggiornare il gateway dopo averlo opportunamente ricompilato. Dopo avere scaricato l’immagine ed averla masterizzata sulla scheda SD con il Win32DiskImager, abbiamo bisogno dell’ultima versione di ircDDBGateway per linux che Jonathan Naylor mette a disposizione sul gruppo di Yahoo https://groups.yahoo.com/neo/groups/ircDDBGateway/info
Per coloro che non sono registrati su tale gruppo, ho messo a disposizione l’ultima versione del file compresso a questo indirizzo https://dl.dropboxusercontent.com/u/72442110/ircDDBGateway-20150213.zip Una volta scaricato il file con il browser del nostro Raspberry, apriamo un terminale e procediamo come segue. Per prima cosa otteniamo i permessi di root, poi scompattiamo il file compresso ottenendo una cartella chiamata ircDDBGateway, successivamente ci portiamo al suo interno ed andiamo ad editare il file settings.mk selezionando l’opzione relativa all’uso che vogliamo fare delle nostre starnet, salviamo l’editing e compiliamo il software. Procediamo.

sudo –s
unzip ircDDBGateway-20150213.zip
cd ircDDBGateway
nano settings.mk

cmc001

All’interno del file settings.mk le ultime tre stringhe si riferiscono alle opzioni relative alle starnet ed in fase di compilazione indicano se avere la possibilità di puntare un Xreflector, un DCS o in alternativa nessuno dei due. Di default è selezionata la prima stringa, come è possibile notare dall’assenza del segno cancelletto, quindi basta selezionare una delle altre due per ottenere in fase di compilazione l’opzione che ci interessa. Se vogliamo ottenere che le nostre starnet puntino qualsiasi Xreflectors toglieremo il cancelletto alla seconda stringa e lo aggiungeremo alla prima come in questa immagine che segue

cmc002

in alternativa, se abbiamo bisogno che le nostre starnet puntino qualsiasi DCS toglieremo il cancelletto alla terza stringa e lo inseriremo sempre all’inizio di quella selezionata di default, poi salviamo con CTRL+X e confermiamo con INVIO. Compiliamo il software con il comando make ed attendiamo che il nostro Raspberry faccia il suo lavoro. Al termine installiamo con make install e i files di avvio sovrascriveranno quelli già esistenti. I files DExtra_Hosts.txt, DPlus_Hosts.txt e DCS_Hosts.txt invece, che si trovano nella cartella /usr/local/etc vanno copiati anche nella directory di /root e comunque il file DExtra_Hosts.txt deve contenere gli Xreflectors con i relativi indirizzi IP altrimenti le starnet non funzionano qualora avrete deciso di fargli puntare un Xref. Alla fine avremo ottenuto la possibilità di far puntare le nostre starnet dove vogliamo. Di seguito un esempio del file di configurazione del gateway:

cmc003

Un ringraziamento a Raul M0ZZM per le sue preziose indicazioni
 
 
midnight-commander-colors

Una comoda interfaccia file-manager testuale per il Raspberry Pi (e non solo…)

image_pdfimage_print

Midnight Commander è un file-manager con interfaccia testuale. La schermata principale consiste in due pannelli in cui si mostra il file system. Si usa come qualsiasi altra applicazione che funziona a riga di comando di Unix. I tasti freccia permettono di muoversi attraverso l’elenco dei file, il tasto Invio viene utilizzato per selezionare i file e i tasti funzione compiono azioni come cancellare, rinominare, editare, copiare file ecc. Le versioni più recenti di Midnight Commander includono il supporto per il mouse in modo da facilitare l’uso agli utenti.

Per installarlo (su Raspian):

sudo apt-get update

sudo apt-get install mc

e per eseguirlo digitare “mc

mc

 

 

Se compaiono lettere accentate e simboli strani invece di righe occorre normalizzare il set di caratteri attraverso l’utility “sudo rasp-config” selezionando le opzioni di internazionalizzazione, cambia la lingua ed il set di caratteri e scegliere “it iso 8859″.

 
 
 
microsd

Immagine ISO di GW6WTK Brian anche per Raspberry 2 ottimizzata e preparata da IZ0DFP il 03/05/2015

image_pdfimage_print

Questa immagine va bene su Raspberry pi-b+ & p2 con DV-RPTR v1 v2 v3 DV-MEGA DVAP e GMSK Modem, basta modificare il D-Star Config secondo la propria interfaccia radio

Basata su Dedbian Wheezy HF 30-01-2015

AGGIORNATA il 03/05/2015

Configurazione immagine:
Aggiornato DStarRepeater-20150404
Aggiornato ircDDBGateway-20150308
Aggiornato librerie sistema operativo
Aggiornato file DPlus_Hosts.txt e DExtra_Hosts.txt che permettono di utilizzare gli xrf008-033-055-077 ecc.
Aggiornato file dplus_hosts.txt ip XRF077 del Gruppo Radio Firenze
Aggiornato file dplus_hosts.txt ip XRF078 del Gruppo Wifi Siena
Aggiornato file dplus_hosts.txt ip XRF084 di Matteo IZ5WGA Firenze
Aggiornato file dplus_hosts.txt ip XRF168 di IW5ELP
Aggiornato file dplus_hosts.txt ip XRF228 del Vecio Piave Team
Aggiornato file dplus_hosts.txt ip XRF400 di M0ZZM Raul Londra
Aggiornato file dplus_hosts.txt ip XRF911 del Gruppo D-Star Siracusa
Aggiornato file dplus_hosts.txt ip XRF929 Italo Canadese
Aggiornato file dplus_hosts.txt ip REF068
Aggiornato file dplus_hosts.txt ip XRF027
Aggiornato file dplus_hosts.txt ip XRF003 Cisar
Aggiornato file dplus_hosts.txt Lista ip
Aggiornato script avvio Dv-Mega
Configurato DStarRepeater avvio Dv-Mega su frequenza 431.52500
Ack time a 300 ms e Tx delay a 150 ms
Controllo Comandi Abilitato RPTRCTLD
Aggiunto comandi ur REBOOT e STOP
Aggiunto comandi annuncio rpt1 e rpt2 RECORD A e G e DELETE A e G
Inserito nello zip Win32DiskImager ultima versione e VNC 32 e 64 bit per sistemi Windows
Le Password di accesso sono:
Con VNC: raspberry
Con SSH: nome utente pi
Password: raspberry
Ricordo che per accedere dall’esterno dovete aprire le porte del Router verso l’indirizzo ip del Raspberry.
Le porte sono:
5900 per il vnc
22 per ssh

 
 
 
 
vnc

Installiamo il server VNC su Raspbian

image_pdfimage_print

Con l’ingresso del “raspino potenziato”, ovvero la versione 2 con processore più potente e 1 Gb di memoria Ram, molti colleghi radioamatori hanno scaricato la nuova immagine ISO di Brian, come riportato anche su questo sito. Ma ovviamente sopra c’è, giustamente, anche il software di Jonathan per la gestione del sistema radio D-Star. Se vogliamo divertirci con una immagine “pulita”, ovvero scevra di ulteriori programmi, ma solo con il sistema operativo presente, magari per farci un nostro serverino casalingo o solo per il piacere di effettuare delle prove con linux, la possiamo scaricare dal sito ufficiale da questo link. Ma una delle caratteristiche del “raspino 2″ è quella di aver maggior velocità, quindi anche l’aspetto grafico risulterà più fluido (non ci aspettiamo una workstation grafica, ma sicuramente rispetto alle versioni precedenti del raspberry pi la gestione del desktop grafico è utilizzabile senza troppa frustrazione anche da remoto… connettività permettendo). Seguiamo questi passi per installare quindi il server VNC per accedere da remoto, in modalità grafica, al nostro nuovo “bolide linux” (queste informazioni sono comunque comuni per tutti i sistemi).

Per installare il server VNC basterà digitare, sempre da terminale, il seguente comando:

sudo apt-get install tightvncserver tightvnc-java

Terminata l’installazione non vi resta che avviare il server VNC con il seguente comando:

sudo vncserver :0 -geometry 1920×1080 -depth 24

1920×1080” rappresenta la risoluzione del monitor di destinazione, cercate di impostare la stessa risoluzione del vostro monitor del pc. Se vi chiederà di inserire una password, potete usare “raspberry” di default. Per cambiarla è poi possibile, da terminale, usare il comando:

sudo x11vnc -storepasswd

Vi chiederà di inserirla due volte, come di consueto, è il gioco è fatto. Ovviamente per avere sempre il server VNC attivo al reboot del sistema vi consiglio di inserire la riga che avvia tale server nel file /etc/rc.local prima dell’istruzione “exit 0″ se presente. Da Windows generalmente uso ULTRA VNC VIEWER per collegarmi ai miei “raspini remoti”, è un software gratuito

 

raspiwifi

Programmiamo l’ip statico sull’interfaccia wireless del raspberry pi

image_pdfimage_print

Su distribuzione Raspbian occorre editare il file /etc/network/interfaces con i diritti di amministratore (es. sudo nano /etc/network/interfaces) ed inserire una configurazione simile a questa, ovvero compatibile con al vostra rete lan interna (verificate la classe, l’indirizzo del gateway/router, etc.), rimuovendo le linee presenti:

auto lo

iface lo inet loopback
iface eth0 inet static
address 192.168.1.206
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet static
address 192.168.1.206
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1

Capiamo cosa abbiamo inserito. Praticamente abbiamo detto al sistema di usare lo stesso IP sia per la parte wireless che per la parte wired (cablata), poichè MAI dovranno essere, in questo caso, attive entrambe le connessioni, quindi 192.168.1.206, di usare come gateway (il nostro modem/router adsl) l’indirizzo 192.168.1.1 e, importante, di usare queste informazioni in maniera statica (inet static). La parte relativa alla configurazione dell’accesso alla rete wireless è presente nel file wpa.supplicant che andremo ad editare inserendo (questo file viene generato dalla GUI della gestione delle reti wireless, su desktop grafico) gli opportuni valori relativi al proprio ambiente:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid=”ILNOMEDELLATUARETEWIRELESS
psk=”LATUAPASSWORD
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}

 

Riavviamo il sistema, e se tutto è stato configurato correttamente si collegherà in automatico alla vostra rete wireless. Useremo PUTTY o un VNC viewer per accedervi tramite indirizzo 192.168.1.206. Generalmente programmo il raspberry collegandolo ad un cavo di rete, inserisco l’adattatore usb wifi e poi al riavvio stacco il cavo di rete

aprs_info

VISUALIZZARE LO STATO DEL GATEWAY SU APRS.FI

image_pdfimage_print

Questo script in php permette la trasmissione al server aprs, e conseguentemente sulla mappa visualizzata su aprs.fi, di maggiori informazioni sullo stato di ircddbgateway. In particolare se è connesso ad un sistema reflector, utile per avere una panoramica di possibili collegamenti durante i nostri spostamenti. Il codice può essere facilmente modificato e adattato per integrare maggiori informazioni, spero serva come spunto per l’implementazione di nuove caratteristiche. E’ stato provato sotto linux / raspberry pc.

Requisiti necessari:

a) installare la libreria utile alla gestione degli script php da linea di comando, con sudo apt-get install php5-cli

b) abilitare in ircddbgateway la funzione “gui log” nell’ultimo menu

Quest’ultima opzione permette il salvataggio nel file /var/log/Links.log dello stato del gateway, e sono queste informazioni che andremo a prelevare e a pubblicare su aprs. I file contenuti in XMKdstar_info.zip vanno salvati assieme, ad esempio in /var/www, ed occorre inserire in cron (di root)  il seguente comando che permette l’aggiornamento dei dati verso aprs ogni 7 minuti:

*/7 * * * * php /var/www/XMKdstar_info.php >/dev/null >2>&1

Ricordo che ircddbgateway pubblica le proprie informazioni ogni 20 minuti, occorre lasciare abilitata la funzione dprs se vogliamo permettere l’inoltro dei dati aprs delle stazioni che transitano dal nostro sistema.

All’interno del file XMKdstar_info.php (l’unico da editare) occorre inserire nella posizione opportuna, come scritto, il proprio nominativo di stazione con suffisso, le coordinate (le stesse che abbiamo inserito in ircddbgateway, in decimale, nelle funzioni

// i valori delle coordinate seguenti sono quelli che inseriamo in ircddbgateway
$lat = decimal2degree(43.123456, “LAT”);
$lon = decimal2degree(11.123456, “LON”);

prima per la latitudine e poi per la longitudine) e la frequenza operativa (o altra info).

Lo script può essere eseguito direttamente da shell, utile per verificare che la connessione e l’inoltro dei dati avvenga correttamente; eseguire nella cartella dello script il comando:

sudo php ./XMKdstar_info.php

Posizionandoci su aprs.fi dovremo vedere, facendo click sul nostro sistema, già le informazioni aggiornate. Verificare, sempre sul sito, sotto la sezione “dati raw”, che i valori trasmessi siano stati regolarmente acquisiti.

NOTA BENE (Grazie Maurizio IZ5CMC):

In alcune distribuzioni, dopo il reboot, l’opzione di “registrazione log connessione” viene disabilitata;  il file di avvio del gateway si trova in /pi/.config ovviamente da terminale sudo pcmanfm e si abilita la visione delle cartelle nascoste, dopodiché dentro .config  si trova la cartella autostart e dentro ancora il file start_gateway.desktop
Editando quest’ultimo con Leafpad si vedrà che al suo interno il file ircddbgateway viene lanciano con la gui attivata, ma con il log disattivato di default:

[Desktop Entry]
Type=Application
Exec=sudo ircddbgateway -gui -nolog

Basta togliere il -nolog e salvare.

Come sempre, ogni suggerimento e/o correzione è gradita. 73  David

Link per il download: XMKdstar_info

 

dynamic_ip

Se il reflector ha l’ip dinamico …

image_pdfimage_print

Questo piccolo script dovrebbe aiutare i colleghi che si trovano ad avere un reflector connesso su di una adsl con ip dinamico. Ovviamente i sistemi che vanno a collegarsi al reflector devono cercare un dns e non l’ip che cambierà frequentemente, ma spesso occorre riavviare i ripetitori che sono connessi al reflector affinchè acquisiscano correttamente l’associazione con il dns ed il nuovo ip. Lo script è in php e va lanciato da linea di comando e automatizzato nel cron del raspberry / server linux degli hotspot e ripetitori che si collegano al reflector, magari con controllo ogni 5 minuti. Requisito fondamentale, per tutti gli script in php, avere installato “php5-cli” con il comando “sudo apt-get install php5-cli“.

Creare un file con nome ip.php con “sudo nano ip.php” in una cartella (es. /home/pi) e copiateci dentro queste righe:

<?php

function scrivi_ip($ip) {
$fp = fopen(“ip”, “w”);
fwrite ($fp, $ip);
fclose($fp);
}

function leggi_ip() {
$fp = fopen(“ip”, “r”);
$row = fread($fp, 20);
fclose($fp);
return $row;
}

// trasforma il dns in ip
$ip = gethostbyname(“xrf077.duckdns.org”);
// apre il file e controlla se presente il precedente ip
$row = leggi_ip();

if ($ip == $row) {
echo “ip non cambiato\n”; //non fare nulla, l’ip non e’ cambiato
} else {
// scrive il nuovo ip nel file di controllo
scrivi_ip($ip);
sudo shutdown -r now //riavvia il sistema
}

?>

A questo punto inserite corretamente nel fil ip.php il dns del reflector che volete controllare (xrf077 ha ip statico quindi non serve !!). Occorre inizialmente creare nella stessa dir un file vuoto con il comando “touch ip” dove lo script andrà a collocare l’ip letto. Potete provare la funzionalità dello script eseguendolo da shell con il comando “sudo php ./ip.php“, la priva volta essendo vuoto il file “ip” rileverà un cambiamento ed eseguirà il riavvio del sistema (potete cambiare o commentare questa riga), successivamente scriverà “ip non cambiato” fino a quando il reflector non cambierà indirizzo.

Per inserire il comando nel cron, eseguire “sudo crontab -e” e aggiungere la seguente riga:

*/5 * * * * php /percorso/del/file/ip.php >/dev/null 2>&1

Attenzione se fate copia-incolla agli apici “” nello script.

Buone prove, e fatemi sapere… 73 David

 

log01

Visualiziamo i log del nostro hotspot d-star


image_pdfimage_print

I log generati dal software ircDDBGateway e DStarRepeater vengono depositati sotto /var/log usando la sintassi nome-anno-mese-giorno.log Tali file contengono informazioni interessanti in merito al funzionamento del gateway e sulle stazioni radio che transitano sul modulo RF. Per visualizzarli, accedendo con VNC al desktop grafico del vostro sistema, i passi sono i seguenti:

Lanciare il file manager facendo click sull’icona accanto al menu

operazione1
Spostarsi nella directory /var/log scrivendo il percorso nel box indicato e premere invio

operazione2

Ordinare i file usando una vista dettagliata e per ora modifica

operazione3

Aprile il file che ci interessa visualizzare premendo sopra il bottone destro del mouse e scegliere “apri”

operazione4

update

 

Aggiornare il software sulla distribuzione di Brian


image_pdfimage_print

Per gli aggiornamenti del software DStarRepeater e ircDDBGateway sulla distribuzione di Brian GW6WTK, da linea di comando (shell) del raspberry eseguire:

klxupdate gateway‘ e opzione 9 per l’ultima versione del gateway

klxupdate gateway -npr‘ per installare l’ultimo pacchetto ed effettuare un reboot del sistema

L’impiego dello switch ‘-nohost‘ server per non far sovrascrivere i file host già presenti

Le stesse impostazioni possono essere utilizzate con “klxupdate repeater” per il modulo software che gestisce il trasmettitore.

 

 

monitorix

Monitoriamo quanta “banda” richiede il nostro sistema


image_pdfimage_print

Puo’ essere utile, per determinare ad esempio la collocazione di un server reflector o semplicemente un hotspot, monitorare l’occupazione della banda internet durante la trasmissione della nostra voce o anche quando il sistema è in “stand-by”. Sotto linux (es. hotspot con raspberry py e distribuzione “pronta all’uso” presente sul nostro sito) occorre dare il seguente comando:

$ sudo apt-get install cbm

così facendo viene installato il programma CBM ovvero “color bandwidth meter” un piccolo e semplice software che visualizza il volume del traffico passante dalle interfaccie di rete presenti sul sistema. Non ci sono particolari opzioni (“q” per uscire), il traffico dati viene aggiornato in tempo reale. Per eseguirlo basta da shell scrivere ” cbm

banda

Mi permetto anche di segnalare questo software (open source naturalmente) che offre una panoramica completa del monitoraggio delle risorse del nostro server:

MONITORIX

Puo’ essere visionato “in esecuzione” direttamente alla pagina di monitor del nostro server VPN che gestisce gli hotspot remoti (ad esempio quelli che usano la rete 3G, notare il traffico dell’interfaccia tun0 che collega i sistemi con la vpn). Ecco il link alla pagina:

VPNSERVER

c-logo

Software XRF 3.13 con ultime patch

image_pdfimage_print

Sorgente in C++

Vedi gli articoli pubblicati sul sito per le info sulla compilazione e installazione.

Nota bene: da questa versione il log viene inserito in /var/log/syslog e non più in /var/log/dxrfd.log

Per eseguire (ed inserirlo in esecuzione al lancio di /etc/rc.local):

sudo /root/dxrfd/dxrfd /root/dxrfd/dxrfd.cfg &

 
streaming

Facciamo streaming D-Star con il raspberry

image_pdfimage_print

Vi presento una soluzione che può rivelarsi utile e facilmente implementabile per “girare” l’audio del nostro reflector sul web. Come tutti i progetti informatici, anche questo può essere ampliato e migliorato e ogni suggerimento o rivisitazione è ben accetta e sarà pubblicata con piacere. L’obiettivo è appunto quello di far ascoltare il traffico radio D-Star di un nostro ponte ripetitore (e conseguentemente del Reflector XRF 077 modulo A essendo a questi connesso di default) direttamente dal nostro sito web, utilizzando un plugin (nel nostro caso presente nel CMS che utilizziamo per la gestione del sito) o un lettore multimediale (indicando l’url di lettura del flusso audio). Le componenti impiegate sono: un minipc Raspberry Pi (versione B con 512 Mega di Ram, è sufficiente) con linux a bordo, un adattatore audio usb compatibile (si trova facilmente in rete anche su Amazon, basta indicare compatibile raspberry per evitare di perdere tempo nel compilare driver particolari) e un RTX (ICOM ID-31, va bene qualsiasi ricetrasmettitore digitale D-Star che abbia una uscita audio per cuffie). L’adattatore audio si collega al raspberry tramite usb e l’ID 31 alla scheda audio ingresso microfonico tramite un cavetto mini-jack (ho utilizzato l’uscita del microfono esterno connesso all’ ID-31 perchè il cavetto audio che avevo sottomano aveva uno spinotto jack e non mini …). Ecco alcune foto:

Adattatore audio usb

    audio_adapter

ID-31 collegato con un cavetto audio “standard” all’ingresso microfonico della scheda audio usb

id31_streaming

Raspberry Pi che oltre allo streaming ha a bordo una scheda DV-MEGA che opera da hotspot

raspberry_dvmega

Ho utilizzato per comodità un raspberry che già operava come hotspot, quindi una distribuzione “raspbian” e nella fattispecie una immagine preparata da Roberto e presente sul sito. Ovviamente per un raspberry “nudo e crudo” è sufficiente una qualsiasi distribuzione linux. E’ importante controllare che l’adattatore audio venga correttamente visto dal sistema, quindi entrando in console (comunemente terminale) dare il comando lsusb

lsusb

Successivamente con il comando aplay -l si hanno ulteriori informazioni. Digitando alsamixer è possibile invece gestire i volumi di ingresso e uscita, premere F6  e selezionare l’adattatore audio usb esterno, le freccie per evidenziare i canali e modificarne i valori.

 aplayalsamixer

Bene, adesso che sappiamo che la scheda audio è presente e correttamente riconosciuta dal sistema possiamo procedere nell’installare il sistema “streaming” che è composto da due software, il primo è il vero e proprio server (icecast2) e permette l’accesso della nostra risorsa dall’esterno, il secondo è un “client” (ices2) e si occupa di catturare il flusso audio e di “gestirlo” per poi passarlo al server. Entrambi in questa soluzione risiedono sullo stesso raspberry ma è possibile anche averli separati su due pc distinti localizzati in ambienti diversi. Per installare il server il comando è sudo apt-get install icecast2 (magari prima dare sudo apt-get update per aggiornare il software). Ulteriori informazioni si possono trovare sul  sito ufficiale icecast.org ove è presente una completa documentazione e anche la versione per Windows. Dopo aver installato icecast occorre procedere alla relativa configurazione, un file in formato XML che si trova sotto /etc/icecast2 chiamato icecast.xml 

icecast_xml

Il contenuto è di facile interpretazione, tra i molteplici metatag <opzione> </opzione> ci sono i vari parametri da configurare, ovvero le password di accesso al pannello di amministrazione, al server, la porta di ascolto (default 8000), e altro. Ovviamente consiglio di modificare solo quanto necessario e lasciare il resto di default. Salvare ed eseguire quindi il server con il comando sudo icecast -c /etc/icecast2/icecast.xml

Possiamo verificare che il server sia correttamente in ascolto digitando nella barra degli indirizzi del browser di un qualsiasi pc presente nella nostra rete locale lan http://indirizzo-del-raspberry:8000

web_icecast_server

Bene, a questo punto occorre configurare il client, ovvero “chi” cattura l’audio proveniente dal ricetrasmettitore. Installiamo quindi ices2 con il comando sudo apt-get install ices2 ( anche in questo caso ottima documentazione è reperibile – al momento la versione 2 – all’indirizzo http://icecast.org/ices/docs/ices-2.0.2/ ). E’ necessario creare la directory /etc/ices2 e copiarvici il file di configurazione di esempio (anche in questo caso nel formato XML) dalla dir /usr/share/doc/ices2/example/ices-alsa.xml

Il file ices-alsa.xml contiene numerose opzioni (di facile interpretazione) ed occorre personalizzarlo. Decidiamo se farlo girare in background mettendo il valore 1, la descrizione del nostro flusso dati (stream), l’indicazione della scheda audio presente nel nostro sistema ( <param name=”device”>hw:1,0</param> ), la password per collegarci al server prima configurato e il nome del flusso che sarà raggiungibile dall’esterno ( per esempio:  <mount>/xrf077a.ogg</mount> ). Consiglio di scorrere lentamente tutti i vari parametri e di prestare attenzione ai “commenti” presenti nelle varie sezioni. NOTA BENE: icecast non riproduce nel formato MP3 bensi in OGG VORBIS, un algoritmo libero compatibile con i vari riproduttori audio ( https://it.wikipedia.org/wiki/Vorbis ). Riporto qui i parametri che ho configurato per il nostro streaming, estrapolandoli dalle varie sezioni, sarà facile confrontarli con quelli presenti nel vostro file di configurazione:

<input>
<module>alsa</module>
<param name=”rate”>44100</param>
<param name=”channels”>1</param>
<param name=”device”>hw:1,0</param>
<!– Read metadata (from stdin by default, or –>
<!– filename defined below (if the latter, only on SIGUSR1) –>
<param name=”metadata”>1</param>
<param name=”metadatafilename”>liveaudio</param>
</input>

<encode>
<quality>0</quality>
<samplerate>44100</samplerate>
<channels>1</channels>
</encode>

<downmix>0</downmix>

<!– resampling.

Set to the frequency (in Hz) you wish to resample to,

<resample>
<in-rate>44100</in-rate>
<out-rate>44100</out-rate>
</resample> –>

Nota bene che questa sezione “resampling” è totalmente “commentata” ( tra  <!– e –> ) quindi NON OPERATIVA; ho dovuto inibirla poichè veniva riprodotta sul web una voce “a paperino” … non ho avuto tempo nè voglia di fare ulteriori prove e verifiche, magari fatemi sapere. Salviamo la configurazione ed eseguiamo il client con il comando (magari mettendolo prima di exit 0 nel file /etc/rc.local per l’avvio all’accensione del raspberry) sudo ices2 /etc/ices2/ices-alsa.xml (se abbiamo abilitato l’opzione esecuzione in background nel file di configurazione ci verrà subito restituito il prompt dei comandi). Sarà possibile visionare il log del sistema con il comando cat /var/log/ices/ices.log e capire eventuali errori di configurazione. Per vedere se tutto funziona, sempre da dentro la nostra rete lan, possiamo dare l’indirizzo sul browser http://indirizzo-del-raspberry:8000/nomedelfile.ogg (dipende dal nome che è stato inserito nel file di configurazione tra i metatag <mount>) ed ascoltare quanto viene ricevuto dal ricetrasmettitore. Chiaramente sarà necessario eseguire una NAT sul router per rendere accessibile il raspberry (e la porta di ascolto 8000) dall’esterno, oltre che creare un nome dns (es. un fornitore di nomi di dominio è duckdns.org) per rendere “pubblico” il nostro indirizzo internet.

Se volete quindi ascoltare il nostro reflector visitate dstar.grupporadiofirenze.net e troverete il riproduttore (player) per avviare la ricezione del flusso dati. Buone prove e aspetto con piacere vostri suggerimenti ed integrazioni.

output_streaming

 
dv4mini1

DV4mini chiavetta USB per D-Star, DMR e Fusion

image_pdfimage_print

Informazioni e immagini da xreflector.net

Il DV4mini è una piccola chiavetta USB con uscita RF in 70 centimetri. E ‘adatto per D-Star, DMR, fusion e tanti altri modi digitali che si basano su GMSK, 2FSK o 4FSK.

Multimode: D-Star, DMR e C4FM Fusion
Uscita in RF: 70 centimetri (UHF) ricetrasmettitore con potenza 12mW
Adatto per Windows e Linux
Per PC e ARM Single Board Computer (Raspberry, ODROID, banana, ecc …)
Compatibile al 100% con il comune Reflectorsystemen DCS, DMR, FCS (Fusion), X-Reflector e D-Plus sono supportati.
Molto facile da usare: Avvitare l’antenna, e iniziare a collegare il software.
Naturalmente, la DV4mini può essere in esecuzione su un normale PC.

Software, documentazione e firmware scaricabili da questo LINK

La chiave USB DV4mini è disponibile da www.helitron.de/shop dal 27/07/2015.

dv4minisoftware_dv4mini

pdf Button