当前位置: 首页>C++>正文

國內5g走nsa還是sa,24 - srsRAN安裝部署(已支持5G NSA和SA, 原srsLTE)

國內5g走nsa還是sa,24 - srsRAN安裝部署(已支持5G NSA和SA, 原srsLTE)

24 - srsRAN安裝部署(已支持5G SA/NSA, 原srsLTE )

  • 0.srsRAN概況
    • 硬件需求概覽:
  • 1. 僅快速體驗srsLTE with USRP B210
  • 2. srsRAN源碼安裝
    • 2.1 安裝依賴
    • 2.2 安裝srsGUI可視化界面(可選,推薦)
    • 2.3 根據您的RF硬件安裝驅動/射頻仿真
    • 2.4 安裝srsRAN
  • 3 部署srsRAN+射頻
    • 3.1 srs的BS+srs的UE
    • 3.2 special: 配置MIMO
    • 3.3 special: 配置5G NSA
      • 3.3.1 不帶射頻(用ZMQ)
      • 3.3.2 帶射頻
    • 3.3 special: 配置5G SA
      • 3.3.1 不帶射頻(用ZMQ)
    • 3.5 special: 用商用手機連接
  • 4 部署srsRAN+仿真射頻
    • 4.1 安裝ZeroMQ
    • 4.2 special: 5G NSA

0.srsRAN概況

srsLTE在4G時代以其穩定、便捷部署、兼容usrp等特征,在SDR中評價優秀,尤其是其LTE UE基本是當時唯一能穩定長時間運行的軟UE。

現在srsLTE已經更名為srsRAN,截止目前2022.3.18 (2023.2)srsRAN已經支持5G NSA gNB、5G NSA UE、sidelink、LTE eNB、LTE UE、5G SA gNB、5G SA UE。由于我對srs的印象極佳,最近也對比了一下srsRAN、OpenAir*********、Seg****,的代碼,簡單記一下部署srsRAN的過程。(十分順利,沒有OpenAir******那么多需要注意的)

2023.3更新:注意,srsRAN.git的代碼最近完成了整理,已分成了https://github.com/srsran/srsRAN_Project.git

https://github.com/srsran/srsRAN_4G.git
兩個項目以分別進行維護5G和4G功能(之前都在一起,代碼結構確實比較亂)。下面的地址記得相應修改。回頭我重寫一遍博客。

硬件需求概覽:

  • 樹莓派4:可以帶射頻跑5M帶寬,不帶射頻用zmq也可以(便宜+便攜,而且這個內存大小OAI可能都無法完成編譯)
  • Intel NUC8i7beh:20MHz 2x2MIMO,單小區。(經典皮膚,注意散熱)
  • 實驗室發的筆記本戴爾 Precision 3340 i7 萬兆口 + USRP X310/N310:可以跑 160 MHz、2x2MIMO、多小區、載波聚合(史詩皮膚,不過實體清單上的學校現在不太好買USRP)

1. 僅快速體驗srsLTE with USRP B210

就是以前的srsLTE啦,因為提供了package安裝,安裝命令精簡為:

sudo add-apt-repository ppa:softwareradiosystems/srsran
sudo apt-get update
sudo apt-get install srsran -y

2. srsRAN源碼安裝

詳見srs官網 https://www.srs.io/

2.1 安裝依賴

Ubuntu1804:

sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev

Fedora:

dnf install cmake fftw3-devel mbedtls-devel lksctp-tools-devel libconfig-devel boost-devel

CentOS:

dnf install cmake fftw3-devel mbedtls-devel lksctp-tools-devel libconfig boost-devel

2.2 安裝srsGUI可視化界面(可選,推薦)

用于顯示星座圖等

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
cd srsgui
mkdir build
cd build
cmake ../
make 

可用make test測試是否安裝成功
啟用的話在srs的配置文件中,[gui]的enable即可true

2.3 根據您的RF硬件安裝驅動/射頻仿真

比較基本,我就假設各位都裝好了并且測試可用
UHD(推薦用3.15,跟OAI通用)https://github.com/EttusResearch/uhd
SoapySDR https://github.com/pothosware/SoapySDR
BladeRF https://github.com/Nuand/bladeRF

ZeroMQ替代射頻仿真,類似于OAI的rfsimulator的拓撲,需要單獨定義信道環境,區別于L2sim,詳見第4章
https://github.com/zeromq

2.4 安裝srsRAN

2023.3:注意,srsRAN.git的代碼最近完成了整理,已分成了https://github.com/srsran/srsRAN_Project.git

https://github.com/srsran/srsRAN_4G.git
兩個項目以分別進行維護5G和4G功能(之前都在一起,代碼結構確實比較亂)。下面的地址記得相應修改。回頭我重寫一遍博客。

下載源碼編譯:

git clone https://github.com/srsRAN/srsRAN.git
cd srsRAN
mkdir build
cd build
cmake ../
make
make test

安裝(推薦,方便)

sudo make install
srsran_install_configs.sh user

默認配置文件位置在~/.config/srsran

3 部署srsRAN+射頻

srsRAN目前集成了LTE和NR的協議棧。
srsepc: 簡單的LTE 核心網
srsenb:通過enb.conf rr.conf 等配置文件來控制運行LTE還是NR(集成)。
srsgnb:O-RAN 7.2x架構的NR基站,CU DU分離。
srsue:UE。

3.1 srs的BS+srs的UE

依然是愉快的

#指定配置文件
sudo srsenb ~/.config/srsran/enb.conf 
#不指定,用默認配置
sudo srsenb 

#指定配置文件
sudo srsue ~/.config/srsran/ue.conf 
sudo srsue #默認配置

./srsRAN/build/lib/examples里可以找到配置文件示例,此外還有些很方便的SIB的配置(比如我做授時需要配置SIB9)sib.conf、空口資源配置(比如可以引入額外的AI算法)rr.conf、DRB承載的配置 drb.conf。至于連接核心網的一些配置、UE的SIM的配置、核心網的配置等,可以看我之前的博客。

  • 如果性能不足可以考慮禁用睿頻、使用低延遲內核,可看之前的博客
for f in /sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_governor ; doecho performance > $f
done

3.2 special: 配置MIMO

目前支持模式tm=2、3、4 (參TS38.213),在配置文件中:

[enb]
...
tm = 3  #傳輸模式
nof_ports = 2  #天線端口數

基站在tm=3和4時候配置UE上報Rank Indicator的周期可以在rr.confm_ri處配置,整數,是CQI報告周期的倍數。

3.3 special: 配置5G NSA

3.3.1 不帶射頻(用ZMQ)

ZMQ配置見第4章

  • 修改基站的配置文件
    enb.conf中,配置[rf]中的device_name和device_args,如
device_name = zmq
device_args = fail_on_disconnect=true,tx_port0=tcp://*:2000,rx_port0=tcp://localhost:2001,tx_port1=tcp://*:2100,rx_port1=tcp://localhost:2101,id=enb,base_srate=23.04e6

再配置RRC, rr.conf的末尾添加一個NR小區(不需要LTE的話記得注釋掉LTE的cell_list

nr_cell_list =
({rf_port = 1;cell_id = 0x02;tac = 0x0007;pci = 500;root_seq_idx = 204;// TDD://dl_arfcn = 634240;//band = 78;// FDD:dl_arfcn = 368500;band = 3;}
);
  • 運行BS
    跟之前一樣sudo srsue或者指定上配置文件,會根據配置文件啟動BS。可以同時啟動eNB和gNB。
    log里cc_idx 0 是LTE cell,1是NR cell。

  • 修改UE的配置文件
    [rf]里修改device_name和device_args,如

device_name = zmq
device_args = tx_port0=tcp://*:2001,rx_port0=tcp://localhost:2000,tx_port1=tcp://*:2101,rx_port1=tcp://localhost:2100,id=ue,base_srate=23.04e6

添加網絡

[gw]
netns = ue1

配置搜索的頻段、載波數,TDD FDD都支持

[rat.nr]
bands = 3,78
nof_carriers = 1

聲明標準支持(默認是聲明支持R8,NSA至少R15)

[rrc]
release = 15
  • 運行UE
    跟之前一樣。log中出現RRC NR reconfiguration successful表示成功連上NSA。

  • 測試
    ping或者iperf,隨意。
    上行注意需要指定接口ue1(按前幾步[gw]中配置):

sudo ip netns exec ue1 iperf3 -c 172.16.0.1 -b 10M -i 1 -t 60

同樣,按t可以trace,打log的速度可以在配置文件metrics_period_secs處修改。

3.3.2 帶射頻

配置文件修改類似3.3.1節,如

[rf]
device_args=type=x300,clock=external,sampling_rate=11.52e6,lo_freq_offset_hz=11.52e6
nr_cell_list =
({rf_port = 1;cell_id = 0x02;tac = 0x0007;pci = 500;root_seq_idx = 204;// TDD://dl_arfcn = 634240;//band = 78;// FDD:dl_arfcn = 368500;band = 3;}
);

3.3 special: 配置5G SA

3.3.1 不帶射頻(用ZMQ)

ue.conf中添加ZMQ配置

[rf]
freq_offset = 0
tx_gain = 80
srate = 11.52e6device_name = zmq
device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=11.52e6

添加網絡

[gw]
netns = ue1

關閉LTE的頻段

[rat.eutra]
dl_earfcn = 2850
nof_carriers = 0

開啟NR的頻段

[rat.nr]
bands = 3,78
nof_carriers = 1

聲明標準支持(SA至少R15)

[rrc]
release = 15

啟用APN

[nas]
apn = srsapn
apn_protocol = ipv4

剩下的USIM那些跟之前的配置方法一樣。

enb.conf中MME的地址處寫AMF的地址

[enb]
enb_id = 0x19B
mcc = 901
mnc = 70
mme_addr = 192.168.8.10	#OpenXG核心網物理機地址,記得添加到docker的路由
gtp_bind_addr = 127.0.1.1	#Local Address
s1c_bind_addr = 127.0.1.1
s1c_bind_port = 0
n_prb = 50

配置BS這里的ZMQ,可以修改端口但注意匹配

[rf]
rx_gain = 40
tx_gain = 80# 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=11.52e6

rr.conf中移除LTE的cell_list并添加NR_cell_list(不移除LTE小區的話會是NSA模式)

nr_cell_list =
({rf_port = 0;cell_id = 1;root_seq_idx = 1;tac = 7;pci = 500;dl_arfcn = 368500;coreset0_idx = 6;band = 3;}
);

3.5 special: 用商用手機連接

目前有點淦的是srsRAN只支持15KHz SCS,等更新吧。
目前OnePlus 5G Nord可以接入,問題不少有興趣可參這里。

4 部署srsRAN+仿真射頻

4.1 安裝ZeroMQ

srsRAN沒有自己的rfsim,用的ZMQ做轉發假裝是經過了一個信道,目前只支持單UE單BS。
!注意4.1這一步對應2.3節,是應該在編譯srsRAN之前就安裝的,如果已經編譯了srsRAN需要在裝完ZMQ之后重新make一下srsRAN

  • package安裝:
sudo apt-get install libzmq3-dev

或者用源碼編譯:

git clone https://github.com/zeromq/libzmq.git
cd libzmq
./autogen.sh
./configure
make
sudo make install
sudo ldconfig
git clone https://github.com/zeromq/czmq.git
cd czmq
./autogen.sh
./configure
make
sudo make install
sudo ldconfig
  • 對應2.4節
    在2.4節執行一下命令編譯過程時↓
git clone https://github.com/srsRAN/srsRAN.git
cd srsRAN
mkdir build
cd build
cmake ../
make

注意要有以下log才是正確安裝了ZMQ并且被srsRAN識別到了

...
-- FINDING ZEROMQ.
-- Checking for module 'ZeroMQ'
--   No package 'ZeroMQ' found
-- Found libZEROMQ: /usr/local/include, /usr/local/lib/libzmq.so
...
  • 設置ue的仿真網絡:
sudo ip netns add ue1
sudo ip netns list
  • 啟動核心網
    略,可以用srs的迷你epc,也可以用OAI的,可參考我以前的博客等。
    srsepc大概就:
sudo ./srsepc/src/srsepc

OAI的epc:https://blog.csdn.net/BUPTOctopus/article/details/81560514
OAI的5GC:見3.3.1

  • 運行BS
    以eNB為例
./srsenb/src/srsenb --rf.device_name=zmq --rf.device_args="fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6"
  • 運行UE
sudo ./srsue/src/srsue --rf.device_name=zmq --rf.device_args="tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6" --gw.netns=ue1
  • 測試(下行)
    ping或者iperf,沒什么特殊的
  • 測試(上行)
    從UE發包的話需要制定ue的接口,(4G的話)ping SPGW用172.16.0.1(按照您UEIPpool的設置)
sudo ip netns exec ue1 ping 172.16.0.1

關閉時候要先關UE再關BS最后記得sudo ip netns delete ue1,不然會出bug。

  • GNU-Radio
    支持,運行時先分別啟動核心網、BS、UE,最后再開GRC Flowgraph

4.2 special: 5G NSA

in fact nothing special……


一些其他的工具:
①ubuntu下的讀卡器工具 https://pcsclite.apdu.fr/
②win下的讀卡器工具(我之前博客發過)
③libdw-dev和libdw:使用backward-cpp進行實際信息的回溯


一些srsRAN的用例:
①樹莓派4用例
②載波聚合
③eMBMS
④NB-IoT
⑤C-V2X


https://www.zydui.com/af7c5Um8CAwVRClUJ.html
>

相关文章:

  • 國內5g走nsa還是sa
  • 5g網絡模式選擇sa nsa
  • 5g組網方式nsa和sa
  • 中國5g部署最新消息
  • 5G網絡部署進展
  • 5g各城市部署進展
  • 運營商5g部署
  • 中國移動5G部署
  • 網關和路由器的區別,詳解MAC地址,網橋,路由器_計算機網絡筆記
  • 隱馬爾可夫模型例題解釋,matlab中的隱馬爾可夫模型(HMM)實現
  • vmware安裝ubuntu,基于VMware+Ubuntu 14.04 搭建ESP32 開發環境
  • c++builder6.0安裝教程,Detectron2小白教程之安裝試用篇
  • 深度學習分類類別不平衡_如何應對深度學習中的數據分布不平衡問題
  • 培訓ppt課件怎么做,怎樣使用PPT制作出員工培訓流程圖?詳見教程
  • Visual Studio2013下Magick++配置方法
  • ubuntu編寫c++程序,【c++開發】C++ Linux Ubuntu imagemagick以及magick++安裝;c++調用magick++庫;找不到
  • cmd批處理命令,使用cmd批處理配合image magick批量轉換圖片格式
  • android 12 beta5,更進一步 | Android 12 Beta 2 發布
  • 蘋果發布 iOS14.3 準正式版,是否升級的建議
  • ios13和ios14對比,iOS13 公測版,iOS12.4 雙系統發布,是否升級的建議
  • ios14有哪些新功能,蘋果iOS 14正式發布!一大波新功能集體上線,必升!
  • 終止代碼SYSTEM_SERVICE_EXCEPTION,SystemServer
  • 2015華為實習生招聘機試題長沙站
  • 2017華為實習生招聘面試經歷(IT應用軟件 c++)
  • 當內存儲器的容量為4kb時,若用256K×8bit的存儲器芯片,構成地址40000000H到400FFFFFH且按字節編址的內存區域,則需(5)片芯片。...
  • 【軟考】在內存按字節編址。若用存儲容量為32K*8bit的存儲器芯片構成地址從A0000H倒DFFFFH的內存,則至少需要多少片芯片?
  • 存儲器字數的擴展可以利用,存儲器芯片的擴展例題解釋
  • 游戲道具設計,游戲任務系統
  • 任務和計劃的區別,計劃任務使用介紹
  • spss繪制對比條形圖,超火動態可視化條形圖,繪制起來這么簡單!
  • echarts 環形圖,GPT生成精美Echarts圖表
  • c語言中short型的取值范圍,為什么c語言中short的表示范圍是-32768~32767
  • 在c語言類型說明中,c語言中int的表示范圍是-32768~32767!
  • 創建的視圖在數據庫三層結構中屬于,Sql Server數據庫中創建視圖
  • Android不支持藍牙功能,Android打開藍牙的兩種方法
  • 微信添加方式怎么關閉,Android Bluetooth打開和關閉的三種方式(很詳細)
  • 涉密信息系統集成資質年審,涉密信息系統集成甲級資質認證通過條件
  • 后朋克音樂特點,什么是朋克