Arzhel et son blog...

...Since 1976.

Un Raspberry Pi comme serveur RTL-SDR.

Rédigé par Arzhel Aucun commentaire

Dans mon article précédent, j'ai brièvement présenté un périphérique USB qui, pour quelques euros, permet de capter les ondes radios dans de nombreuses bandes de fréquences. Mais comme j'aime bien tout ce qui est de près ou de loin en lien avec le Raspberry Pi, voici comment à l'aide de ces deux objets (une clé TNT USB et un RPi), créer un serveur SDR. Je ne vous cache pas que ce billet est largement pompé (pour ne pas dire un copier-coller) de l'article original consultable ICI.Au fait, pourquoi RTL- SDR ? RTL pour le chipset (RTL2832U) et SDR comme software defined radio.

L'objectif est de pouvoir quelque soit l'endroit ou je suis, bénéficier de mon dongle USB sans avoir à tirer des câbles jusqu'au PC. Il est par exemple, tout à fait possible d'installer le RPi et une antenne directement dans le toit de la maison et de ne tirer qu'un câble réseau jusqu'au routeur, le PC réceptionnant quant à lui le signal confortablement assis dans le canapé via le réseau Wifi.

Installation du serveur :

Pour ce serveur, j'utilise un Raspberry Pi Model A qui traînait dans mon tiroir. C'est largement suffisant pour ce type d'application peu gourmande en ressources. Je vous dispense de l'installation de Raspbian sur une carte SD et on attaque directement et en ligne de commandes, à la mise en oeuvre de ce serveur.

La première étape consiste à installer quelques paquets requis par notre serveur :

sudo apt-get install -y  cmake pkg-config libusb-1.0

On clone le répertoire git, où nous allons récupérer le nécessaire pour compilation :

git clone git://git.osmocom.org/rtl-sdr.git

Ensuite on lance la compilation et l'installation par les commandes à exécuter une à une :

  • 1. cd rtl-sdr/
  • 2. mkdir build
  • 3. cd build
  • 4. cmake ../ -DINSTALL_UDEV_RULES=ON
  • 5. make
  • 6. sudo make install
  • 7. sudo ldconfig

Les versions récentes de Raspbian comprennent des pilotes standard afin que les clé USB RTL-SDR puissent fonctionner dans leur configuration d'origine (cad comme un périphérique USB Radio / TV). Malheureusement, ces pilotes empêchent l'accès au périphérique par le logiciel que nous allons utiliser. La solution consiste à créer un fichier de liste noire dédié pour empêcher les pilotes indésirables de se charger. Voici le processus:

On créé le fichier blacklist-rtl.conf :

sudo nano /etc/modprobe.d/blacklist-rtl.conf

Et on y ajoute les lignes suivantes :

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Il ne reste plus qu'à sauvegarder ce fichier.

On redemarre le RPi avec cette fois la clé USB de connectée

On peut tester si le serveur fonctionne via la commande :

rtl_test -t

Enfin, pour démarrer le serveur, la commande suivante permet de définir l'adresse IP à laquelle le logiciel de votre PC (par exemple SDRSharp) doit se connecter :

rtl_tcp -a ‘l'adresse IP de votre RPi’

Par exemple :

rtl_tcp -a 192.168.1.100

Il ne reste plus qu'à réutiliser cette adresse IP dans votre logiciel favori (ici SDRSharp) en sélectionnant la source RTL-SDR (TCP)

Bonus : démarrage du serveur au lancement du RPi :

Via le fichier rc.local, il est possible de démarrer le serveur SDR au démarrage du Raspberry Pi. Le délai de 10 secondes est pour permettre le démarrage de l'interface réseau.

Taper la commande :

sudo nano /etc/rc.local

Puis ajouter les paramètres en rouge dans le fichier :

sleep 10
_IP=$(hostname -I) || true
if [“$_IP”]; then
printf”My IP address is %s\n” “$_IP”
/usr/local/bin/rtl_tcp -a $_IP &
fi
exit 0

Au prochain démarrage du Raspberry Pi le serveur RTL-SDR sera lancé automatiquement sans aucune intervention

Arzhel
Photographe amateur !
Blogueur irrégulier, jadis, j’avais un compte twitter : @le_bigorneau. Mais je l'ai supprimé, j'aime pas les fruits de mer.

Écrire un commentaire

Quelle est la première lettre du mot ctqwt ?

Fil RSS des commentaires de cet article