INSTALLAZIONE DI SVXLINK 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 scheda onboard va disabilitata.
Per farlo bisogna editare il file:
/etc/modules
e commentare la linea: snd-bcm2835
che diventerà quindi: #snd-bcm2835
Salvare e riavviare il sistema.

Altra cosa importante da fare è configurare la raspberry in modo che la rs232 non sia dedicata al collegamento da cosole ma sia utilizzabile come rs232 classica come spiegato più avanti.

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 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


Download dell’ultima versione di SVXLINK (nell’esempio la 13.12, quella disponibile alla data della presente documentazione):
Spostarsi nella propria home directory e dare il comando:
sudo wget http://sourceforge.net/projects/svxlink/files/svxlink/13.12/svxlink-13.12.tar.gz
Procedere con l’estrazione dei files dall’archivio scaricato:
sudo tar xvfz svxlink-13.12.tar.gz
Spostarsi nella cartella del programma e procedere con la compilazione:
cd svxlink-13.12
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è.
Se non sono apparsi errori procedere con l’installazione:
sudo make install
A questo punto l’installazione di svxlink è 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 http://sourceforge.net/projects/svxlink/files/sounds/13.12/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/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/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
/etc/svxlink/svxlink.d/ModuleEcholink.conf
/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
SERIAL_PORT=/dev/ttyUSB0
selezioniamo la RS232 per l’attivazione
[Tx1]
AUDIO_DEV=alsa:plughw:0
inserire lo stesso valore usato per la sezione [Rx1]
PTT_PORT=/dev/ttyUSB0
RS232 per il segnale PTT, in questo modo viene inviato il segnale per l’attivazione del PTT sull’adattatore usb-seriale che deve essere presente e configurato come device ttyUSB.
Alla fine della documentazione viene spiegato per chi ha la raspberry pi V.2 come utilizzare il connettore GPIO per il segnale PTT quindi senza la necessità di un adattatore USB/RS232. 

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!


NOTE SULL’UTILIZZO DELLA RS232 PER IL SEGNALE DEL PTT
Nella configurazione che abbiamo fatto è previsto di utilizzare un adattatore Usb-seriale collegato ad una delle prese usb della scheda (device /dev/ttyUSB) questo è quanto si può fare con la Raspberry V.B1 e comunque funziona bene, la raspberry sul connettore I/O ha la RS232 ma presenta solo i pin TX, RX e GND e non i segnali RTS o CTS che sono necessari per il segnale del PTT.
Nella Raspberry V.B2 (quella con i due fori per il fissaggio sulla scheda) è stato aggiunto un connettore (P5) a fianco a quello esistente con degli I/O aggiuntivi, vedi riquadro giallo nella foto seguente:

rs232-gpio.jpg


Tra questi I/O aggiuntivi ce ne sono due, il GPIO30 (pin 5) ed il GPIO31 (pin 6) che possono essere configurati come RTS e CTS per la RS232 on board.
A questo punto possiamo eliminare l’adattatore usb/seriale ed utilizzare il pin 6 del connettore P5 come segnale per il PTT.
Apro una piccola parentesi, la rs232 presente sulla Raspberry ha come configurazione predefinita quella di collegamento ad una console per la visualizzazione dei messaggi del kernel, utilizzo molto frequente nei sistemi Linux, per cui per poterla utilizzare va “liberata” da tale uso.

Vediamo come fare, per prima cosa editiamo il file:
/boot/cmdline.txt
e rimuoviamo l’opzione seguente:
console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

Editiamo poi il file:
/etc/inittab
cerchiamo la linea seguente e disabilitiamola con un # davanti:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200
per cui la riga diventerà:
# T0:23:respawn:/sbin/getty -L ttyAMA0 115200
A questo punto facciamo un riavvio e la seriale sarà a nostra disposizione.

Per l'utilizzo della rs232 on board va ovviamente variato il file:
/etc/svxlink/svxlink.conf
sostituendo "/dev/ttyUSB0" con "/dev/ttyAMA0"

Non abbiamo però ancora terminato, le linee GPIO possono gestire vari segnali in base alla configurazione, con quella predefinita non abbiamo però i segnali RTS e CTS che ci sono necessari, per poterli configurare ci necessita un tool che non è presente sul sistema ma va scaricato e compilato.

Vediamo come fare:
andiamo nella nostra home directory e creiamo la cartella rpi-tools:
mkdir rpi-tools
spostiamoci dentro alla cartella appena creata:
cd rpi-tools
scarichiamo il necessario col comando:
git clone https://github.com/rewolff/bw_rpi_tools.git
spostiamoci nella cartella per l’installazione:
cd bw_rpi_tools/gpio
compiliamo ed installiamo le utility con i comandi:
make
sudo make install

ATTENZIONE!!! Sulla versione attuale del makefile c’è un errore che impedisce la compilazione, se dopo il “make” escono errori sull’impossibilità di copiare alcuni files apportare le seguenti modifiche:
aprire con un editor il Makefile e cercare la riga seguente:
cp $(BINARIES) $(SCRIPTS) $(BINDIR)
eliminare $(SCRIPTS) e diventerà:
cp $(BINARIES) $(BINDIR)
salvare e ricompilare (make e dopo make install)
A questo punto potrete visualizzare l’assegnazione dei pin col comando:
sudo gpio_list
Per riassegnare i pin RTS/CTS dare i seguenti comandi:
sudo gpio_setfunc 31 ALT3
sudo gpio_setfunc 30 ALT3

A questo punto collegando un tester al pin 6 vedrete che saranno presenti 3,3V che andranno a zero quando arriva il segnale di attivazione del PTT, con un paio di transistor avrete risolto il problema del PTT.
L'assegnazione del pin va persa al riavvio per cui si dovrà creare uno script che assegna la funzione RTS/CTS e dopo avvia svxlink come demone, lo script finiti i test andrà inserito nel giusto runlevel in modo che venga avviato da init al boot.
Altra cosa che andrebbe fatta in un sistema on line 24H/24 è inserire nel cron un controllo sul processo svxlink in modo che venga riavviato automaticamente in caso di crash.

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