sabato 6 febbraio 2021

Direwolf su Ubuntu per APRS con Xastir

 Una volta installato Xastir come dall'articolo dello scorso mese ci trovavamo limitati all'operare con il TNC entrocontenuto nel Kenwood (o via internet); ma esiste un modo per fare APRS via radio anche senza un TNC. E questo modo è Direwolf.

Direwolf è un software che emula, tramite scheda audio, un modem packet con velocità fino a 1200 baud (velocità superiori sarebbero teoricamente possibili ma sconsigliate senza TNC fisici, le “distorsioni” introdotte dalle schede audio potrebbero inficiare l'intelligibilità del pacchetto). Dalla pagina GitHub troviamo i file sorgente e le istruzioni per la loro installazione.


Leggendo nelle note scopriamo che prima di occuparci di Direwolf dobbiamo installare alcuni pacchetti di sviluppo che serviranno in parte durante la scrittura del software nel kernel del sistema operativo ed in parte durante la sua esecuzione.
In particolare git, gcc, g++, make e cmake serviranno per la scrittura del software mentre libasound2-dev e libudev-dev sono librerie che consentiranno, a software installato, di farlo lavorare la prima avendo contenute informazioni audio avanzate mentre la seconda gestendo le periferiche.
Ognuno di questi pacchetti va installato con il comando sudo apt-get install NOMEPACCHETTO.  Qualora avessimo già alcuni di questi installati non ci preoccupiamo dato che il terminale alla fine delle operazioni di volta in volta il terminale ci restituirà tra le informazioni se il pacchetto è stato installato, se era già presente per cui non ha modificato nulla o se vi era una versione più vecchia che è stata aggiornata.

Ora occupiamoci del software vero e proprio; alcune di queste azioni si possono fare sia da terminale che da interfaccia grafica. Una volta capita la logica di funzionamento procedere completamente da terminale è più veloce ed anche più sicuro dato che basta fare copia ed incolla dei comandi e ci mettiamo al riparo da errori di battitura o errori vari che possono accadere spostando i file in cartelle e sottocartelle.
Lavoriamo dalla cartella /home/NOMEUTENTE che è quella in cui si posiziona il terminale alla sua apertura (identificata all'inizio della riga di comando con il simbolo ~; qualora fossimo posizionati altrove per tornare qui basta dare comando cd ~) e con git clone https://www.github.com/wb2osz/direwolf scarichiamo i file presenti nel progetto su GitHub che verranno posizionati automaticamente in una nuova cartella dal nome /direwolf/;
con cd direwolf da terminale entriamo nella sottocartella ~/direwolf/, vedremo comparire il percorso a fianco del nome utente nella riga di comando e, da ora in poi, i comandi inseriti verranno eseguiti in questa cartella.
Diamo comando git checkout dev, non ho ben capito a cosa serva, credo ad ordinare i file da eseguire in una qualche struttura logica (se qualcuno ci capisce qualcosa lasci un commento) e successivamente con mkdir build && cd build creiamo un’ulteriore sottocartella e ci entriamo. Diamo comando cmake .. ("cmake" esegue le istruzioni di compilazione contenute in un file che si chiama makefile mentre ".." indica che questo file si trova nella cartella superiore). Digitiamo make -j4 e, successivamente, sudo make install per procedere alla vera e propria installazione del file. Ultimo passaggio con il comando make install-conf inseriremo nel percorso un file chiamato direwolf.conf che successivamente andremo ad editare per impostare i parametri del TNC virtuale.

Ora che Direwolf è installato bisogna procedere alla sua configurazione.
Innanzitutto dobbiamo raccogliere alcune informazioni riguardo le nostre periferiche audio.
Da nuova scheda terminale (posizionato in ~) diamo arecord -l ed otterremo qualcosa di simile: 

scheda 0: Intel [HDA Intel], dispositivo 0: Generic Analog [Generic Analog]  Sottoperiferiche: 1/1
  Sottoperiferica #0: subdevice #0
scheda 1: Device [USB Sound Device], dispositivo 0: USB Audio [USB Audio]
  Sottoperiferiche: 0/1
  Sottoperiferica #0: subdevice #0


Ovvero l’elenco delle periferiche audio. In questo caso vi sono due schede audio in quanto ho quella integrata nel laptop (scheda 0) e quella via USB che utilizzo per i modi digitali con il KX3 (scheda 1).
Interessa prendere nota del numero di scheda (card per distro in inglese) e dispositivo (device) della periferica che si intende utilizzare. Nel mio caso annoteremo 0,0 per indirizzare Direwolf sulla scheda audio integrata oppure 1,0 per quella USB.


Torniamo nella scheda del terminale in cui lavoravamo su direwolf (eventualmente diamo cd ~/direwolf/build per rientrare in questa cartella da nuova finestra del terminale) e digitiamo sudo nano direwolf.conf per aprire il file di configurazione del TNC virtuale.
Scendiamo fino alla riga # ADEVICE e controlliamo che i parametri plughw:
 corrispondano a quelli della sche da audio (plughw:CARD,DEVICE); rimuoviamo l’asterisco con cui inizia la riga (noteremo che la riga cambia colore in quanto diventerà una vera e propria istruzione che il software seguirà).
Scendiamo ulteriormente nel file fino a trovare la riga  MYCALL dove inseriremo il nostro nominativo al posto della scritta NOCALL.
Salviamo e chiudiamo il file.

Ora dovrebbe essere tutto a posto. Chiudiamo le varie finestre del terminale.

Per avviare Direwolf apriamo una finestra del terminale e diamo comando sudo direwolf -p . Questa finestra dovrà essere lasciata aperta per tutta la sessione ma da qui cogliamo una info essenziale: tra i dati che il terminale ci restituisce all'avvio di Direwolf, nell'ultima riga notiamo l'indirizzo della porta seriale virtuale che il software ha creato e su cui simula il TNC. Dovrebbe essere /tmp/kisstnc (vedi lo screenshot sotto).

(vedi lo screenshot sotto)


Ora apriamo Xastir e tramite interfacce → interface control creiamo una nuova connessione (aggiungi) selezionando il tipo TNC seriale in KISS.
Nella finestra di configurazione del TNC che ci si aprirà ci basterà indicare nella finestra TNC port il percorso indicatoci da Direwolf ed impostare la velocità a 1200 bps. (vedi lo screenshot sotto).


 


Per il collegamento alla radio bastano i classici cavetti adattatori con le solite resistenze. In RX si può semplicemente collegare con un banale cavo jack-jack l'uscita altoparlante della radio all'ingresso line-in o mic sul PC (per i portatili con uscita combinata cuffie+microfono serve un adattatore). Con questa modalità possono esserci delle criticità sul funzionamento nate dalla distorsione dei segnali audio; basterà giocare un po' coi volumi sia della radio che dell'ingresso microfonico del pc per ottenere un segnale intelleggibile che ci permetta di vedere le stazioni comparire sulla mappa.

Nota importante: ad un nuovo avvio del PC o di Xastir è importante avviare Direwolf tramite comando sudo direwolf -p prima di tentare di aprire la connessione al modem (virtuale) su Xastir. Se per errore si tenterà il contrario da terminale vedremo messaggi di errore in quanto Direwolf non sarà in grado di procedere sulla porta seriale simulata in quanto già occupata da altra app.

SETUP:
Kenwood tm-d710e
Lenovo ThinkPad T510
Scheda audio USB economica
cavo jack 3.5mm-jack 3.5mm stereo per RX
Ubuntu 20.04 LTS

Nessun commento:

Posta un commento