GettingStarted » History » Version 19
laforge, 10/11/2019 12:26 PM
attachment link
1 | 1 | h1. Getting Started |
|
---|---|---|---|
2 | 14 | horiz0n | |
3 | 16 | fixeria | {{>toc}} |
4 | 14 | horiz0n | |
5 | h2. Prerequisites |
||
6 | |||
7 | |||
8 | 1 | You must first prepare your system by installing the required development packages. |
|
9 | |||
10 | For debian/ubuntu: |
||
11 | 5 | horiz0n | |
12 | 14 | horiz0n | <pre> |
13 | 15 | tnt | apt-get install build-essential libtool autoconf git-core pkg-config libfftw3-dev talloc-dev libpcsclite-dev |
14 | 14 | horiz0n | </pre> |
15 | 1 | ||
16 | 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. |
||
17 | |||
18 | |||
19 | 14 | horiz0n | h2. Compiling the software |
20 | 1 | ||
21 | 14 | horiz0n | |
22 | |||
23 | h3. libosmocore |
||
24 | |||
25 | |||
26 | 1 | You obviously need to install our main utility library: |
|
27 | |||
28 | 14 | horiz0n | <pre> |
29 | 1 | git clone git://git.osmocom.org/libosmocore |
|
30 | cd libosmocore |
||
31 | autoreconf -i -f |
||
32 | 2 | ./configure |
|
33 | 1 | make |
|
34 | 2 | sudo make install |
|
35 | 1 | cd .. |
|
36 | 14 | horiz0n | </pre> |
37 | 10 | horiz0n | |
38 | 1 | ||
39 | 14 | horiz0n | h3. libosmo-dsp |
40 | |||
41 | |||
42 | 1 | Then you need to install our new Software Defined Radio helper library: |
|
43 | |||
44 | 14 | horiz0n | <pre> |
45 | 1 | git clone git://git.osmocom.org/libosmo-dsp |
|
46 | cd libosmo-dsp |
||
47 | autoreconf -i -f |
||
48 | 2 | ./configure |
|
49 | 1 | make |
|
50 | sudo make install |
||
51 | cd .. |
||
52 | 14 | horiz0n | </pre> |
53 | 1 | ||
54 | |||
55 | 14 | horiz0n | h3. osmo-gmr |
56 | |||
57 | |||
58 | 1 | And finally compile the main Osmocom GMR software stack: |
|
59 | |||
60 | 14 | horiz0n | <pre> |
61 | 1 | git clone git://git.osmocom.org/osmo-gmr |
|
62 | cd osmo-gmr |
||
63 | autoreconf -i -f |
||
64 | ./configure |
||
65 | make |
||
66 | cd .. |
||
67 | 14 | horiz0n | </pre> |
68 | 1 | ||
69 | |||
70 | 14 | horiz0n | h3. Capture tool |
71 | |||
72 | |||
73 | 1 | The current version of the capture tool is not integrated with the main autotool process yet and has to be built separately: |
|
74 | |||
75 | 14 | horiz0n | <pre> |
76 | 2 | cd osmo-gmr/utils/gmr_multi_rx |
|
77 | 1 | make TARGET=uhd |
|
78 | cd ../../.. |
||
79 | 14 | horiz0n | </pre> |
80 | 1 | ||
81 | There are several possible targets depending on your hardware: |
||
82 | 14 | horiz0n | * usrp: To use the libusrp drivers for the USRP1 hardware (gnuradio has to be compiled with gr-usrp enabled) |
83 | * uhd: For using any ettus hardware (see "UHD Wiki":http://code.ettus.com/redmine/ettus/projects/uhd/wiki for build instructions) |
||
84 | * fcd: To use the specific Fun Cube Dongle Pro drivers ("gr-fcd":https://github.com/csete/gr-fcd has to be installed) |
||
85 | 1 | ||
86 | 14 | horiz0n | h3. Wireshark |
87 | 2 | ||
88 | 18 | fixeria | The GMR dissectors seem to be supported by the recent Wireshark. |
89 | 1 | ||
90 | 14 | horiz0n | h2. Running the software |
91 | 1 | ||
92 | 14 | horiz0n | h3. Capturing samples |
93 | |||
94 | 1 | You need to capture samples off the air and of course "there's an app for that". |
|
95 | 14 | horiz0n | 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. |
96 | 1 | ||
97 | This example will capture ARFCN 941 and 942 for 10 second using the 'B' side daughterboard and the RX2 input : |
||
98 | |||
99 | 14 | horiz0n | <pre> |
100 | 1 | ./gmr_multi_rx --gmr1-dl 941 942 -a RX2 -S B:0 -T 10 |
|
101 | 14 | horiz0n | </pre> |
102 | 1 | ||
103 | 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. |
||
104 | 2 | ||
105 | 1 | A few notes concerning multi ARFCN capture: |
|
106 | 14 | horiz0n | * All the ARFCN need to fit within the bandwidth of your device (so you can't get ARFCN1 and 1007 at once for example) |
107 | * It can be pretty CPU intensive depending on the # of ARFCNs and how much they're spaced. |
||
108 | 1 | ||
109 | 14 | horiz0n | |
110 | h4. "FunCube Dongle":http://tetra.osmocom.org/trac/wiki/Funcube_Dongle Build |
||
111 | |||
112 | <pre> |
||
113 | 4 | horiz0n | ./gmr_multi_rx --gain 30 --gmr1-dl 941 942 943 |
114 | 1 | </pre> |
|
115 | 14 | horiz0n | |
116 | 4 | horiz0n | * when receiving 3 consecutive channels, the middle channel will be distorted by the center peak caused by dc offset / iq imbalance |
117 | 14 | horiz0n | * when receiving 2 channels, each channel will have a small contribution of the center peak on the right or left side. |
118 | * best results may be achieved when receiving only one channel. |
||
119 | |||
120 | 4 | horiz0n | h4. Default USRP clock |
121 | 14 | horiz0n | |
122 | <pre> |
||
123 | ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 |
||
124 | 4 | horiz0n | </pre> |
125 | 14 | horiz0n | |
126 | 17 | fixeria | 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. |
127 | 4 | horiz0n | |
128 | 14 | horiz0n | h4. Modified USRP clocks |
129 | |||
130 | * use --mcr to tell custom fpga frequency in Hz |
||
131 | |||
132 | <pre> |
||
133 | 4 | horiz0n | ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 52e6 |
134 | 14 | horiz0n | </pre> |
135 | 4 | horiz0n | |
136 | 14 | horiz0n | * mcr of 59.904e6 Hz is gmr1-friendly, thus allowing to save on interpolation stage |
137 | 4 | horiz0n | |
138 | 14 | horiz0n | <pre> |
139 | 11 | horiz0n | ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 59.904e6 |
140 | 14 | horiz0n | </pre> |
141 | 13 | horiz0n | |
142 | 14 | horiz0n | h4. RTL SDR dongles |
143 | |||
144 | 1 | ||
145 | 19 | laforge | The attached gnuradio flowgraph (attachment:osmo-gmr-rtl.grc) 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. |
146 | 2 | ||
147 | 14 | horiz0n | h3. Analyzing them |
148 | |||
149 | |||
150 | * Launch wireshark and listen to the lo interface |
||
151 | ** Make sure to use the proper version (see above) |
||
152 | ** Also make sure you have the rights to capture on lo |
||
153 | * View packets in wireshark using gmr1_bcch.* filters |