Great news!
I was finally able to get srsLTE up and running without any errors (calibration of Tx/Rx, clock, etc.). For reference, I followed the following the below post mostly, but am using 19.12 for srsLTE instead of the latest release.
I have obtained and programmed a SIM card as well, and placed the parameters in the user_db.csv file in the .config/srslte folder. Also, when I check for networks, I can see the one from the LimeSDR Mini! However, my only problem is that when I select the network on the phone, it doesn’t connect, and the srseNB doesn’t show attaching of any UE. srseNB config is below:
#####################################################################
srsENB configuration file
#####################################################################
#####################################################################
eNB configuration
enb_id: 20-bit eNB identifier.
mcc: Mobile Country Code
mnc: Mobile Network Code
mme_addr: IP address of MME for S1 connnection
gtp_bind_addr: Local IP address to bind for GTP connection
s1c_bind_addr: Local IP address to bind for S1AP connection
n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100)
tm: Transmission mode 1-4 (TM1 default)
nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4)
#####################################################################
[enb]
enb_id = 0x19B
mcc = 117
mnc = 07
mme_addr = 127.0.1.100
gtp_bind_addr = 127.0.1.1
s1c_bind_addr = 127.0.1.1
n_prb = 50
#tm = 4
#nof_ports = 2
#####################################################################
eNB configuration files
sib_config: SIB1, SIB2 and SIB3 configuration file
note: when enabling mbms, use the sib.conf.mbsfn configuration file which includes SIB13
rr_config: Radio Resources configuration file
drb_config: DRB configuration file
#####################################################################
[enb_files]
sib_config = sib.conf
rr_config = rr.conf
drb_config = drb.conf
#####################################################################
RF configuration
dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)
tx_gain: Transmit gain (dB).
rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
Optional parameters:
dl_freq: Override DL frequency corresponding to dl_earfcn
ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set)
device_name: Device driver family.
Supported options: “auto” (uses first found), “UHD”, “bladeRF”, “soapy” or “zmq”.
device_args: Arguments for the device driver. Options are “auto” or any string.
Default for UHD: “recv_frame_size=9232,send_frame_size=9232”
Default for bladeRF: “”
time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay
from antenna to timestamp insertion.
Default “auto”. B210 USRP: 100 samples, bladeRF: 27.
#####################################################################
[rf]
#dl_earfcn = 1200
#dl_earfcn = 0
#dl_earfcn = 2750
#dl_freq = 1240010000
#ul_freq = 1200
tx_gain = 80
rx_gain = 40
#dl_earfcn = 6200
#tx_gain = 56
#rx_gain = 38
#device_name = soapy
device_args = rxant=LNAH,txant=BAND1
#device_name = auto
For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
USRP B210: num_recv_frames=64,num_send_frames=64
And for 75 PRBs, also append “,master_clock_rate=15.36e6” to the device args
For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
USRP B210: send_frame_size=512,recv_frame_size=512
#device_args = auto
#time_adv_nsamples = auto
Example for ZMQ-based operation with TCP transport for I/Q samples
#device_name = zmq
#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
#####################################################################
Packet capture configuration
MAC Packets are captured to file in the compact format decoded by
the Wireshark mac-lte-framed dissector and with DLT 147.
To use the dissector, edit the preferences for DLT_USER to
add an entry with DLT=147, Payload Protocol=mac-lte-framed.
For more information see: https://wiki.wireshark.org/MAC-LTE
Please note that this setting will by default only capture MAC
frames on dedicated channels, and not SIB. You have to build with
WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want
SIB to be part of the MAC pcap file.
S1AP Packets are captured to file in the compact format decoded by
the Wireshark s1ap dissector and with DLT 150.
To use the dissector, edit the preferences for DLT_USER to
add an entry with DLT=150, Payload Protocol=s1ap.
mac_enable: Enable MAC layer packet captures (true/false)
mac_filename: File path to use for packet captures
s1ap_enable: Enable or disable the PCAP.
s1ap_filename: File name where to save the PCAP.
#####################################################################
[pcap]
#enable = false
#filename = /tmp/enb.pcap
#s1ap_enable = false
#s1ap_filename = /tmp/enb_s1ap.pcap
#####################################################################
Log configuration
Log levels can be set for individual layers. “all_level” sets log
level for all layers unless otherwise configured.
Format: e.g. phy_level = info
In the same way, packet hex dumps can be limited for each level.
“all_hex_limit” sets the hex limit for all layers unless otherwise
configured.
Format: e.g. phy_hex_limit = 32
Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all
Logging levels: debug, info, warning, error, none
filename: File path to use for log output. Can be set to stdout
to print logs to standard output
file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
If set to negative, a single log file will be created.
#####################################################################
[log]
all_level = warning
all_hex_limit = 32
filename = /tmp/enb.log
file_max_size = -1
[gui]
enable = false
#####################################################################
Scheduler configuration options
max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified)
pdsch_max_mcs: Optional PDSCH MCS limit
pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified)
pusch_max_mcs: Optional PUSCH MCS limit
min_nof_ctrl_symbols: Minimum number of control symbols
max_nof_ctrl_symbols: Maximum number of control symbols
#####################################################################
[scheduler]
#max_aggr_level = -1
#pdsch_mcs = -1
#pdsch_max_mcs = -1
#pusch_mcs = -1
#pusch_max_mcs = 16
#min_nof_ctrl_symbols = 1
#max_nof_ctrl_symbols = 3
#####################################################################
eMBMS configuration options
enable: Enable MBMS transmission in the eNB
m1u_multiaddr: Multicast addres the M1-U socket will register to
m1u_if_addr: Address of the inteferface the M1-U interface will listen for multicast packets.
mcs: Modulation and Coding scheme for MBMS traffic.
#####################################################################
[embms]
#enable = false
#m1u_multiaddr = 239.255.0.1
#m1u_if_addr = 127.0.1.201
#mcs = 20
#####################################################################
Channel emulator options:
enable: Enable/Disable internal Downlink/Uplink channel emulator
– AWGN Generator
awgn.enable: Enable/disable AWGN generator
awgn.snr: Target SNR in dB
– Fading emulator
fading.enable: Enable/disable fading simulator
fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
– Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2
Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period
delay.enable: Enable/disable delay simulator
delay.period_s: Delay period in seconds.
delay.init_time_s: Delay initial time in seconds.
delay.maximum_us: Maximum delay in microseconds
delay.minumum_us: Minimum delay in microseconds
– Radio-Link Failure (RLF) Emulator
rlf.enable: Enable/disable RLF simulator
rlf.t_on_ms: Time for On state of the channel (ms)
rlf.t_off_ms: Time for Off state of the channel (ms)
– High Speed Train Doppler model simulator
hst.enable: Enable/Disable HST simulator
hst.period_s: HST simulation period in seconds
hst.fd_hz: Doppler frequency in Hz
hst.init_time_s: Initial time in seconds
#####################################################################
[channel.dl]
#enable = false
[channel.dl.awgn]
#enable = false
#snr = 30
[channel.dl.fading]
#enable = false
#model = none
[channel.dl.delay]
#enable = false
#period_s = 3600
#init_time_s = 0
#maximum_us = 100
#minimum_us = 10
[channel.dl.rlf]
#enable = false
#t_on_ms = 10000
#t_off_ms = 2000
[channel.dl.hst]
#enable = false
#period_s = 7.2
#fd_hz = 750.0
#init_time_s = 0.0
[channel.ul]
#enable = false
[channel.ul.awgn]
#enable = false
#n0 = -30
[channel.ul.fading]
#enable = false
#model = none
[channel.ul.delay]
#enable = false
#period_s = 3600
#init_time_s = 0
#maximum_us = 100
#minimum_us = 10
[channel.ul.rlf]
#enable = false
#t_on_ms = 10000
#t_off_ms = 2000
[channel.ul.hst]
#enable = false
#period_s = 7.2
#fd_hz = -750.0
#init_time_s = 0.0
#####################################################################
Expert configuration options
pusch_max_its: Maximum number of turbo decoder iterations (Default 4)
pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3)
metrics_period_secs: Sets the period at which metrics are requested from the eNB.
metrics_csv_enable: Write eNB metrics to CSV file.
metrics_csv_filename: File path to use for CSV metrics.
pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance.
tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds).
max_prach_offset_us: Maximum allowed RACH offset (in us)
eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1).
eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0).
#####################################################################
[expert]
#pusch_max_its = 8 # These are half iterations
#pusch_8bit_decoder = false
#nof_phy_threads = 3
#metrics_period_secs = 1
#metrics_csv_enable = false
#metrics_csv_filename = /tmp/enb_metrics.csv
#pregenerate_signals = false
#tx_amplitude = 0.6
#rrc_inactivity_timer = 30000
#max_prach_offset_us = 30
#eea_pref_list = EEA0, EEA2, EEA1
#eia_pref_list = EIA2, EIA1, EIA0
##########################################################
If anyone has any suggestions to finally get the network up and running, I would be very grateful.
Thanks.