Note: I’m running version 19.12.0 which I installed from the repos due to issues with 20.4.0 (latest when I wrote this) and stability on LimeSDR.
I wrote the other day about installing SRS LTE stack,
But installing it is one thing, meeting all the requirements to use it with your SDR hardware turns out to be another whole thing all together.
srsENB is a software defined eNodeB, allowing you to use a Software Defined Radio to serve as an eNodeB, UE and a few other utilities.
SRS’ implementation of the eNB is supposed to be 3GPP R10 compliant and supports eMBMS to boot.
Meeting Dependencies
Installing prerequisites
I’m using a LimeSDR, but these instructions also for for the BladeRF. I found the frequency stability of my BladeRF X40 wasn’t great, meaning when running SRS’s eNodeB the cell wasn’t visible to my UE.
sudo apt install tree vim git g++ make cmake pkg-config python-numpy swig libi2c-dev libusb-1.0-0-dev libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev gnuradio
Install SoapySDR from Source
git clone https://github.com/pothosware/SoapySDR.git
pushd SoapySDR
git checkout tags/soapy-sdr-0.7.2 -b soapy-sdr-0.7.2
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
popd
Install LimeSuite
You can skip this if you’re using a BladeRF
git clone https://github.com/myriadrf/LimeSuite.git pushd LimeSuite #git checkout tags/v19.04.0 -b v19.04.0 mkdir builddir cd builddir cmake .. make sudo make install sudo ldconfig cd ../udev-rules sudo sh ./install.sh popd
Install BladeRF
You can skip this if using a LimeSDR
git clone https://github.com/Nuand/bladeRF.git pushd bladeRF/host/ mkdir build cd build/ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_UDEV_RULES=ON -DBLADERF_GROUP=plugdev .. make sudo make install sudo ldconfig sudo mkdir -p /etc/Nuand/bladeRF/ sudo wget https://www.nuand.com/fpga/hostedx40-latest.rbf --output-document /etc/Nuand/bladeRF/hostedx40.rbf popd git clone https://github.com/pothosware/SoapyBladeRF.git pushd SoapyBladeRF mkdir build cd build cmake .. make sudo make install popd
Install SRS GUI
(Optional but makes life easier and has to be done prior to installing SRSLTE)
sudo apt-get install libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-qt5-dev qtbase5-dev
git clone https://github.com/srsLTE/srsGUI.git
pushd srsGUI
mkdir build
cd build
cmake ..
make
sudo make install
popd
Install SRSLTE (SRSenb & SRSue)
pushd srsLTE
mkdir build
cd build
cmake ../
make
make test
sudo make install
sudo ldconfig
sudo ./srslte_install_configs.sh service
popd
Great!! Got today my first SDR the LimeSDR-Mini v1.3 and YES my old Moto G4 Plus was surfing the Internet 4G under default config files with B7 channel (2.6GHz).
I edited my config files including rr.conf and succeded to run the eNodeB in B20 (800MHz) but there are many errors in the air interface, not sure if it is the RF environment and public mobile networks in B20, a bad filtering in LimeSDR-Mini, the antennas… will check tomorrow.
I couldn’t change my network with new PLMN. It seems that SRSLTE only works as a TEST 001-01 network…
I noticed downlink signal was strong so I replaced the Rx antenna with a coax cable plus 50 ohms load, and the 800 MHz problem is gone.
Will report the MCC MNC network change failure in GitHub issues.
Very helpful write-ups. Thanks much.
I understand BladeRF/LimeSDR can be used to view signalling. Would it be possible to use them to change some bits in the signalling mesaages (pentest)?
Hi Salim,
LTE uses MAC (Message Authentication Codes) to verify integrity, so you can’t manipulate messaging from other eNodeBs, but if you’re the eNB you could change some of the messaging if you wanted, as the project is open source you’d just edit and recompile.
Trying to create SRSLTE with LimeSDR USB but im getting these errors can you please help me out thanks
Type to view trace
[FATAL] [UHDSoapyDevice] TuneVCO(CGEN) – failed to lock (cmphl!=3)
setSampleRate Rx fail SoapyLMS7 setSampleRate failed
[ERROR] Tx Calibration MCU error 2 (CGEN tune failed)
[ERROR] Rx calibration MCU error 2 (CGEN tune failed)
i tried to fix Calibration issue using LimeSuiteGui but still no luck 🙁
do you have any idea how to fix it ? or is it hardware issue ?