Mon réseau

Mon réseau d’entreprise

28.2 GnuRadio

Précédent   Suivant

GnuRadio est une boîte à outil pour la radio logicielle. Elle permet de piloter des matériels ouverts et fournit de nombreuses fonctionnalités. Le premier outil à utiliser, c’est gnuradio-companion.

Il existe de nombreux outils déjà configurés pour utiliser gnuradio :

Universal Radio Hack

Le logiciel ultime pour le Hacker Ethique spécialisé en RF.

GQRX

Un analyseur de spectre pouvant démoduler les signaux radio (AM, FM…).

Sdrangelove .

Un analyseur de spectre.

Nous allons commencer par l’utiliser comme analyseur de spectre audio.

28.2.1 Premiers jeux

Nous allons commencer par jouer un peu avec GnuRadio. Pour cela, nous allons créer des signaux que nous allons analyser. L’interface de gnuradio-companion (premier lancement) est présentée dans la figure 28.7.

(image)

Fig. 28.7 : Le premier lancement de Gnuradio-companion

L’interface présente un canevas graphique qui permet de positionner les blocs qui vont être utilisés dans le projet. La partie de droite contient des bibliothèques de blocs.

Nous souhaitons mettre en place un analyseur audio. Cet analyseur peut être utilisé pour étudier le signal téléphonique par exemple.

Dans le canevas, il y a une boîte options (figure 28.8).

(image)

Fig. 28.8 : Les options de l’interface

C’est mieux d’ouvrir la boîte et d’indiquer :

  • l’identifiant ;

  • le titre du montage ;

  • le nom de l’auteur (ou des auteurs) ;

  • une courte description.

Ces éléments seront très utiles lorsque beaucoup de montage seront réalisés.

(image) il semble qu’il soit conseillé d’utiliser QT GUI comme valeur pour la génération d’options. Ce paramètre limitera l’utilisation de certains blocs. Les blocs QT et WX ne sont pas compatibles et ne peuvent être utilisés dans le même montage.

L’autre bloc initial indique la fréquence d’échantillonage. Les ordinateurs ne manipulent que des signaux numériques, il faut donc échantillonner les signaux réels. La valeur par défaut est de 32kHz, elle doit être adaptée au montage.

Nous allons commencer par créer un signal sinusoïdal. Pour cela, il faut choisir Waveform Generators => Signal Source. Il faut indiquer Float pour la sortie (Output Type. Il est possible de jouer avec les Waveform pour choisir un sinus, un carré, un triangle…

Puisque nous avons une source, il va falloir ajouter une destination (sink). Ajoutons Instrumentation =>QT =>QT GUI Frequency Sink. Il faut indiquer que la source de l’analyseur est un nombre réel (float) et demander un demi spectrum Width : half.

28.2.2 Premier contact : analyse spectrale audio

Nous allons maintenant analyser un signal réel. Ce peut être de la musique, de la parole ou même le signal d’un modem analogique.

Nous allons utiliser la carte son de l’ordinateur. Nous allons donc vérifier son comportement. Pour cela nous allons nous aider du logiciel pavucontrol qui sert d’interface pour le serveur de son du système gnu-linux : pulseaudio. Les consignes suivantes dépendent beaucoup de la version du système et surtout du matériel. Il faut donc lancer pavucontrol et sélectionner le périphérique d’entrée, comme dans la figure 28.9.

(image)

Fig. 28.9 : La gestion du son par pavucontrol.

L’onglet Enregistrement est vraisemblablement vide. Ce qui est affiché dépend de la présence d’autres logiciels audio. Il faut faire la liaison entre pulseaudio et GnuRadio. Pour cela, il faut identifier le périphérique source. L’interface en ligne de pulseaudio va nous fournir son identifiant.

$ pactl list | grep alsa_input
        Nom : alsa_input.pci-0000_00_1f.3.analog-stereo
$

La commande en ligne de commande fournit de nombreuses informations. Il n’est pas facile d’identifier la ligne pertinente pour notre action. Nous allons utiliser ce nom dans le fichier ~/.asoundrc :

pcm.pulse_monitor {
  type pulse
  device alsa_input.pci-0000_00_1f.3.analog-stereo
}

ctl.pulse_monitor {
  type pulse
  device alsa_input.pci-0000_00_1f.3.analog-stereo
}

Il faut sélectionner, dans la liste des blocs, Audio =>Audio Source. Il faut changer le nom du périphérique pour indiquer pulse_monitor, défini dans ~/.asoundrc, comme dans la figure 28.10.

(image)

Fig. 28.10 : Configuration de la source audio.

Puisque nous avons une source, il va falloir ajouter une destination (sink). Ajoutons Instrumentation =>QT =>QT GUI Frequency Sink. Il faut indiquer que la source de l’analyseur est un nombre réel (float) et demander un demi spectrum Width : half.

(image)

Fig. 28.11 : Configuration de l’analyseur de spectre.

Ensuite, il faut lier la sortie de la source à l’entrée de l’analyseur de spectre. Il faut cliquer sur la sortie de la source out, puis cliquer sur l’entrée in de l’analyseur de spectre. Une flèche est alors dessinée, comme dans la figure 28.12.

(image)

Fig. 28.12 : Le premier montage.

Il faut alors essayer de lancer le montage, bouton (image). Si tout s’est bien passé, alors une fenêtre apparaît qui ressemble à un analyseur de spectre (figure 28.13).

(image)

Fig. 28.13 : Le premier spectre audio avec un signal à 1,5khz.

Si cela n’est pas le cas, il est possible de vérifier le comportement de pulseaudio. Dans la fenêtre de pavucontrol, sous l’onglet Enregistrement il doit y avoir une application qui enregistre quand GnuRadio fonctionne, comme dans la figure 28.14.

(image)

Fig. 28.14 : GnuRadio écoute le microphone.

D’autres indications sont fournies dans la partie en bas à gauche qui affiche les messages lors de l’exécution.

Pour compléter, puisque l’analyse spectrale utilise le microphone, alors il est possible de générer un signal à partir d’un autre ordinateur et de sa carte son. Il faut :

  • 1. définir un autre moniteur pulse audio :
    pactl list | grep alsa_output

  • 2. utiliser un Waveform Generators =>Signal Source ;

  • 3. connecter à la sortie audio : Audio =>Audio Sink

28.2.3 Connexion matérielle : le HackRF

Dans cette partie, nous allons commencer à jouer avec le HackRF. c’est un composant matériel pouvant recevoir et émettre jusqu’à 6GHz, voir : le site de Great Scott Gadgets . Le traitement du signal s’effectue en logiciel, principalement gnuradio.

(image)

Fig. 28.15 : 

Il faut installer (au moins) les paquets :

apt install -y libhackrf-dev hackrf-firmware hackrf gnuradio osmo-sdr gr-osmosdr

La première commande à utiliser est hackrf_info du paquet hackrf :

=> hackrf_info
hackrf_info version: unknown
libhackrf version: unknown (0.5)
Found HackRF
Index: 0
Serial number: 000000000000000087c867dc2928485f
Board ID Number: 2 (HackRF One)
Firmware Version: 2018.01.1 (API:1.02)
Part ID Number: 0xa000cb3c 0x004f4751

Pour commencer, il faut trouver la fréquence utilisée par la télécommande. Il s’agit probablement d’une fréquence ISM. Nous utiliserons l’outil osmocom_fft, du paquet gr-osmosdr. Nous indiquons le périphérique à utiliser (hackrf) et la fréquence approximative (souvent 434MH ou 868MHz). La commande osmocom_fft -a hackrf -f 434e6 ouvre une fenêtre. En appuyant sur un bouton de la télécommande, nous voyons apparaître une raie.

Lancer gnuradio-companion. Installer un Osmocom Source. Dans le champ Device Arguments indiquer hackrf=0. Régler la fréquence désirée.

Ajouter les Instruments QT (temps, fréquence, waterfall).

Si les permissions ne sont pas suffisantes pour utiliser le hackrf, il faut que l’utilisateur appartienne au groupe plugdev. L’insertion du hackrf crée un fichier spécial qui appartient à ce groupe.

=> ls -ls /dev/hackrf-one-1-2
0 lrwxrwxrwx 1 root root 15 6 sept. 11:13 /dev/hackrf-one-1-2 -> bus/usb/001/010
=> ls -ls /dev/bus/usb/001/010
0 crw-rw----+ 1 root plugdev 189, 9 6 sept. 11:26 /dev/bus/usb/001/010

Précédent   Suivant