Menu

Installing OpenLTE

dchard

Prerequisites:

  • USB3 interface
  • Modern multicore CPU (Intel Core i5, Core i7 or equivalent with SSE4.1 SSE4.2 and AVX support)
  • UHD driver installed (for Ettus SDRs)
  • GNURADIO

Setup your computer:

OpenLTE is not only requiring a huge amount of processing power, but it also requires a very low latency due its need to transmit/receive a radio frame every 1ms. If there is any delay in the processing, the system will not going to be able respond in time and will lose samples. Therefor it is recommended to switch of any CPU and/or system features (mostly in your BIOS) which can cause any delays or can slow down the so called context switching time. Intel SpeedStep, deep and deeper sleep states etc. should be turned off. Especially with high bandwidth setups (10, 15 and 20MHz) it is recommended to swtich off the GUI on linux. There is also a low latency edition of the linux kernel, but at this point there is no absolute proof that it actually helps with OpenLTE.

Installing GNURadio with UHD:

With an Ettus radio (B200, B210) you will need the latest UHD driver besides GNURadio.

I recomend not to use the binary version but to compile to code with UHD like the following:

As a non-root user, give the following command:

mkdir gnuradio
cd gnurdio
wget http://www.sbrac.org/files/build-gnuradio
chmod a+x build-gnuradio

./build-gnuradio -v

You will be asked for the root password by the install script. The whole procedure can take up to 3 hours! It will download GNURadio , UHD and all the necessary dependencies.

Check the communication with your Ettus SDR:
Connect your SDR to one of the USB3 interfaces, and run:

uhd_usrp_probe

The software will load the FPGA code to your device, and queries your device. If you done everything right, you should see something similar:

linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.001-42-g8c87a524

-- Operating over USB 3.
-- Initialize CODEC control...
-- Initialize Radio control...
-- Performing register loopback test... pass
-- Performing CODEC loopback test... pass
-- Asking for clock rate 32.000000 MHz...
-- Actually got clock rate 32.000000 MHz.
-- Performing timer loopback test... pass
-- Setting master clock rate selection to 'automatic'.
  _____________________________________________________
 /
|       Device: B-Series Device
|     _____________________________________________________
|    /
|   |       Mboard: B200
|   |   revision: 4
|   |   product: 1
|   |   serial: F54xxx
|   |   FW Version: 7.0
|   |   FPGA Version: 4.0
|   |
|   |   Time sources: none, internal, external, gpsdo
|   |   Clock sources: internal, external, gpsdo
|   |   Sensors: ref_locked
|   |     _____________________________________________________
|   |    /
|   |   |       RX DSP: 0
|   |   |   Freq range: -16.000 to 16.000 MHz
|   |     _____________________________________________________
|   |    /
|   |   |       RX Dboard: A
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Frontend: A
|   |   |   |   Name: FE-RX2
|   |   |   |   Antennas: TX/RX, RX2
|   |   |   |   Sensors:
|   |   |   |   Freq range: 50.000 to 6000.000 MHz
|   |   |   |   Gain range PGA: 0.0 to 73.0 step 1.0 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       RX Codec: A
|   |   |   |   Name: B200 RX dual ADC
|   |   |   |   Gain Elements: None
|   |     _____________________________________________________
|   |    /
|   |   |       TX DSP: 0
|   |   |   Freq range: -16.000 to 16.000 MHz
|   |     _____________________________________________________
|   |    /
|   |   |       TX Dboard: A
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Frontend: A
|   |   |   |   Name: FE-TX2
|   |   |   |   Antennas: TX/RX
|   |   |   |   Sensors:
|   |   |   |   Freq range: 50.000 to 6000.000 MHz
|   |   |   |   Gain range PGA: 0.0 to 89.8 step 0.2 dB
|   |   |   |   Connection Type: IQ
|   |   |   |   Uses LO offset: No
|   |   |     _____________________________________________________
|   |   |    /
|   |   |   |       TX Codec: A
|   |   |   |   Name: B200 TX dual DAC
|   |   |   |   Gain Elements: None

Installing PolarSSL

On Ubuntu and Debian system, use the following command:

sudo apt-get install libpolarssl-dev

Get the code:

You can get the latest version of the OpenLTE code at:

https://sourceforge.net/projects/openlte/files/

Download and extract the latest version and go to the extracted folder.

Configuring and compiling the code:

mkdir build
cd build
sudo cmake ../
sudo make
sudo make install

Now you are ready to start your own LTE eNodeB.


Related

Wiki: Home

Discussion

  • Blinko

    Blinko - 2017-03-20

    Hello guys. Here I want to share something for clearing doubts if necessary. I installed OPENLTE and it gives some error when checking the polarssl package. Here are my steps:

    GNURADIO and UHD were already installed on my kali linux, aparently the kali-linux-sdr metapackage brings them on. But something with the UHD was happening wrongly because it gave the error of not being able to find the UHD LIBRARIES and UHD INCLUDE DIRS when doing the sudo cmake ../. Also it gave the No package 'polarssl' found but it did find the POLARSSL LIBRARIES AND INCLUDE DIRS. Then I ran

    sudo apt-get install uhd-host <<< it stopped the UHD problem

    sudo apt-get install libpolarssl-dev
    [download openlte as described on the steps]
    mkdir build
    cd build
    sudo cmake ../ <<<< the output showed "No package 'polarssl' found"
    sudo make
    sudo make install

    It continue showing the No package 'polarssl' found but aparently It installed with no further implications (because it finished installation and I was able to run LTE_fdd_enodeb). So here are my questions:

    1. Is this -No package 'polarssl' found- ERROR or WARNING going to implicate further errors on OPENLTE funcionalities? I attached the different outpus after each command so you can check them if necessary.
    2. The steps on the manual indicates to install it as non-root user but I could do it as a root user, is this normal? what could this implicate?

    Thanks in advance, please little of your time on this. I am trying to understand some weird linux things.

    Blinko

     

    Last edit: Blinko 2017-03-20
    • SGM

      SGM - 2017-04-01

      Hey there Blinko,
      Did you end up finding a solution to this? I have hit the same tree stump and its killing me. My understanding is that libpolarssl-dev is no longer part of the ubuntu package control but has been added as libmbedtls-dev.

      I installed that package but still when you run the cmake file fromt he build dir it fails to find libpolarssl-dev. I think its because it looks for the polarssl-dev libary to link and throws a trantrum when its not there.

      Without going through the cmake file and replacing dependancies I dont know how to get around this apart from reinstalling ubuntu 14.04 since this seems to be the last release of ubuntu that will run openLTE with no issues.

      If another user sees big issues in my understanding please point them out I'm on a steep learning curve here and am happy to be pulled back into the right direction.

      Cheers,
      SGM

       

      Last edit: SGM 2017-04-01
      • Jar Head Clan

        Jar Head Clan - 2018-06-24

        Hi,
        I am just wondering if and how you worked around this problem?
        Ive been struggling with it for over a week now and I cant seem to get around it.

        Thanks

         
    • hitesh kumar

      hitesh kumar - 2019-02-02

      Hey Boss,
      I want to make this project at my home and while i was checking price of this UHD driver installed (for Ettus SDRs)
      GNURADIO it is going out my busget. I have my own laptop . but other hardware is going out of my budget . SO what is cheapest option for me and correct way to make this test LTE setup ready for my personal project. Regards/Hitesh

       
  • Blinko

    Blinko - 2017-04-01

    Hi there SGM, I am interested in helping because it is a good way to keep learning so if you dont mind we can arrange a skype session I talk about, I think I can help u. My skype nickname is jarod_cs ... although I think you have been answered on the discussion forum.

    Cheers
    Blinko

     
    • SGM

      SGM - 2017-04-03

      Request sent

       
    • hitesh kumar

      hitesh kumar - 2019-02-02

      Hey Boss,
      I want to make this project at my home and while i was checking price of this UHD driver installed (for Ettus SDRs)
      GNURADIO it is going out my busget. I have my own laptop . but other hardware is going out of my budget . SO what is cheapest option for me and correct way to make this test LTE setup ready for my personal project. I really want to make it at home , and want step by step way to do it. I am not expert but still want to do this. Regards/Hitesh

       
  • Jar Head Clan

    Jar Head Clan - 2018-06-24
    Post awaiting moderation.
  • Luge

    Luge - 2018-10-22

    When I try install the latest openlte(v00-20-05), at the step "sudo make", my ubuntu print error and exit the progress, the error[2] are as fellows:

    In file included from LTE_fdd_enb_radio.cc:70:0:
    /usr/local/include/uhd/utils/thread_priority.hpp:10:17: note: #pragma message: This header is deprecated - please use <uhd thread.hpp="" utils=""> instead.
    #pragma message "This header is deprecated - please use <uhd thread.hpp="" utils="">
    ^
    LTE_fdd_enb_radio.cc: In member function ‘LTE_FDD_ENB_ERROR_ENUM LTE_fdd_enb_radio_bladerf::setup(uint32, double, int16, int16, uint8, uint32, uint32)’:
    LTE_fdd_enb_radio.cc:830:52: error: invalid conversion from ‘int’ to ‘bladerf_channel_layout’ [-fpermissive]
    In file included from /home/luge/openlte/LTE_fdd_enodeb/hdr/LTE_fdd_enb_radio.h:56:0,
    from LTE_fdd_enb_radio.cc:63:
    /usr/local/include/libbladeRF.h:2520:15: note: initializing argument 2 of ‘int bladerf_sync_config(bladerf, bladerf_channel_layout, bladerf_format, unsigned int, unsigned int, unsigned int, unsigned int)’
    int CALL_CONV bladerf_sync_config(struct bladerf
    dev,
    ^
    LTE_fdd_enb_radio.cc:850:52: error: invalid conversion from ‘int’ to ‘bladerf_channel_layout’ [-fpermissive]
    In file included from /home/luge/openlte/LTE_fdd_enodeb/hdr/LTE_fdd_enb_radio.h:56:0,
    from LTE_fdd_enb_radio.cc:63:
    /usr/local/include/libbladeRF.h:2520:15: note: initializing argument 2 of ‘int bladerf_sync_config(bladerf, bladerf_channel_layout, bladerf_format, unsigned int, unsigned int, unsigned int, unsigned int)’
    int CALL_CONV bladerf_sync_config(struct bladerf
    dev,
    ^
    LTE_fdd_enb_radio.cc: In member function ‘void LTE_fdd_enb_radio_bladerf::receive(LTE_FDD_ENB_RADIO_PARAMS_STRUCT)’:
    LTE_fdd_enb_radio.cc:977:76: error: invalid conversion from ‘int’ to ‘bladerf_direction’ [-fpermissive]
    In file included from /home/luge/openlte/LTE_fdd_enodeb/hdr/LTE_fdd_enb_radio.h:56:0,
    from LTE_fdd_enb_radio.cc:63:
    /usr/local/include/libbladeRF.h:2446:15: note: initializing argument 2 of ‘int bladerf_get_timestamp(bladerf
    , bladerf_direction, bladerf_timestamp)’
    int CALL_CONV bladerf_get_timestamp(struct bladerf
    dev,
    ^
    LTE_fdd_enodeb/CMakeFiles/LTE_fdd_enodeb.dir/build.make:302: recipe for target 'LTE_fdd_enodeb/CMakeFiles/LTE_fdd_enodeb.dir/src/LTE_fdd_enb_radio.cc.o' failed
    make[2]: [LTE_fdd_enodeb/CMakeFiles/LTE_fdd_enodeb.dir/src/LTE_fdd_enb_radio.cc.o] Error 1
    CMakeFiles/Makefile2:961: recipe for target 'LTE_fdd_enodeb/CMakeFiles/LTE_fdd_enodeb.dir/all' failed
    make[1]:
    [LTE_fdd_enodeb/CMakeFiles/LTE_fdd_enodeb.dir/all] Error 2
    Makefile:138: recipe for target 'all' failed
    make: *** [all] Error 2</uhd></uhd>

    I can not figure out what's the matter, is there anyone could help me?with my sincere appreciate.
    Luge
    my email address: shruglessness@gmail.com

     
    • Dominic Antony

      Dominic Antony - 2019-01-08

      Hi Luge

      Me too have came across the same error. Have you succeeded in OpenLTE installation by any chance. If so, please share what you have done to achieve the same.

       
      • Luge

        Luge - 2019-01-08

        Hi. I tried to fix it, but failed. Finally, I found the version(v00-19-04) installing successfully. You can have a try if there is no demands for the latest version.

         
    • hitesh kumar

      hitesh kumar - 2019-02-02

      Hey Boss,
      I want to make this project at my home and while i was checking price of this UHD driver installed (for Ettus SDRs)
      GNURADIO it is going out my busget. I have my own laptop . but other hardware is going out of my budget . SO what is cheapest option for me and correct way to make this test LTE setup ready for my personal project. I really want to make it at home , and want step by step way to do it. I am not expert but still want to do this. Regards/Hitesh

       
  • VictorA

    VictorA - 2019-03-11

    Hey everybody,
    Have you succeded in OpenLTE installation and testing with Ettus Radio B210?
    What Linux version you use Luge? I am thinking trying to install OpenLTE in my Ubuntu 14.04?

     

Log in to post a comment.