GettingStarted » History » Version 16
fixeria, 07/14/2018 09:57 AM
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 | |||
87 | 14 | horiz0n | h3. Wireshark |
88 | 2 | ||
89 | 1 | ||
90 | 14 | horiz0n | <pre> |
91 | |||
92 | <pre> |
||
93 | |||
94 | <pre> |
||
95 | 1 | git clone git://git.osmocom.org/wireshark |
|
96 | cd wireshark |
||
97 | git checkout sylvain/gmr |
||
98 | ./autogen.sh |
||
99 | ./configure |
||
100 | make |
||
101 | sudo make install |
||
102 | cd .. |
||
103 | 14 | horiz0n | </pre> |
104 | 1 | ||
105 | 2 | ||
106 | 14 | horiz0n | h2. Running the software |
107 | 1 | ||
108 | 14 | horiz0n | |
109 | |||
110 | h3. Capturing samples |
||
111 | |||
112 | |||
113 | 1 | You need to capture samples off the air and of course "there's an app for that". |
|
114 | 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. |
115 | 1 | ||
116 | 14 | horiz0n | <pre> |
117 | 1 | ||
118 | This example will capture ARFCN 941 and 942 for 10 second using the 'B' side daughterboard and the RX2 input : |
||
119 | |||
120 | 14 | horiz0n | <pre> |
121 | 1 | ./gmr_multi_rx --gmr1-dl 941 942 -a RX2 -S B:0 -T 10 |
|
122 | 14 | horiz0n | </pre> |
123 | 1 | ||
124 | 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. |
||
125 | 2 | ||
126 | 1 | A few notes concerning multi ARFCN capture: |
|
127 | 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) |
128 | * It can be pretty CPU intensive depending on the # of ARFCNs and how much they're spaced. |
||
129 | 1 | ||
130 | 14 | horiz0n | |
131 | h4. "FunCube Dongle":http://tetra.osmocom.org/trac/wiki/Funcube_Dongle Build |
||
132 | |||
133 | <pre> |
||
134 | 4 | horiz0n | ./gmr_multi_rx --gain 30 --gmr1-dl 941 942 943 |
135 | 14 | horiz0n | </pre> |
136 | 4 | horiz0n | |
137 | 14 | horiz0n | * when receiving 3 consecutive channels, the middle channel will be distorted by the center peak caused by dc offset / iq imbalance |
138 | * when receiving 2 channels, each channel will have a small contribution of the center peak on the right or left side. |
||
139 | * best results may be achieved when receiving only one channel. |
||
140 | 4 | horiz0n | |
141 | |||
142 | 14 | horiz0n | h4. Default USRP clock |
143 | |||
144 | |||
145 | <pre> |
||
146 | 4 | horiz0n | ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 |
147 | 14 | horiz0n | </pre> |
148 | 4 | horiz0n | |
149 | 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. |
||
150 | |||
151 | |||
152 | 14 | horiz0n | h4. Modified USRP clocks |
153 | 4 | horiz0n | |
154 | 14 | horiz0n | |
155 | * use --mcr to tell custom fpga frequency in Hz |
||
156 | |||
157 | <pre> |
||
158 | 4 | horiz0n | ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 52e6 |
159 | 14 | horiz0n | </pre> |
160 | 4 | horiz0n | |
161 | 14 | horiz0n | * mcr of 59.904e6 Hz is gmr1-friendly, thus allowing to save on interpolation stage |
162 | 4 | horiz0n | |
163 | 14 | horiz0n | <pre> |
164 | 11 | horiz0n | ./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 59.904e6 |
165 | 14 | horiz0n | </pre> |
166 | 13 | horiz0n | |
167 | 11 | horiz0n | |
168 | 14 | horiz0n | h4. RTL SDR dongles |
169 | |||
170 | |||
171 | 9 | 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. |
|
172 | 2 | ||
173 | |||
174 | 14 | horiz0n | h3. Analyzing them |
175 | |||
176 | |||
177 | * Launch wireshark and listen to the lo interface |
||
178 | ** Make sure to use the proper version (see above) |
||
179 | ** Also make sure you have the rights to capture on lo |
||
180 | <pre> |
||
181 | <pre> |
||
182 | * View packets in wireshark using gmr1_bcch.* filters |