Antro di Jacopo

Come eseguire SDRSharp su Ubuntu


SDRSharp è uno dei migliori se non il miglior software SDR per l'uso con le chiavette RTL-SDR e similari (Dexatek, hackRF etc.).

L'unico difetto è la mancanza di una versione nativa per Linux. Ma niente paura! È sempre possibile installarlo manualmente sfruttando Mono.

Ho testato questo procedimento su Ubuntu 19.10 ma penso che con qualche leggera modifica (principalmente i nomi dei pacchetti e ovviamente del gestore dei pacchetti) possa funzionare anche su altre distro non basate su Debian.

Per prima cosa installiamo questi pacchetti che serviranno per compilare SDRSharp.

sudo apt install mono-complete libportaudio2 librtlsdr0 librtlsdr-dev rtl-sdr

Andiamo ora in una directory pulita (va bene anche il desktop se non siete troppo ordinati ;)) e cloniamo il repository Github:

git clone https://github.com/cgommel/sdrsharp

Ora compiliamo SDRSharp:

cd sdrsharp

xbuild /p:TargetFrameworkVersion="v4.5" /p:Configuration=Release

Per evitare problemi creiamo due link simbolici in modo che Mono trovi facilmente le librerie richieste:

ln -s /usr/lib/x86_64-linux-gnu/libportaudio.so.2 Release/libportaudio.so

ln -s /usr/lib/x86_64-linux-gnu/librtlsdr.so.0 Release/librtlsdr.dll

Ora che tutto è pronto possiamo eseguire il programma.

cd Release mono SDRSharp.exe

Selezioniamo dal menù in alto a sinistra la voce RTL-SDR USB e premiamo su Play. Provate a sintonizzare un'emittente FM tipo Radio Due per prova. "Qualcosa" dovrebbe uscire dagli altoparlanti! (Nel caso si senta solo fruscio, controllate di aver selezionato la modalità WFM (FM larga) in alto a sinistra!)

SDRsharp in funzione

Risoluzione problemi

Se appena si preme Play appare questo messaggio di errore:

RTL-SDR / USB is either not connected or its driver is not working properly

è necessario aggiungere una regola in udev che permetta l'uso del dongle SDR da parte di utenti non-root.

Per fare ciò per prima cosa è necessario aggiungere l'utente corrente al gruppo plugdev:

sudo adduser $(whoami) plugdev

Se l'utente era già nel gruppo si può procedere oltre, altrimenti occorre riavviare il computer.

Ora bisogna trovare il Vendor e Product ID della nostra chiavetta SDR, a tale scopo adoperiamo lsusb. L'output sarà simile a questo:

Bus 001 Device 009: ID 1d19:1101 Dexatek Technology Ltd. DK DVB-T Dongle

Segnamoci i numeri dopo ID che nel mio caso sono 1d19 (il Vendor ID) e 1101 (il Product ID).

Ora apriamo (o creiamo) il file 20-rtlsdr.rules:

sudo -e /etc/udev/rules.d/20.rtlsdr.rules

In questo file inseriamo questa riga, modificando 1d19 e 1101 con il Vendor e Product ID che abbiamo recuperato prima:

SUBSYSTEM=="usb",ATTRS{idVendor}=="1d19",ATTRS{idProduct}=="1101",GROUP="adm",MODE="0666",SYMLINK+="rtl_sdr"

Ora scolleghiamo la chiavetta SDR dal computer, riavviamo udev (sudo systemctl restart udev) e ricolleghiamo la chiavetta.

Testiamo il tutto con rtl_test -t e controlliamo che non ci siano errori.