Mon réseau d’entreprise
28.2 GnuRadio
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.
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).
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.
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.
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.
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.
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.
Il faut alors essayer de lancer le montage, bouton
. Si tout s’est bien passé, alors une fenêtre apparaît qui ressemble à un analyseur de spectre (figure 28.13).
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.
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.
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








