INSTALLAZIONE DI SVXLINK V. 14.08 SU RASPBERRY PI E SISTEMA DEBIAN LINUX

 

Prima di procedere con l’installazione collegare tutto l’hardware necessario alla raspberry.
Aggiornare sistema operativo e librerie all’ultima versione disponibile:
sudo apt-get update
sudo apt-get upgrade
E’ consigliato un riavvio dopo l’aggiornamento.

Cercando di replicare l'installazione insieme a Vittorio EA3GAP mi sono accorto di aver omesso una cosa importante, la raspberry ha una scheda audio onboard che viene vista dal sistema come device N° 0 per cui la nostra scheda audio USB diventa la N° 1 e non viene vista da SvxLink, per ovviare a ciò la cosa più semplice è disabilitare la scheda audio onboard.
Per farlo bisogna editare il file:
/etc/modules
e commentare la linea: snd-bcm2835
che diventerà quindi: #snd-bcm2835
Salvare e riavviare il sistema.

Se è installato pulseaudio rimuoverlo prima di procedere oltre:
sudo apt-get remove pulseaudio

Installazione di tutti i pacchetti necessari (alcuni potrebbero già essere presenti):
sudo apt-get install g++
sudo apt-get install make
sudo apt-get install cmake

sudo apt-get install libsigc++-2.0-dev
sudo apt-get install libsigc++-1.2-dev
sudo apt-get install libgsm1-dev
sudo apt-get install libpopt-dev
sudo apt-get install tcl8.5-dev
sudo apt-get install libgcrypt-dev
sudo apt-get install libspeex-dev
sudo apt-get install libasound-dev
sudo apt-get install alsa-utils

Aggiungere al sistema l’utente “svxlink” altrimenti la compilazione va in errore perche’ non riesce a scrivere alcune librerie:
useradd svxlink
Aggiungere al sistema il gruppo “daemon” (probabilmente ci sarà già)
groupadd daemon

Download dell’ultima versione di SVXLINK (nell’esempio la 14.08 quella disponibile alla data della presente documentazione):
Spostarsi nella propria home directory e dare il comando:
sudo wget https://github.com/sm0svx/svxlink/archive/14.08.tar.gz
Procedere con l’estrazione dei files dall’archivio scaricato:
sudo tar xvfz 14.08.tar.gz
Spostarsi nella cartella del programma:
cd svxlink-14.08
Per fare in modo che l’esecuzione di svxlink abbia un basso carico sulla cpu della raspberry pi prima della compilazione editare il file makefile.cfg, cercare la stringa   “RELEASE_CFLAGS=”
e settarla nel modo seguente:
RELEASE_CFLAGS=-g -O2 -mfloat-abi=softfp -mfpu=vfp -mcpu=native
salvare e procedere con la compilazione.
Spostarsi nella cartella dei sorgenti:
cd src
All'interno della cartella dei sorgenti creare la cartella "build" e spostarsi al suo interno:
sudo mkdir build && cd build
Dare il comando per la creazione del makefile:
sudo cmake ..
Mi raccomando spazio e due punti dopo cmake che sta a significare che deve fare il make files dalla cartella inferiore.
Se esce l'errore “Could NOT find Qt4” lanciare nuovamente cmake in modo che non verifichi QT4 che e’ per i nostri scopi opzionale:
cmake -DUSE_QT=OFF ..
Terminato il processo della creazione del makefile senza errori procedete con la compilazione:
sudo make
se tutto fila liscio e sono presenti tutte le librerie necessarie il processo dura una ventina di minuti, nel frattempo prendetevi un caffè.
Terminato il processo procedete con:
sudo make doc
Se non sono apparsi errori procedere con l’installazione:
sudo make install
A questo punto l’installazione di svxlink può dirsi terminata.

Svxlinx prevede la possibilità di utilizzare gli annunci vocali ma per farlo ha bisogno del pacchetto con i .wav che non fa parte del pacchetto principale, esistono due tipi di clips vocali, quello da 8k e quello da 16k, la raspberry è compatibile solo con quello da 16k, lo scarichiamo col comando:
sudo wget https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/14.08/svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
Procediamo con l’estrazione dei files dall’archivio scaricato:
sudo tar jvfx svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
a questo punto va creata la directory dove svxlink va a cercare i clips vocali:
sudo mkdir –p /usr/local/share/svxlink/sounds/en_US
entriamo poi nella cartella dove abbiamo estratto i files e li copiamo nella cartella appena creata:
cd en_US-heather16k
sudo cp –r * /usr/local/share/svxlink/sounds/en_US

Anche l’installazione dei clips vocali è terminata

Il passo successivo consiste nel mettere a posto tutti i files di configurazione, illustrerò qui la configurazione minima necessaria per avere un sistema funzionante,
ognuno poi leggendo la documentazione potrà fare configurazioni più dettagliate.
I files su cui andremo ad operare sono:
/etc/modprobe.d/alsa-base.conf
/usr/local/etc/svxlink/svxlink.d/ModuleEcholink.conf
/usr/local/etc/svxlink/svxlink.conf
/etc/asound.conf


Editiamo il file alsa-base.conf:
cercare la voce:  “options snd-usb-audio index = -2” e cambiare -2 con 0 (zero)
diventerà quindi: options snd-usb-audio index = 0

Editiamo il file ModuleEcholink.conf
eseguire le modifiche indicate alle voci seguenti:
#ALLOW_IP=192.168.1.0/24
rimuovere il # iniziale
CALLSIGN=yourcallsign-L
Inserire il nominativo col prefisso –L (o –R se configuriamo il collegamento con un ripetitore)
PASSWORD=your_password
Inserire la password per il collegamento a echolink
SYSOPNAME=name
Inserire il vostro nominativo che comparirà nella lista echolink
LOCATION= 144.700 JN44SH
Inserire una breve descrizione del sistema
Personalizzare l’ultima voce “DESCRIPTION” come da esempio sul file di default con i dati del vostro sistema.

Editiamo il file svxlink.conf
eseguire le modifiche indicate alle voci seguenti:
[SimplexLogic]
MODULES=ModuleEcholink
A noi interessa solo avere il modulo echolink quindi rimuovete il resto dei moduli
CALLSIGN=yourcallsign
Inserire il proprio nominativo (senza ssid)
[Rx1]
AUDIO_DEV=alsa:plughw:0
inserire 0 (zero) se corrisponde alla scheda audio usb in uso altrimenti inserire il numero corretto
SQL_DET=VOX
selezioniamo il sistema vox
Commentare tutte le righe con "SERIAL"
[Tx1]
AUDIO_DEV=alsa:plughw:0
inserire lo stesso valore usato per la sezione [Rx1]
PTT_TYPE=GPIO
PTT_PIN=gpio17

Se non lo fossero commentare con # tutte le righe per il settaggio del PTT su RS232 e inserite le righe sopra, qui abbiamo utilizzato il GPIO 17, ovviamente usate quello che più vi aggrada. Alla fine della presente documentazione trovate maggiori informazioni sulla gestione del PTT

Editiamo il file asound.conf
Il file asound conf deve contenere solo quanto sotto riportato, eliminare eventuali altre voci presenti di default:

pcm.mmap0 {
type mmap_emul;
slave {
pcm “hw:0,0”;
}
}
#
pcm.lowrec {
type plug;
slave {
pcm “hw:1,0”;
}
}


Se il file asound.conf non esiste createlo e fate un copia ed incolla di quanto sopra e salvate.
A questo punto installazione e configurazioni di base sono terminate, fate un reboot del sistema.

Per i primi test fate partire svxlink da riga di comando col comando:
sudo svxlink
in questo modo svxlink invierà l’output allo stdout (lo schermo) e potremo vedere a video il corretto funzionamento o eventuali errori da correggere.
Quando tutto sarà testato ed operativo svxlink andrà fatto partire come “demone” col comando:
sudo svxlink --daemon
in questo modo funzionerà in background, sarà anche opportuno se utilizzato come sistema sempre online inserire la voce nell’init.d e configurarlo per il lancio automatico all’avvio del sistema.
Un’altra cosa da fare nei primi test sarà la configurazione dei livelli audio e mic della scheda audio, va fatto col pannello di configurazione alsamixer che si richiama  col comando:
sudo alsamixer
Ci troveremo davanti una schermata come la seguente:

alsamixer.jpg

Questa è la mia configurazione attuale ma andrà ottimizzata in base al proprio sistema.
Probabilmente al primo avvio la configurazione del MIC sarà in mute col volume a zero, selezionare la voce mic col tasto TAB e/o tasti freccia destra-sinistra poi premere il tasto “m” per settare il mute off quindi aggiustare i livelli audio con i tasti freccia su-giu.
Trovare i livelli coretti, visualizzare anche l’output sullo schermo mentre si parla alla radio, se appare l’avvertimento “Distorsion detected!...” abbassare il livello microfonico.
Queste sono le cose basilari per rendere il sistema funzionante, non ho parlato di molte altre cose, ad esempio come inviare i dati su aprs.fi o come interfacciare la scheda audio con l’rtx ma sono cose di cui si trovano ampie documentazioni e comunque come sempre… se avete dubbi chiedete!


UTILIZZO GPIO PER IL PTT
Per poter utilizzare un pin GPIO per il comando del PTT il GPIO prescelto va prima esportato in sys/class.
Per fare ciò dare i seguenti comandi (esempio per il GPIO 17):
esporto GPIO17
echo "17" >/sys/class/gpio/export
lo setto come uscita
echo "out" >/sys/class/gpio/gpio17/direction


Questi comandi vanno dati ad ogni riavvio per cui dopo i test andranno messi in /etc/rc.local

UTILITY
EA3GAP dopo alcuni mesi di utilizzo ha riscontrato che sporadicamente può succedere che svxlink anche se è attivo sulla raspberry in realtà non risponde ai collegamenti di rete, verificando sul sito echolink risulta offline pur essendo regolarmente attivo. Per ovviare a questo inconveniente ho realizzato uno script che verifica sul sito echolink se il gateway è online.
Se risulta offline verifica se il demone SvxLink è attivo sulla raspberry, se è attivo lo chiude e lo fa ripartire, se per qualsiasi caso non fosse attivo lo fa semplicemente partire.
Lo script andrà inserito nel cron in modo che faccia la verifica ogni X minuti.
Chi è interessato può scaricare lo script con la seguente procedura:
spostarsi nella cartella di destinazione, ad es:
cd /home/pi

digitare:
wget http://cloud.ik1whn.com/parse.sh

come avrete capito lo script si chiama "parse.sh"
assegnate i permessi allo script col comando:
chmod 755 ./parse.sh

Lo script è abbastanza commentato, inseritevi il nominativo del vostro nodo echolink e siete pronti per farlo funzionare

 

IK1WHN Mauri  -   Info:    ik1whn (at) ik1whn.com