- Table of contents
- Getting Started
You must first prepare your system by installing the required development packages.
apt-get install build-essential libtool autoconf git-core pkg-config libfftw3-dev talloc-dev libpcsclite-dev
If you want to capture samples off the air, you'll also need gnuradio and uhd. Installing those is outside the scope of this page, refer to the GNURadio / Ettus documentation.
Compiling the software¶
You obviously need to install our main utility library:
git clone git://git.osmocom.org/libosmocore cd libosmocore autoreconf -i -f ./configure make sudo make install cd ..
Then you need to install our new Software Defined Radio helper library:
git clone git://git.osmocom.org/libosmo-dsp cd libosmo-dsp autoreconf -i -f ./configure make sudo make install cd ..
And finally compile the main Osmocom GMR software stack:
git clone git://git.osmocom.org/osmo-gmr cd osmo-gmr autoreconf -i -f ./configure make cd ..
The current version of the capture tool is not integrated with the main autotool process yet and has to be built separately:
cd osmo-gmr/utils/gmr_multi_rx make TARGET=uhd cd ../../..There are several possible targets depending on your hardware:
- usrp: To use the libusrp drivers for the USRP1 hardware (gnuradio has to be compiled with gr-usrp enabled)
- uhd: For using any ettus hardware (see UHD Wiki for build instructions)
- fcd: To use the specific Fun Cube Dongle Pro drivers (gr-fcd has to be installed)
<pre> <pre> git clone git://git.osmocom.org/wireshark cd wireshark git checkout sylvain/gmr ./autogen.sh ./configure make sudo make install cd .. </pre> h2. Running the software h3. Capturing samples You need to capture samples off the air and of course "there's an app for that". For a first try the easier is to lookup a beam that match your geographic area by looking at "Thuraya_Beams":http://gmr.osmocom.org/trac/wiki/Thuraya_Beams and the associated map. <pre> This example will capture ARFCN 941 and 942 for 10 second using the 'B' side daughterboard and the RX2 input : <pre> ./gmr_multi_rx --gmr1-dl 941 942 -a RX2 -S B:0 -T 10 </pre> The given channels will be frequency shifted, filtered, resampled and finally written to files with the given --prefix (/tmp/ by default). The file names will be autogenerated based on ARFCN and final sample rate. A few notes concerning multi ARFCN capture: * All the ARFCN need to fit within the bandwidth of your device (so you can't get ARFCN1 and 1007 at once for example) * It can be pretty CPU intensive depending on the # of ARFCNs and how much they're spaced. h4. "FunCube Dongle":http://tetra.osmocom.org/trac/wiki/Funcube_Dongle Build <pre> ./gmr_multi_rx --gain 30 --gmr1-dl 941 942 943 </pre> * when receiving 3 consecutive channels, the middle channel will be distorted by the center peak caused by dc offset / iq imbalance * when receiving 2 channels, each channel will have a small contribution of the center peak on the right or left side. * best results may be achieved when receiving only one channel. h4. Default USRP clock <pre> ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 </pre> Only 75% of the master output rate will be used on the usrp/uhd builds, because of insufficient attenuation of the fpga channelizer at filter edges. h4. Modified USRP clocks * use --mcr to tell custom fpga frequency in Hz <pre> ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 52e6 </pre> * mcr of 59.904e6 Hz is gmr1-friendly, thus allowing to save on interpolation stage <pre> ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 59.904e6 </pre> h4. RTL SDR dongles The attached gnuradio flowgraph has been tested and works well for ARFCN 1007. A decent LNA might be required to be able to receive Thuraya signals. It is essential to adjust "corr_ppm" according to your dongle's frequency error. For recording, set the "arfcn" value and enable the file sink before launching the flowgraph. h3. Analyzing them * Launch wireshark and listen to the lo interface ** Make sure to use the proper version (see above) ** Also make sure you have the rights to capture on lo <pre> <pre> * View packets in wireshark using gmr1_bcch.* filters