GettingStarted » History » Revision 17
« Previous |
Revision 17/22
(diff)
| Next »
fixeria, 07/14/2018 10:04 AM
Getting Started¶
- Table of contents
- Getting Started
Prerequisites¶
You must first prepare your system by installing the required development packages.
For debian/ubuntu:
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¶
libosmocore¶
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 ..
libosmo-dsp¶
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 ..
osmo-gmr¶
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 ..
Capture tool¶
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)
Wireshark¶
git clone git://git.osmocom.org/wireshark cd wireshark git checkout sylvain/gmr ./autogen.sh ./configure make sudo make install cd ..
Running the software¶
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 and the associated map.
This example will capture ARFCN 941 and 942 for 10 second using the 'B' side daughterboard and the RX2 input :
./gmr_multi_rx --gmr1-dl 941 942 -a RX2 -S B:0 -T 10
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.
FunCube Dongle Build¶
./gmr_multi_rx --gain 30 --gmr1-dl 941 942 943
- 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.
Default USRP clock¶
./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943
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.
Modified USRP clocks¶
- use --mcr to tell custom fpga frequency in Hz
./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 52e6
- mcr of 59.904e6 Hz is gmr1-friendly, thus allowing to save on interpolation stage
./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 59.904e6
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.
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
- View packets in wireshark using gmr1_bcch.* filters
Updated by fixeria almost 6 years ago · 17 revisions