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