INSTALLAZIONE DI SVXLINK V. 19.09.2 SU RASPBERRY PI 4B+ E SISTEMA RASPBERRY PI OS – 22/08/2021

 

Prima di procedere con l’installazione collegare tutto l’hardware necessario al raspberry.

Aggiornare il sistema operativo all’ultima versione disponibile ed infine riavviare il sistema:

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo reboot now

Per tutti i pigroni che non hanno voglia di dare i comandi manualmente, ho creato un file bash da scaricare qui che farà in automatico tutta la procedura fino alla sezione 2. Importante, una volta scaricato lo script, dategli i massimi privilegi con il comando sudo chmod a+rwx script.sh e poi fatelo partire con sudo bash script.sh dalla cartella home.

 

Installazione di tutti i pacchetti necessari (alcuni potrebbero già essere presenti mentre altri potrebbero venire sostituiti con versioni più aggiornate):

  • sudo apt-get install sigc++
  • sudo apt-get install cmake
  • sudo apt-get install tk-dev
  • sudo apt-get install tk8.5-dev
  • sudo apt-get install libgsm1-dev
  • sudo apt-get install libpopt-dev
  • sudo apt-get install libopus-dev
  • sudo apt-get install libgcrypt20-dev
  • sudo apt-get install libspeex-dev
  • sudo apt-get install libasound2-dev
  • sudo apt-get install librtlsdr-dev
  • sudo apt-get install rtl-sdr
  • sudo apt-get install libssl-dev
  • sudo apt-get install groff
  • sudo apt-get install libcurl4-openssl-dev
  • sudo apt-get install libjsoncpp-dev
  • sudo apt-get install vorbis-tools

Aggiungere al sistema l’utente “svxlink” altrimenti la compilazione va in errore perché non riesce a scrivere alcune librerie:

  • sudo adduser svxlink
  • sudo adduser svxlink gpio
  • sudo adduser svxlink audio
  • sudo adduser svxlink dialout
  • sudo adduser svxlink plugdev
  • sudo adduser svxlink daemon

Download dell’ultima versione di SVXLINK (nell’esempio la 19.09.2 quella disponibile alla data della presente documentazione)

Spostarsi nella propria home directory e scaricarlo:

  • cd
  • sudo wget https://github.com/sm0svx/svxlink/archive/refs/tags/19.09.2.tar.gz

Procedere con l’estrazione dei files dall’archivio scaricato:

  • sudo tar xvfz 19.09.2.tar.gz

Spostarsi nella cartella del programma:

  • cd svxlink-19.09.2

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 -DUSE_QT=OFF ..

Mi raccomando lo spazio e i due punti dopo il comando sono importanti perché indicano che deve fare il makefile dalla cartella inferiore.

Terminato il processo della creazione del makefile senza errori procedete con la compilazione:

  • sudo make
  • sudo make doc
  • sudo make install
  • sudo ldconfig

se tutto fila liscio e sono presenti tutte le librerie necessarie il processo partirà e durerà un po’. A questo punto l’installazione di svxlink può dirsi terminata.

Svxlinx ha bisogno del pacchetto di clips vocali. Torniamo nella nostra home e lo scarichiamo:

  • cd
  • sudo wget https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/19.09/svxlink-sounds-en_US-heather-16k-19.09.tar.bz2

Procediamo con l’estrazione dei files dall’archivio scaricato:

  • sudo tar jvfx svxlink-sounds-en_US-heather-16k-19.09.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-heather-16k
  • sudo cp -r * /usr/local/share/svxlink/sounds/en_US

Anche l’installazione dei clips vocali è terminata.

Sezione 2

Il passo successivo consiste nel configurare i seguenti files:

  • /usr/local/etc/svxlink/svxlink.d/ModuleEchoLink.conf
  • /usr/local/etc/svxlink/svxlink.conf

Qui la guida completa del file ModuleEchoLink.conf

Qui la guida completa del file svxlink.conf

Editiamo il file ModuleEchoLink.conf (Comando sudo nano)

eseguire le modifiche indicate alle voci seguenti:

  • #ALLOW_IP=192.168.1.0/24

rimuovere il # iniziale

  • CALLSIGN=yourcallsign-L

Inserire il nominativo col suffisso L o R a seconda che sia nodo o ripetitore

  • PASSWORD=your_password

Inserire la password per il collegamento a echolink

  • SYSOPNAME=name

Inserire il vostro nome che comparirà nella lista echolink

  • LOCATION= [SvxRpi] luogo frequenza

Inserire la città e la frequenza radio

Personalizzare l’ultima voce “DESCRIPTION” 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 locator

Inserire il proprio nominativo e il locator

[Rx1]

  • AUDIO_DEV=alsa:plughw:1

inserire il numero corrispondente alla scheda audio usb in uso

  • SQL_DET=VOX

selezioniamo il sistema vox. Commentare tutte le righe con “SERIAL”

[Tx1]

  • AUDIO_DEV=alsa:plughw:1

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.

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 il seguente comando:

  • sudo nano /etc/rc.local

 ed aggiungere le seguenti righe prima di “exit 0”:

  • echo 17 > /sys/class/gpio/export
  • echo “out” > /sys/class/gpio/gpio17/direction
  • echo 0 > /sys/class/gpio/gpio17/value
  • echo 18 > /sys/class/gpio/export
  • echo “in” > /sys/class/gpio/gpio18/direction

(Nell’operazione di copia e incolla fare attenzione che le virgolette siano quelle tecniche (Shift+2) e non quelle grafiche)

Per i primi test fate partire svxlink da terminale col comando:

  • sudo svxlink

in questo modo svxlink invierà l’output allo 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 nel file 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

Nella schermata di alsamixer selezionare la scheda audio con F6, poi attivare tutti i volumi con F5 ed infine regolare i volumi:

  • Headphone: da echolink (PC) a radio
  • Mic: non utilizzato (mettere in mute e a zero)
  • Mic Capture: da radio a echolink (PC)
  • Auto Gain: attivato

Se si vuole far partire il server svxlink ad un determinato orario si può usare questo comando:

  • crontab -e

inserendo i due comandi per lo start e lo stop del server:

  • sudo svxlink –daemon
  • sudo killall svxlink

SvxLink, se non modificato, genera dei “bip” quando ci sono interruzioni sui pacchetti dati. Se volete eliminare questi “bip” occorre modificare il file: EchoLink.tcl che si trova in /usr/local/share/svxlink/events.d/ quindi:

  • sudo nano /usr/local/share/svxlink/events.d/EchoLink.tcl

Cercate:

proc is_receiving {rx} { 

if {$rx == 0} { 

playTone 1000 100 100; 

Modificate così:

proc is_receiving {rx} { 

if {$rx == 0} { 

# playTone 1000 100 100;

}

Inoltre cercate:

proc squelch_open {is_open} {

if {!$is_open} { 

   playSilence 200  

   playTone 1000 100 100

}

}

Modificate così:

proc squelch_open {is_open} {

if {!$is_open} { 

   playSilence 200  

#  playTone 1000 100 100

}

}

Verificare la configurazione di rete: editiamo il file dhcpcd.conf

  • sudo nano /etc/dhcpcd.conf

Aggiungere alla fine le seguenti righe e commentare altre eventualmente simili

  • interface eth0
  • static ip_address=192.168.1.31/24 # proprio indirizzo IP
  • static routers=192.168.1.254 # proprio gateway
  • static domain_name_servers=8.8.8.8 # proprio DNS
  • noipv6
  • interface wlan0
  • static ip_address=192.168.1.32/24 # proprio indirizzo IP
  • static routers=192.168.1.254 # proprio gateway
  • static domain_name_servers=8.8.8.8 # proprio DNS
  • noipv6

Editare o creare il file wpa_supplicant:

  • sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Il file deve apparire come sotto, dove ssid è quello della rete wifi in uso e psk è la password WPA della rete wifi:

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

network={
          ssid=”CUCCIOLO”
          psk=”**********”
}

Creazione di una partizione temporanea su RAM per salvare il file di log senza scrivere sulla sd. Questa operazione ci permette di far durare più a lungo nel tempo la nostra sd, ma ovviamente ad ogni riavvio del sistema la partizione si cancella e il log si perde.

Digitare i seguenti comandi:

  • mkdir /tmp/log
  • sudo cp -p /etc/fstab  /etc/fstab.save
  • sudo nano /etc/fstab

Aggiungere la seguente linea:

  • tmpfs    /tmp/log    tmpfs    nodev,nosuid,size=20M    0    0

Salvare e poi concludere col seguente comando:

  • sudo mount /tmp/log

Per verificare usare il seguente comando:

  • df -h

Creazione file bash per l’avvio di svxlink

  • sudo nano /home/pi/ssvv

Aggiungere queste righe:

  • #!/bin/bash
  • sudo svxlink –daemon –logfile=/tmp/log/svxlink.log

Creazione file bash per l’avvio del log

  • sudo nano /home/pi/log

Aggiungere queste righe:

  • #!/bin/bash
  • tail -f /tmp/log/svxlink.log

Creazione file bash per fermare svxlink

  • sudo nano /home/pi/stop

Aggiungere queste righe:

  • #!/bin/bash
  • sudo killall svxlink

Diamo i permessi ai files appena creati

  • sudo chmod a+rwx ssvv
  • sudo chmod a+rwx log
  • sudo chmod a+rwx stop

 


APPENDICE A

Se per vostre esigenze avete bisogno di cambiare alcuni file audio come per esempio il file greeting.wav che è la sintesi ascoltata da chiunque si connetta tramite echolink, bisogna seguire una certa procedura:

  1. Dare comando: sudo apt-get install sox
  2. Creare il vostro file audio di tipo .WAV con un formato 16 bit PCM, una frequenza 16000 Hz, mono
  3. Copiare il file nella cartella /usr/local/share/svxlink/sounds/en_US/EchoLink
  4. Spostarsi in questa cartella
  5. Fare un backup del file da sostituire
  6. Dare comando: sudo sox origine.wav -r 16000 -e signed-integer -b 16 -L destinazione.wav
  7. (Ovviamente origine.wav è il vostro file mentre destinazione.wav è il nome del file da sostituire che deve mantenere il suo nome originale, altrimenti svxlink non lo trova e restituisce un errore)
  8. Il gioco è fatto

APPENDICE B

Impostare l’ordine delle schede audio

La scheda audio predefinita è la prima nell’elenco rilevato da ALSA. Questo elenco però potrebbe cambiare a ogni reboot (ad esempio se abbiamo delle schede audio USB che vanno e vengono), e questo può dare problemi sia per avere dei riferimenti certi delle schede, sia per sapere qual è la scheda predefinita. Considerando che alcuni programmi usano sempre la stessa, spesso cambiarla è una rottura, è importante specificare un ordine.

Per prima cosa dobbiamo capire quali sono i moduli del kernel legati alle nostre schede, con questo comando:

  • lsmod | grep “^snd_” | column -t

Il risultato nel mio caso è:

snd_hda_codec_hdmi     23704   1
snd_hda_codec_realtek  59331   1
snd_usb_audio          100181  2
snd_usbmidi_lib        18744   1  snd_usb_audio
snd_rawmidi            18479   1  snd_usbmidi_lib
snd_seq_device         5300    1  snd_rawmidi
snd_hda_intel          25700   2
snd_hda_codec          97464   3  snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_hwdep              6300    2  snd_usb_audio,snd_hda_codec
snd_pcm                74926   4  snd_usb_audio,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
snd_page_alloc         7217    2  snd_pcm,snd_hda_intel
snd_timer              18966   1  snd_pcm

I moduli effettivi in genere sono quelli che non hanno moduli collegati a destra, e che non hanno la parola “codec” nel nome. Nel mio caso: snd_usb_audio e snd_hda_intel.

A questo punto creiamo un file con sudo nano /etc/modprobe.d/alsa.conf così fatto:

options snd slots=snd_hda_intel,snd_usb_audio
options snd_hda_intel index=0
options snd_usb_audio index=1

Questo specifica che la scheda intel è sempre al primo posto, e poi segue l’usb.

Riavviamo e siamo a posto.

Per verificare l’assegnazione delle schede:

  • aplay -l

APPENDICE C

Recuperare la password di accesso al Raspberry

Se vi siete dimenticati la password di accesso al vostro raspberry dovete seguire questi passaggi:

  • Spegnere il raspberry, estrarre la micro sd card e collegarla ad un computer
  • Cercare il file cmdline.txt
  • Editare il file e aggiungere alla fine il comando init=/bin/sh
  • Salvare il file ed espellere la micro sd card e reinserirla nel raspberry
  • Collegare il raspberry ad un monitor e una tastiera e accenderlo
  • Finito il bootstrap dare i comandi:
  • mount -o remount, rw /
  • passwd pi (inserire l’utente)
  • (inserire la nuova password)
  • (reinserire la nuova password)
  • sync
  • exec /sbin/init
  • Fare lo shutdown, togliere la micro sd e reinserirla sul pc
  • Editare di nuovo il file cmdline.txt e cancellare il comando aggiunto in precedenza
  • Salvare il file ed espellere la micro sd card e reinserirla nel raspberry
  • Riavviare il raspberry nuovamente digitando la nuova password alla richiesta.

Ringrazio tantissimo l’amico Vittorio EA3GAP per l’insegnamento di tutto ciò che so sul server svxlink e non posso non menzionare il mio grande maestro di sempre Bruno I0YCB.

73 da Fabio IZ0WLH