Projets:Lab:2011:GHPSDR3-Alex

From Electrolab
Revision as of 19:26, 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

Installation avec compilation locale

Il existe de nombreuses instructions d'installation, et notamment une édition "live USB" du serveur ainsi qu'une version "nobrainer ubuntu" au format DEB. Mais toutes ne sont pas maintenues et de nombreux conflits et problèmes de mise à niveau les rendent malheureusement très difficiles à utiliser.

C'est principalement la raison pour laquelle il nous a semblé nécessaire d'écrire ce guide d'installation rapide qui part des sources du programme, 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

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

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 libgs10-dev
 apt-get install libgtk2.0-dev
 apt-get install libortp-dev
 apt-get install git-core
 apt-get install subversion

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

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 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