Projets:Lab:2011:GHPSDR3-Alex

From Electrolab
Revision as of 19:48, 2 April 2013 by Marc (Talk | contribs)

Jump to: navigation, search
QTRadio, interface de pilotage à distance des appareils connectés au serveur de flux GHPSDR3-Alex

Construction/compilation du programme GHPSDR3-Alex

Work in progress

Ce projet est très proche de l'esprit Electrolab. Il associe informatique libre et bidouilles sauvages au fer à souder, construction de radios logicielles et concentration de leurs ressources.







.

Qu'est-ce que GHPSDR3-Alex

L'ensemble softrock 6.3, Mobo 4.3, SDR-Widget 3.0, l'un des très nombreux SDR supporté par le serveur de streaming)

GHPSDR3-Alex est une évolution de GHPSDR de John Melton. Il s'agit d'un ensemble de logiciels capables de "servir" des flux radio reçus par des radios logicielles (SDR). Il peut piloter des émetteurs-récepteurs à distance via réseau, et partager les ressources d'un (ou plusieurs) récepteur SDR entre plusieurs usagers... en fonction des capacités et de la bande passante des segments de réseau IP utilisés


Attention : lorsque nous parlons de flux, il ne s'agit pas du simple streaming d'une seule et unique communication, mais d'une portion de spectre de 200 kHz -donc potentiellement plus de 150 stations radio-, portion de spectre pouvant être "positionnée" à n'importe quelle fréquence située dans la plage du récepteur utilisé (en général, de 1,8 à 30 MHz avec un Softrock, mais pouvant couvrir de 3 à 700 MHz avec une tête UHFSDR, voir plus -22 à 1700 MHz par exemple si l'on connecte une clef DVB-T)

GHPSDR est constitué de trois parties : un frontal électronique (radiorécepteur ou émetteur-récepteur), un serveur de flux -qui convertit le spectre reçu en trames IP- et un client local ou distant.

La partie serveur n'existe que sous Linux. Les poste clients, en revanche, existent sous Linux, Windows, Android...

Plus d'informations sont disponibles sur le site GHPSDR3-Alex

Les sources des programmes sont accessibles sur github

Une cartographie en temps réel des récepteurs accessibles sur Internet est hébergée sur le serveur Web d'Andréa Montefusco IW0HDV

Le socle matériel historique est constitué d'un émetteur-récepteur Softrock 6.3NG, d'une extension associant filtres et commande de fréquence, la "mobo 4.3", et une interface de commande et de traitement de signal ayant déjà fait l'objet d'un projet de construction au sein de l'Electrolab, la SDR-Widget

D'autres appareils peuvent être pris en compte par le serveur GHPSDR3-Alex. Et notamment, pour "petits budgets", une simple clef DVB-T telle que celle utilisée pour le projet Electrolab Convertisseur pour clefs DVB-T

Quelle version choisir

Il existe de nombreuses instructions d'installation.

- Notamment une édition "live USB" du serveur, qui n'accepte manifestement pas de fonctionner avec une SDR-Widget dotée d'un firmware récent

- une version "nobrainer ubuntu" au format DEB conçue par Andréa Montefusco, mais qui ne semble plus maintenue.

- Par ailleurs, N8MDP a rédigé deux très longs et [ http://www.n8mdp.com/ghpsdr3-alex.php très détaillés "how to"]... le tout pour installer un code qui ne parvient pas toujours à tomber en marche, car lié à des versions de bibliothèques ou de code source relativement figés

C'est principalement la raison pour laquelle il nous a semblé nécessaire d'écrire ce guide d'installation rapide qui part des codes source principaux, ceux écrits par Alex, et donc la dernière versions stable connue.

Pour demeurer le plus orthodoxe possible, nous avons basé ce guide en prenant pour base un noyau Debian Squeeze. Plus "puritaine" qu'une ubuntu, si vous résolvez un problème sur ce noyau, toutes les versions dérivées de Debian pourront suivre votre exemple. L'inverse n'est pas toujours vrai.

Attention : sous Debian, contrairement à Ubuntu, le compte root est actif par défaut. Il est plus facile d’effectuer les installations avec ce privilège. De toute manière, il est aussi simple d’effectuer des bêtises avec un « sudo su » ou un « sudo » qu’avec un login root.

Si vous partez d’une installation Debian Ubuntu, il est souhaitable tout d’abord de débloquer le compte root avec les opérations suivantes :

 sudo passwd root

Le système va demander deux fois de suite un nouveau mot de passe pour le compte root (à ne jamais oublier). Le déblocage du compte s’effectue ensuite par la commande

 sudo passwd –u root 

Il suffit de se déloguer puis de se reloguer avec le compte root et le mot de passe que l’on vient de choisir (et que l’on n’oublie pas !)(j'ai parfois l'impression de me répéter...)

Il est tout à fait possible d’effectuer la totalité des opérations suivantes avec un compte « user ». Il faudra cependant faire précéder tous les ordre "apt-get", "git clone" ou "make" par l’ordre sudo.

L'ordre sudo est la contraction de "super user do" (le super-utilisateur fait...). Super-user était le nom réservé généralement à l'Administrateur sur les systèmes Unix au début des années 80. On se doute qu'avec un surnom aussi mégalomaniaque, ce "super-user" possède des droits que le vulgum pecus ne peut espérer obtenir un jour. Revers de la médaille, une erreur de manipulation effectuée avec des droits de super-user (ou "root") font potentiellement plus de dégâts car susceptibles de s'étendre à tout le système ou presque.

Mais revenons à notre sudo


Ex :

 sudo apt-get install mc

sous Ubuntu, alors que sous Debian sous compte root

 apt-get install mc

Cette commande installe Midnight Commander, une version « linuxisée » du Norton Commander, interface de manipulation de fichiers en mode caractère conçue pour DOS par John Socha, qui fut également le créateur du tout premier tableur sur microordinateur : Visicalc

Récupération des libs nécessaires

Si cela n’a pas déjà été fait (installation de TVHeadend par exemple)

 apt-get install build-essential git pkg-config libssl-dev bzip2 wget
 apt-get install zlib1g-dev

puis

 apt-­get install libqt4­opengl­dev glutg3­dev libusb­0.1­4
 apt-­get install libfftw3­dev portaudio19­dev libpulse­dev
 apt­-get install libsamplerate0­dev libusb­1.0­0­dev libconfig8­dev
 apt­-get install autoconf
 apt-­get install libtool
 apt­-get install libusb­dev
 apt­-get install libjack­dev
 apt-get install libgsl0-dev
 apt-get install libgtk2.0-dev
 apt-get install libortp-dev
 apt-get install git-core
 apt-get install subversion

A noter : le gsl de la "libgsl0-dev" s'écrit "golf sierra lima" et non "golf sierra Unité Zéro".

Ces deux dernières installations permettent d’aller récupérer les versions les plus récentes des bibliothèques de fonctions “stables” sur les dépots Github et SVN, c'est à dire avec d'autres outils que les traditionnels aptitude/apt-get/dpkg utilisés par défaut sous Gnu-Linux-Debian-Unix-Like-but-not-Unix-dérivé-de-system-V (ironique, moi ? mais non, voyons)

Il est conseillé d’effectuer les différentes opérations dans le répertoire « home » de l’utilisateur principal (et non sur le répertoire "privé" de root)

Récupération du dernier source en date de ghpsdr3-Alex

cd /home/nomutilisateur
git clone git://github.com/alexlee188/ghpsdr3-alex.git

Récupération de 3 « libs » "à la main"

Ces bibliothèques de fonctions (Codec2-dev, Libevent et ortp) ne sont a priori pas accessibles depuis un noyau Pure Debian Squeeze. Elles sont en revanche directement disponibles avec un simple "apt-get install" sous Ubuntu.

Codec2-dev

Se trouve sur un dépôt Subversion

 svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2-dev codec2-dev
 cd codec2-dev
 ./configure
 make
 make intall
 ldconfig
 make clean
 cd ..

Libevent

Par défaut, libevent de Debian Squeeze en est resté à une version 1.4, il nous faut une version 2.0 Cette fois, le dépôt est sur Github

 git clone git ://github.com/libevent/libevent.git
 cd libevent
 ./autogen.sh
 ./configure
 make
 make install
 make clean
 cd ..

ortp-dev Si l’on ne parvient pas à la descendre libortp-dev avec apt-get ou synaptic... ceci n'est pas très clair dans la config du rédacteur de ces lignes

 git clone https://github.com/avis/ortp.git
 ./autogen.sh
 ./configure
 make 
 make install
 make clean
 cd ..

Ceci fait, on peut passer à l'installation du programme serveur GHPSDR3 à proprement parler

Compilation de GHPSDR3-Alex

 cd ghpsdr3-alex
 autoreconf –i
 ./configure
 make all
 make install

L’on obtient alors trois elements clef de la suite de programmes

 ghpsdr3-alex/trunk/src/QtRadio/QtRadio
 ghpsdr3-alex/trunk/src/dspserver/dspserver
 ghpsdr3-alex/trunk/src/server/hpsdr-server


Si vous allez dans

 /home/esh/ghpsdr3-alex/trunk/src/monitor

Vous pouvez lancer ¨make¨. ¨monitor" le binaire résultant, est expédié dans ghpsdr3­alex/trunk/bin Si vous allez dans

 /home/esh/ghpsdr3-alex/trunk/src/bandscope

Vous pouvez lancer ¨make¨.¨bandscope", le binaire résultant, est expédié dans ghpsdr3­alex/trunk/bin Si vous allez dans

 /home/esh/ghpsdr3-alex/trunk/src/receiver

Vous pouvez lancer ¨make¨. ¨ghpsdr¨, le binaire résultant, est expédié dans ghpsdr3­alex/trunk/bin

Enfin, si vous possédez une plateforme Softrock/Mobo, vous pouvez lancer un "make" dans le répertoire

 /home/esh/ghpsdr3-alex/trunk/src/softrock

softrock, le binaire résultant, est expédié dans ghpsdr3­alex/trunk/bin

Pour vérifier la validité des options de compilation, vous pouvez exécuter

 softrock --toto

qui vous répondra

 root@GHPSDR:/home/marc/ghpsdr3-alex/trunk/src/softrock# softrock --toto
 softrock: unrecognized option '--toto'
 invalid argument
 Usage options:
       -s= or --samplerate
       -d= or --device (OSS audio device)
       -i= or --input (Port Audio device for input)
       -o= or --output (Port Audio device for output)
       --iq or --qi (to swap I and Q channels)
       --si570 (to use a unit having a Si570 oscillater)
       -v or --verbose
       -f= or --startupfreq (set Si570 startup frequency)
       -m= or --multiplier (set Si570 multiplier)
       --correctedfreq (set Si570 corrected frequency)
       --serialid
       --record filename (record to this file)
       --playback filename (playback this file)
       --receivers (number of receivers)
       -j or --jack (use Jack Audio Connection Kit for audio in/out)
 root@GHPSDR:/home/marc/ghpsdr3-alex/trunk/src/softrock#

l'exécutable fonctionne donc à merveille, on peut passer au branchement des différents appareils

D’autres indications peuvent être obtenues sur le réflecteur hpsdr ainsi que sur

 https://github.com/alexlee188/ghpsdr3­alex/blob/master/README
 http://napan.ca/ghpsdr3/index.php/Main_Page