Prerequisiti
Avremmo bisogno di Raspberry Pi 3 (acquistabile qui https://amzn.to/2VRlTr3)o Raspberry Pi Zero W 1.1(acquistabile qui https://amzn.to/2VE8zBp), che ha un processore ARMv7 a 64 bit. Si noti che gr-gsm non può essere installato su Raspberry Pi 1 (abbiamo testato il modello B), poiché ha un processore ARMv6. Alcuni componenti GNU Radio non sono supportati sull’architettura ARMv6.
Su RPi installeremo il sistema operativo Linux basato su Debian Raspbian Jessie (abbiamo usato la versione 2016-03-18).
Aggiorna software su Raspberry Pi
Per prima cosa dobbiamo cambiare la password di default con il comando passwd. Dopodiché abbiamo bisogno di installare nuovi aggiornamenti:
sudo apt-get update sudo apt-get upgrade
Espandi spazio su una scheda SD e imposta il dispositivo
Il passo successivo è quello di espandere lo spazio su una scheda SD. Invochiamo lo strumento per farlo con sudo raspi-config. Nel menu selezioniamo Espandi spazio. Abbiamo anche bisogno di impostare il fuso orario, in quale paese useremo Wi-fi, le impostazioni della tastiera (in Opzioni di internazionalizzazione). Non modificare le impostazioni della lingua! Se la lingua di sistema non è inglese, alcuni strani errori in Python iniziano ad apparire.
Ora dobbiamo riavviare la macchina con sudo reboot.
Aggiorna il firmware su Raspberry Pi
Subito dopo abbiamo bisogno di aggiornare il firmware di Raspberry con il comando sudo rpi-update. Al termine, dobbiamo arrestare la macchina con sudo shutdown -h e disconnettere fisicamente l’alimentazione. Dopo alcuni secondi lo riaccendiamo.
Proteggi il dispositivo
Ora è il momento di impostare il firewall, abilitare il client NTP, cambiare il nome dell’host … forse vogliamo anche configurare la console VNC. Supponiamo che tu sia in grado di proteggere il dispositivo, per alcuni rapidi passaggi, puoi vedere questa guida (in sloveno, è disponibile anche la traduzione in inglese tramite Google Translate)).
Non saltare questo passaggio, la sicurezza è importante.
Aumentare lo spazio di swap
A volte avrai bisogno di più memoria per la compilazione. Puoi “aggiungere” nuova memoria aumentando lo spazio di swap. Apri il file di configurazione:
sudo nano / etc / dphys-swapfile
… e cerca il valore predefinito in Raspbian, che è: CONF_SWAPSIZE = 100
Cambialo in: CONF_SWAPSIZE = 1024 Dopodiché è necessario interrompere e avviare il servizio che gestisce lo swapfile su Rasbian:
sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
Ora è quindi possibile verificare la quantità di memoria e spazio di scambio emettendo il seguente comando: free -m
Installa schermo
Poiché la compilazione può richiedere molto tempo, potrebbe essere una buona idea installare la schermata: sudo apt-get install screen.
Installazione del software necessario per gr-gsm
Installa Kalibrate
Innanzitutto, installeremo Kalibrate:
sudo apt-get install libtool autoconf automake libfftw3-dev librtlsdr0 librtlsdr-dev libusb-1.0-0 libusb-1.0-0-dev git clone https://github.com/asdil12/kalibrate-rtl.git cd kalibrate-rtl git checkout arm_memory ./bootstrap ./configure make sudo make install
Imposta l’accesso ai dispositivi USB
Collegare il dispositivo RTL-SDR e controllare l’ID con il comando lsusb. Vedrai qualcosa di simile a questo:
Bus 001 Device 004: ID ** 0bda: 2832 ** Realtek Semiconductor Corp. RTL2832U DVB-T Bus 001 Device 003: ID 0424: ec00 Standard Microsystems Corp. Adattatore Fast Ethernet SMSC9512 / 9514 Bus 001 Device 002: ID 0424: 9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b: 0002 root hub Linux Foundation 2.0
Nel nostro caso l’ID del dispositivo RTL.SDR è 0bda: 2832. Ora apriamo un file di regole:
sudo nano /etc/udev/rules.d/20.rtlsdr.rules
… e aggiungi questa linea ad esso:
SUBSYSTEM == "usb", ATTRS {idVendor} == "0bda", ATTRS {idProduct} == "2832", GROUP = "adm", MODE = "0666", SYMLINK + = "rtl_sdr"
Se si utilizzano più dispositivi RTL-SDR, è possibile aggiungere più righe a questo file.
Ora dobbiamo riavviare il nostro Raspberry Pi: sudo reboot
Calibrare il dispositivo RTL-SDR
Ora possiamo invocare il comando per calibrare il nostro dispositivo RTL-SDR per la banda di frequenza GSM (in realtà per calcolare l’errore assoluto medio in PPM):
kal -s GSM900
Otteniamo il risultato simile a questo:
Found 1 device(s): 0: Generic RTL2832U Using device 0: Generic RTL2832U Found Rafael Micro R820T tuner Exact sample rate is: 270833.002142 Hz kal: Scanning for GSM-900 base stations. GSM-900: chan: 1 (935.2MHz - 33.430kHz) potenza: 55085.23 chan: 3 (935,6 MHz - 34,130 kHz) potenza: 63242,36 chan: 5 (936.0MHz - 33.970kHz) potenza: 41270.82 ... ... chan: 112 (957,4 MHz - 32,934 kHz) potenza: 498930,07 chan: 116 (958,2 MHz - 31,859 kHz) potenza: 88039,44 chan: 124 (959.8MHz - 32.429kHz) potenza: 247404.23
Il segnale più forte nel nostro caso è sul canale 112. Quindi eseguiamo la calibrazione su questo canale:
kal -c 112
… e ottieni il risultato in questo modo:
Trovati 1 dispositivo (i): 0: RTL2832U generico Using device 0: RTL2832U generico Found Rafael Micro R820T tuner
Exact sample rate is:270833,002142 Hz kal:Calculating clock frequency offset. Using GSM-900 channel 112 (957,4 MHz) averange [min, max] (range, stddev) - 34.368kHz [-34376, -34357] (20, 4.697051) overruns: 0 not found: 0 averange absolute error: 35.897 ppm
Quindi il nostro errore assoluto medio è 36 PPM (35.897 PPM).
Installa GNU Radio
Ora abbiamo bisogno di installare GNU Radio, che è abbastanza semplice:
sudo apt-get install gnuradio gnuradio-dev gnu
Installa libosmocore
Abbiamo bisogno di compilare libosmocore …
sudo apt-get install cmake sudo apt-get install build-essential libtool shtool autoconf automake git-core pkg-config crea gcc sudo apt-get install libpcsclite-dev libtalloc-dev gnutls-dev git clone git: //git.osmocom.org/libosmocore.git cd libosmocore / autoreconf -i ./configure make sudo make install sudo ldconfig -i CD
… e installa alcune altre cose
sudo apt-get install swig python-docutils sudo apt-get install gr-osmosdr rtl-sdr sudo apt-get install libboost-dev sudo apt-get install osmo-sdr libosmosdr-dev sudo apt-get install libusb-1.0.0 libusb-dev sudo apt-get install libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev python-scipy
Installa gr-gsm
Ora siamo pronti per il passaggio finale:
git clone https://github.com/ptrkrysik/gr-gsm.git cd gr-gsm mkdir build cd build cmake .. make sudo make install sudo ldconfig
Infine, creiamo il file di configurazione ~ / .gnuradio / config.conf con nano ~ / .gnuradio / config.conf. Aggiungiamo queste due righe (nel senso che GNU Radio può trovare blocchi personalizzati di gr-gsm):
[GRC] local_blocks_path = / usr / local / share / gnuradio / GRC / blocks
uso
Ora possiamo eseguire scanner GSM con:
grgsm_scanner -p 36
Si noti che abbiamo usato il parametro -p 36 – è il nostro errore assoluto medio in PPM.
Possiamo anche utilizzare GSM Live Monitor (grgsm_livemon), ma abbiamo bisogno di una GUI o di una console VNC.
Fonte ufficiale: https://github.com/ptrkrysik/gr-gsm/wiki/Installation-on-RaspberryPi-3