Documentation d'installation complète d'une station¶
- Contenu
- Documentation d'installation complète d'une station
- Installation de GNU/Linux Xubuntu 14.04 LTS
- Installation d'UHD et GNURadio à partir des paquets binaires Ettus Research
- Configuration d'une carte USRP N210
- Installation des composants additionnels (exemples et démos)
- À faire
- GNU/Linux Xubuntu 14.04 LTS ;
- Pilote UHD (binaires Ettus Research) ;
- GNURadio (binaires Ettus Research) ;
- Modules complémentaires (gr-air-modes, multimon-ng...).
L'interface d'émission-réception sera une carte Ettus USRP N210 équipée d'une carte fille WBX. Pour le déploiement d'autres modèles, se reporter à la page principale du wiki : https://openforge.isae.fr/projects/ralf-radio-logicielle-pour-la-formation/wiki
Les logiciels choisis offrent un bon compromis entre stabilité (système d'exploitation supporté jusqu'en 2019) et actualité (composants critiques UHD et GNURadio mis à jour fréquemment par Ettus Research).
Ce document d'installation se base sur un déploiement réalisé en juillet 2014. Il est nécessaire de disposer d'une clé USB d'installation ainsi que d'une connexion à Internet pour résoudre les dépendances et déployer les modules additionnels.
Installation de GNU/Linux Xubuntu 14.04 LTS¶
Le choix de cette distribution (v. 14.04) est motivé par le fait qu'elle bénéficie d'un support à long terme (de 2014 à 2019) et que la société Ettus Research ait choisi de maintenir des paquets binaires Ubuntu du pilote UHD et de GNURadio. Par ailleurs, notons que nous avons choisi l'environnement graphique de bureau XFCE à la place de Unity fourni par défaut avec Ubuntu (il s'agit de l'unique différence entre Xubuntu et Ubuntu).
La procédure d'installation se déroule à partir d'une clé USB bootable contenant une image xubuntu-desktop
disponible ici : http://xubuntu.org/getxubuntu/. Pour information, cette clé USB d'installation peut être réalisée à partir de la plupart des distributions de GNU/Linux à l'aide de l'outil unetbootin
.
Après avoir démarré sur la clé USB, nous choisissons l'option Live CD afin de vérifier que les composants matériels soient supportés (interfaces réseau, carte son...). Une fois ces vérifications faites, nous procédons à l'installation de la distribution à partir du lien disponible sur le bureau. Si l'on ne dispose pas d'une connexion à Internet à haut débit, il est préférable de réaliser l'installation en mode hors ligne afin d'éviter les mise à jour souvent volumineuses.
Partitionnement en dual boot¶
Les ordinateurs sur lesquels le déploiement a été réalisé sont équipés d'un système d'exploitation Windows 7 que nous souhaitons conserver. Pour cela, il est recommandé d'effectuer un partitionnement manuel (choisir l'option "autre chose" lorsque les différentes options d'installation sont présentées).
Lors du partitionnement, il est nécessaire de redimensionner une ou plusieurs partitions Windows afin de dégager au moins 100 Go pour l'installation de la distribution de GNU/Linux. Si la partition principale de Windows (celle qui contient la racine du système) doit être redimensionnée, il est préférable de dégager de l'espace libre après celle-ci : cela évite le déplacement de données ainsi que d'éventuels problèmes d'alignement du chargeur de démarrage de Windows. S'il n'est pas possible de faire autrement, il sera probablement nécessaire de restaurer le chargeur de démarrage de Windows 7 à l'aide du DVD d'installation.
Après le redimensionnement des partitions de Windows, nous créons deux partitions :- une SWAP de 1 Go ;
- une racine ( / ) formatée en
ext4
avec tout l'espace de disque disponible (un volume supérieur à 100 Go est recommandé).
Après l'installation du système de base, il est proposé de créer un compte d'utilisateur. Sous Ubuntu, nous rappelons que le mot de passe du root
n'est pas initialisé. L'accès root
est tout de même possible via la commande sudo
. En particulier, pour lancer un shell root
, on utilisera sudo -s
.
Installation de paquets supplémentaires¶
Une fois l'installation terminée, il est possible d'installer des paquets additionnels. Une liste des paquets couramment utilisés par user:d.roque est disponible ici : https://openforge.isae.fr/projects/ralf-radio-logicielle-pour-la-formation/wiki/Installation_d%E2%80%99une_station_de_travail_Ubuntu
La liste précédente est relativement volumineuse (plusieurs Go). Aussi, compte tenu de notre connexion à Internet à bas débit, nous nous limitons aux paquets suivants.
sudo apt-get install arandr subversion git synaptic
Pour l'utilisateur peu familier du système Ubuntu, il est recommandé d'utilisé l'application synaptic
pour rechercher et installer des paquets.
Installation d'UHD et GNURadio à partir des paquets binaires Ettus Research¶
Dans le but d'exploiter les cartes de radio logicielle Ettus Research USRP, il est nécessaire d'installer le pilote Universal Hardware Driver (UHD) ainsi que l'environnement de développement libre GNURadio. Tout d'abord, il est important de mentionner que la distribution Xubuntu 14.04 comporte ces deux logiciels parmi ses paquets officiels. Toutefois, ces derniers ne sont pas nécessairement mis à jour au gré des développements.
C'est la raison pour laquelle Ettus Research maintien à jour des paquets non-officiels en suivant les cycles de développement du pilote UHD et de GNURadio. Compte tenu de l'évolution rapide de ces projets, nous choisissons ainsi d'outrepasser les paquets officiels de la distribution pour utiliser ceux fournis par Ettus Research.
Résolution des dépendances¶
Avant toute chose, il est nécessaire de satisfaire les dépendances requise pour l'installation du pilote UHD et de GNURadio.
sudo apt-get install python python-wxgtk2.8 pyqt4-dev-tools python-qwt5-qt4 python-numpy libboost-all-dev libusb-1.0.0-dev python-opengl python-cheetah
Ajout des dépots Ettus Research et installation¶
On peut ajouter les sources des dépôts de paquets non-officiels pour UHD et GNURadio à l'aide des commandes suivantes.
sudo bash -c 'echo "deb http://files.ettus.com/binaries/uhd_stable/repo/uhd/ubuntu/`lsb_release -cs` `lsb_release -cs` main" > /etc/apt/sources.list.d/ettus.list' sudo bash -c 'echo "deb http://files.ettus.com/binaries/uhd_stable/repo/gnuradio/ubuntu/`lsb_release -cs` `lsb_release -cs` main" >> /etc/apt/sources.list.d/ettus.list'
On peut ensuite mettre à jour la liste des paquets puis installer UHD et GNURadio.
sudo apt-get update sudo apt-get install -t `lsb_release -cs` uhd gnuradio
À l'aide de cette procédure d'installation, notons que le préfixe d'installation est /usr
. Si l'on avait suivi une installation via les sources, le préfixe aurait été /usr/local
.
Configuration d'une carte USRP N210¶
Configuration réseau et optimisation du système d'exploitation¶
Nous supposons que la carte USRP possède l'adresse 192.168.10.2
avec un masque de 24 bits (par défaut) ; par conséquent, nous positionnons l’interface de l’ordinateur sur 192.168.10.1
.
La configuration statique de l’interface peut être réalisée dans le fichier /etc/network/interfaces
dans lequel on ajoute les lignes suivantes.
auto eth0 iface eth0 inet static address 192.168.10.1 netmask 255.255.255.0
Il reste ensuite à redémarrer les connexions réseau avec
sudo service network-manager restart sudo service networking restart
Une fois l’interface réseau configurée (vérifier avec sudo ifconfig
), nous pouvons détecter la carte à l’aide du pilote UHD.
uhd_find_devices
Des informations supplémentaires sur la configuration matérielle de la carte peuvent être obtenues à l’aide de la commande suivante (ex. : carte fille, type de connexion...).
uhd_usrp_probe
Si la commande précédente renvoie une erreur liée à une incompatibilité entre le pilote UHD et le firmware, il est nécessaire de mettre à jour ce dernier à l'aide de la commande suivante.
sudo uhd_images_downloader /usr/lib/uhd/utils/usrp_n2xx_simple_net_burner --addr=192.168.10.2
Optimisation du système pour le pilote UHD¶
Priorité d'exécution du pilote UHD¶
Il est généralement nécessaire d'accorder aux utilisateurs du pilote un haut niveau de priorité pour le traitement en temps réel des échantillons. Pour cela, il faut ajouter dans /etc/security/limits.conf
la ligne suivante
@usrp - rtprio 99
On créé ensuite le groupe usrp
et l'on ajoute dans ce groupe les différents utilisateurs du système susceptibles d'utiliser le pilote UHD.
groupadd usrp adduser <nom_d'utilisateur> usrp
Taille maximale des tampons d'émission-réception¶
Il est également recommandé de modifier la taille des tampons d'émission-réception en ajoutant les lignes suivantes au fichier /etc/sysctl.conf
.
net.core.rmem_max=33554432 net.core.wmem_max=33554432
Après avoir configuré ces deux axes d'optimisation, il est nécessaire de redémarrer la machine afin de pouvoir en bénéficier.
Vérification du bon fonctionnement¶
La carte de radio logicielle est à présent prête à l’emploi, nous pouvons ainsi vérifier que la liaison entre celle-ci et l’ordinateur fonctionne correctement.
/usr/share/uhd/examples/benchmark_rate --duration 20 --rx_rate 10e6
Parmi les erreurs rencontrées, la perte de segments se matérialise par l’affichage de symboles “UUUUUU...” ou “OOO...” sur la sortie standard. Ces deux cas de figure signifient respectivement que l’ordinateur n’envoie pas les données suffisamment rapidement à la carte ou que celle-ci envoie les données trop rapidement à l’ordinateur (voir http://gnuradio.org/redmine/projects/gnuradio/wiki/UsrpFAQGen).
Installation des composants additionnels (exemples et démos)¶
Au cours de cette section, nous décrivons l'installation de module additionnels de GNURadio pouvant notamment être utilisés pour réaliser des démonstrations. Ces modules sont disponibles sur le dépôt de code source SVN du projet RALF. On peut récupérer la copie courante à l'aide de la commande suivante.
svn co https://openforge.isae.fr/svn/ralf-radio-logicielle-pour-la-formation/demos
Ces exemples nécessite la résolution de plusieurs dépendances décrites ci-après.
Émetteur-récepteur FM¶
L'émetteur-récepteur FM ne nécessite pas de dépendance spécifique, il peut être exécuté directement à partir des fichiers GRC fournis. Dans le cas de l'émetteur, notons toutefois que la source du fichier son à émettre doit être configurée correctement avec un chemin absolu.
Récepteur ADS-B¶
Installation de gr-air-modes¶
Dans un premier temps, il est nécessaire de satisfaire les dépendances suivantes.
sudo apt-get install python-zmq cmake
On peut ensuite récupérer les sources du projet de Nick Foster.
git clone https://github.com/bistromath/gr-air-modes.git
Une fois positionné dans le répertoire téléchargé, on peut compiler et installer le module.
mkdir build cd build cmake ../ make sudo make install sudo ldconfig
Installation de Google Earth¶
La paquet n'est pas directement fourni dans la distribution. Il est toutefois possible de le compiler facilement à l'aide d'un paquet d'installation.
sudo apt-get install googleearth-package make-googleearth-package dpkg -i google_earth_XXX.deb apt-get -f install
Le récepteur ADS-B peut ensuite être lancé via le script receive_ads-b.sh
(clic droit, ouvrir avec un terminal). Lors du premier lancement de Google Earth, il est nécessaire d'ajouter un lien réseau
avec actualisation périodique vers le fichier avions.kml
.
Récepteur POCSAG¶
Ce récepteur utilise le programme multimon-ng
écrit initialement par Thomas Sailer. On commence par résoudre les dépendances suivantes.
sudo apt-get install libpulse-dev
On peut ensuite installer multimon-ng
à l'aide des instructions suivantes.
git clone https://github.com/EliasOenal/multimon-ng.git
Une fois positionné dans le répertoire téléchargé, on peut compiler et installer le programme.
mkdir build cd build qmake ../multimon-ng.pro make sudo make install
Le récepteur POCSAG peut être mise en œuvre à l'aide du fichier GRC correspondant. Avant la première exécution, il est nécessaire de spécifier des emplacements absolus corrects pour les fichiers de capture.
Parallèlement à l'enregistrement des données POCSAG reçues, il est possible de lancer le fichier decodeur_pocsag
afin d'effectuer un décodage périodique des données (clic droit, ouvrir avec un terminal).
À faire¶
- Réalisation d'une image disque complète d'une station de travail.
- Étude des exemples fournis avec GNURadio (voir
~/demos_usrp/examples
). - Documentation des blocs fournis avec GNURadio (en particulier concernant la synchronisation et l'égalisation).
- Étudier la possibilité d'avoir une connexion à Internet à proximité pérenne pour les machines d'expérimentations.
Mis à jour par Damien Roque il y a environ 10 ans · 1 révisions