forked from bbaranoff/openlte
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 0f267bf
Showing
1 changed file
with
175 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
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 | ||
7) polarssl | ||
8) iptables | ||
|
||
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. Data packets are routed through | ||
a tun device named tun_openlte. Wireshark can be used to observe | ||
IP packets on tun_openlte to inspect the IP traffic to/from UEs. In | ||
order to configure properly, set the ip_addr_start parameter to the | ||
begining of a non-conflicting private address range (i.e. 10.0.0.1) | ||
and set the dns_addr parameter to the primary DNS address listed by | ||
your modem. All UEs will be assigned IP addresses in the range | ||
of ip_addr_start to ip_addr_start+254 and all traffic will be tunneled | ||
through the tun device to the internet using NAT/iptables. | ||
NOTES: This application has been tested exclusively at 5MHz | ||
bandwidth. 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. |