-
Notifications
You must be signed in to change notification settings - Fork 40
/
README
165 lines (140 loc) · 6.04 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
This directory contains the openLTE source code. For support, please
subscribe to [email protected]. Details can be
found at sourceforge.net/projects/openlte/.
The directory structure for the project is:
octave Octave test code
cmn_hdr Common header files
liblte C++ library of commonly used LTE functions
cmake Files needed for cmake
LTE_fdd_dl_file_scan A gnu-radio LTE FDD DL file scanner application
LTE_fdd_dl_file_gen A gnu-radio LTE FDD DL file generator application
LTE_fdd_dl_scan A gnu-radio LTE FDD DL scanner application that
currently supports rtl-sdr, hackrf, USRP B2X0,
and bladeRF hardware
LTE_file_recorder A gnu-radio LTE file recording application that
currently supports rtl-sdr, hackrf, USRP B2X0,
and bladeRF hardware
LTE_fdd_enodeb An LTE FDD eNodeB application that currently
supports URSP B2X0 hardware
openLTE is dependant on the following:
1) GNU Radio
2) GrOsmoSDR
3) rtl-sdr
4) UHD
5) HackRF
6) bladeRF
To build the C++ and python code use the following:
$ mkdir build
$ cd build
$ cmake ../
$ make
To install the C++ and python code use the following:
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
All testing was performed against the following configuration:
- Intel Core i5-2557M
- Ubuntu 12.04
- GNU Radio 3.7.2
- GrOsmoSDR 0.1.1
- rtl-sdr 0.5
- UHD 3.6.0-1
- HackRF 0.2
- bladeRF 0.9.0
##################
# FILE SCANNER #
##################
To use the installed C++ and python code for the file scanner,
set the PYTHONPATH env variable to
<python_install_dir>/dist-packages/gnuradio/
for instance /usr/local/lib/python2.7/dist-packages/gnuradio/
and make sure that /usr/local/lib is added to /etc/ld.so.conf
and that LD_LIBRARY_PATH is set to /usr/local/lib (export
LD_LIBRARY_PATH=/usr/local/lib). Then run LTE_fdd_dl_file_scan.py
and specify a recorded LTE file as the input. For example:
$ LTE_fdd_dl_file_scan.py lte_file.bin
To see a list of options, use the -h option:
$ LTE_fdd_dl_file_scan.py -h
To change the input file data type (int8 or gr_complex), use the
-d/--data-type option:
$ LTE_fdd_dl_file_scan.py -d int8 lte_file.bin
For int8 data type, the recorded LTE file must be interleaved signed
8-bit I and Q samples. For the gr_complex data type, the recorded
LTE file must be sequential gr_complex I/Q samples. Files recorded
with LTE_file_recorder or generated with LTE_fdd_dl_file_gen can be
scanned with this application.
####################
# FILE GENERATOR #
####################
To use the installed C++ and python code for the file generator,
set the PYTHONPATH env variable to
<python_install_dir>/dist-packages/gnuradio/
for instance /usr/local/lib/python2.7/dist-packages/gnuradio/
and that LD_LIBRARY_PATH is set to /usr/local/lib (export
LD_LIBRARY_PATH=/usr/local/lib). Then run LTE_fdd_dl_file_gen.py
and specify an output file for the LTE fdd downlink signal.
For example:
$ LTE_fdd_dl_file_gen.py lte_file.bin
To see a list of options, use the -h option:
$ LTE_fdd_dl_file_gen.py -h
To change the output file data type (int8 or gr_complex), use the
-d/--data-type option:
$ LTE_fdd_dl_file_gen.py -d gr_complex lte_file.bin
For int8 data type, the generated LTE file contains interleaved
signed 8-bit I and Q samples. For the gr_complex data type, the
generated LTE file contains sequential gr_complex I/Q samples.
Files generated with this application can be scanned with
LTE_fdd_dl_file_scan.
#############
# SCANNER #
#############
To use the installed C++ live scanner, make sure LD_LIBRARY_PATH
is set to /usr/local/lib (export LD_LIBRARY_PATH=/usr/local/lib),
plug in rtl-sdr, hackrf, USRP B2X0, or bladeRF hardware, run
LTE_fdd_dl_scan, and connect (via telnet, nc, etc) to the control
port at port number 20000. Scan parameters can be changed and
scan results can be observed on the control port. For a list of
parameters simply type help on the control port.
###################
# FILE RECORDER #
###################
To use the installed C++ file recorder, make sure LD_LIBRARY_PATH
is set to /usr/local/lib (export LD_LIBRARY_PATH=/usr/local/lib),
plug in rtl-sdr, hackrf, USRP B2X0, or bladeRF hardware, run
LTE_file_recorder, and connect (via telnet, nc, etc) to the
control port at port number 25000. Recording parameters can be
changed on the control port. For a list of parameters simply type
help on the control port. Files recorded using hackRF, USRP B2X0,
or bladeRF hardware are recorded using a sample rate of 15.36MHz.
Files recorded with all other hardware are recorded using a sample
rate of 1.92MHz. All files recorded with this application can be
scanned with LTE_fdd_dl_file_scan.
############
# ENODEB #
############
To use the installed C++ eNodeB, make sure LD_LIBRARY_PATH is set
to /usr/local/lib (export LD_LIBRARY_PATH=/usr/local/lib), plug in
USRP B2X0 hardware, run LTE_fdd_enodeb, and connect (via telnet, nc,
etc) to the control port at port number 30000. eNodeB parameters
can be changed on the control port. For a list of parameters simply
type help on the control port. A MAC and above level PCAP trace is
output to /tmp/LTE_fdd_enodeb.pcap.
NOTES: This application has been tested at 1.4, 3, and 5MHz
bandwidths. Higher bandwidths are supported and performance may
vary based on processing hardware.
WARNINGS: By using this application you risk disruption of service in
a public network, even if you are not directly interfering with the
radio transmissions. This is a criminal act in most countries, and a
much more serious offense than a simple violation of radio spectrum
regulaions. It is highly recommended to use this application only
with antennas and test UEs inside an RF Shielded Enclosure (Faraday
Cage).
############
# OCTAVE #
############
To use the octave code, run the top level octave .m files:
lte_fdd_dl_transmit.m and lte_fdd_dl_receive.m. If multiple
transmit antennas are used, the outputs need to be combined
before input to the receiver.