samedi 17 juin 2017

LuaRadio

Pour ceux qui se trouve confronté à un problème de configuration ou d'installation de GnuRadio, il existe une petite alternative légère et peu gourmande appelé LuaRadio. Pour l'instant, tout passe par de petits scripts codés par l'intermédiaire du language Lua. Il n'y a pas d'interface graphique avec des blocs à poser/déplacer comme dans GnuRadio et ceci pourra en rébuter plus d'un.
Avant toute chose, assurez-vous d'avoir votre clé rtlsdr configurée et connectée sur votre machine
$ rtl_test -t  
Cette commande devrait renvoyer un message du style :
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting
.

Si ce n'est pas le cas, il faudra installer votre clé : 
$ sudo apt-get install cmake build-essential git libusb-1.0-0-dev
$ git clone git://git.osmocom.org/rtl-sdr.git ( on récupère les sources : si git n'est pas installé, sudo make install git )
$ cd rtl-sdr ( on se place dans le répertoire crée)
$ mkdir build ( on crée le répertoire build )
$ cd build ( on se place dans le répertoire build )
$ cmake ../ -DINSTALL_UDEV_RULES=ON ( on crée la source en attribuant l'accès aux rtl à tous les utilisateurs : si cmake n'est pas installé,  $ sudo make install cmake )
$ make ( on la compile )
$ sudo make install ( on l'installe )

Une fois tout cela réalisé, on installe les pré-requis pour LuaRadio :
$ sudo apt-get install luajit libluajit-5.1-dev libfftw3-dev libvolk1-dev libpulse-dev gnuplot

Il faudra également la librairie liquid-dsp si vous ne l'avez pas encore : 
$ git clone git://github.com/jgaeddert/liquid-dsp.git 
$ cd liquid-dsp 
$ ./bootstrap.sh 
$ ./configure 
$ make 
$ sudo make install 
$ sudo ldconfig

 Passons à la dernière phase, la compilation et l'installation de LuaRadio : 
$ git clone https://github.com/vsergeev/luaradio.git
$ cd luaradio
$ cd embed
$ make
$ sudo make install

LuaRadio est à présent installé. Pour vérifier que tout va bien : 
$ luaradio --platform
Cette commande devrait vous retourner : 
luajit          LuaJIT 2.0.3
os              Linux
arch            x86
page size       4096
cpu count       4
cpu model       Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
features
    fftw3f      true
    volk        true
    liquid      true

 
Vérifiez bien que les 3 dernières lignes (fftw3f/volk/liquid) sont en "true". Dans le cas contraire, vous serez obligé d'installer la librairie manquante avec :
- pour fftw3f 
$ sudo apt-get install fftw3
- pour volk
$ git clone https://github.com/gnuradio/volk.git
$ cd volk
$ make
$ sudo make install

Pensez bien à redemarrer votre machine avant de continuer. Des scripts, en guise d'exemple, se trouve dans le répertoire /luaradio/examples. 
Prenons par exemple un récepteur FM traditionnel :
$ luaradio /luaradio/examples/rtlsdr_wbfm_mono.lua 107.7e6 
et vous écouterez alors autoroute info ;) avec une visualisation des tracés



La manière de lancer le script reste très simple, on lance luaradio, en prenant le script rtlsdr_wbfm_mono.lua  et en le calant sur la fréquence 107.7 Mhz ( Mhz=exposant6 ou sinon 107700000 ) 
vous trouverez encore un récepteur AM, SSB, pocsag, aprs, rds ... Pour avoir plus d'info sur les blocs employés et créer vos propres scripts, je vous invite à consulter le site de Vanya Sergeev ici : http://luaradio.io/examples/