前言

rsrRAN是支持"UHD", "bladeRF", "soapy", "zmq" ,"Sidekiq"的,如果使用的USRP设备,则会用UHD,HackRF的话,则需要先安装soapy,之后srsRAN才能够调用。因此本博客主要分为了四个内容1.安装SoapySDR;2.安装Soapy HackRF;3. 安装srsRAN;4.测试示例。

1 安装SoapySDR

可以参考其官方的wiki:https://github.com/pothosware/SoapySDR/wiki/BuildGuide#ubuntu,安装步骤如下:

1、获取依赖项

sudo apt-get install cmake g++ libpython3-dev python3-numpy swig

2、获取源码

git clone https://github.com/pothosware/SoapySDR.git

3、编译并安装

mkdir build
cd build
cmake ..
make -j4
sudo make install

4、查看SoapySDRUtil信息

cd apps
./SoapySDRUtil --info######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################Lib Version: v0.8.1-g9cbaa3cf
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr/local
Search path:  /usr/local/lib/SoapySDR/modules0.8 (missing)
No modules found!
Available factories... No factories found!
Available converters...-  CF32 -> [CF32, CS16, CS8, CU16, CU8]-  CS16 -> [CF32, CS16, CS8, CU16, CU8]-  CS32 -> [CS32]-   CS8 -> [CF32, CS16, CS8, CU16, CU8]-  CU16 -> [CF32, CS16, CS8]-   CU8 -> [CF32, CS16, CS8]-   F32 -> [F32, S16, S8, U16, U8]-   S16 -> [F32, S16, S8, U16, U8]-   S32 -> [S32]-    S8 -> [F32, S16, S8, U16, U8]-   U16 -> [F32, S16, S8]-    U8 -> [F32, S16, S8]

2 安装Soapy HackRF

安装Soapy HackRF,并查看HackRF信息。

1、获取源码

git clone https://github.com/pothosware/SoapySDR.git

2、编译安装

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

3、构建完成后,回到~/SoapySDR/build/apps目录下,查看硬件信息,看是否能找到HackRF。

./SoapySDRUtil --probe="driver=hackrf"######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################Probe device driver=hackrf
[INFO] Opening HackRF One #0 681861dc33747a57...----------------------------------------------------
-- Device identification
----------------------------------------------------driver=HackRFhardware=HackRF Oneclock source=externalpart id=a000cb3c006f4755serial=0000000000000000681861dc33747a57version=local-79baef7----------------------------------------------------
-- Peripheral summary
----------------------------------------------------Channels: 1 Rx, 1 TxTimestamps: NOOther Settings:* Antenna Bias - Antenna port power control.[key=bias_tx, default=false, type=bool]----------------------------------------------------
-- RX Channel 0
----------------------------------------------------Full-duplex: NOSupports AGC: NOStream formats: CS8, CS16, CF32, CF64Native format: CS8 [full-scale=128]Stream args:* Buffer Count - Number of buffers per read.[key=buffers, units=buffers, default=15, type=int]Antennas: TX/RXFull gain range: [0, 116] dBLNA gain range: [0, 40, 8] dBAMP gain range: [0, 14, 14] dBVGA gain range: [0, 62, 2] dBFull freq range: [0, 7250] MHzRF freq range: [0, 7250] MHzSample rates: 1, 2, 3, 4, 5, ..., 16, 17, 18, 19, 20 MSpsFilter bandwidths: 1.75, 2.5, 3.5, 5, 5.5, ..., 14, 15, 20, 24, 28 MHz----------------------------------------------------
-- TX Channel 0
----------------------------------------------------Full-duplex: NOSupports AGC: NOStream formats: CS8, CS16, CF32, CF64Native format: CS8 [full-scale=128]Stream args:* Buffer Count - Number of buffers per read.[key=buffers, units=buffers, default=15, type=int]Antennas: TX/RXFull gain range: [0, 61] dBVGA gain range: [0, 47, 1] dBAMP gain range: [0, 14, 14] dBFull freq range: [0, 7250] MHzRF freq range: [0, 7250] MHzSample rates: 1, 2, 3, 4, 5, ..., 16, 17, 18, 19, 20 MSpsFilter bandwidths: 1.75, 2.5, 3.5, 5, 5.5, ..., 14, 15, 20, 24, 28 MHz

3 安装srsRAN

如果要使用HackRF One的话,必须要安装完前两步,如果不幸先编译安装了srsRAN,会提示找不到设备,就算调成了soapy。需要重新编译安装。而如果你想要使用srsGUI看到图像化界面的话,也需要先安装srsGUI,再安装srsRAN,具体方法如下。

3.1 安装srsGUI

如果不先安装srsGUI,直接安装srsRAN,是无法显示界面的,必须先安装srsGUI,在安装srsRAN才能正确显示界面。

1、安装依赖项

sudo apt-get install libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-qt5-dev qtbase5-dev

2、获取源码

git clone https://github.com/srsLTE/srsGUI.git

3、编译安装

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

3.2 安装srsRAN

1、安装依赖项

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

2、获取源码

git clone https://github.com/srsran/srsRAN.git

3、编译安装

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

4、若报错出现无mbedtls包,No package 'mbedtls' found,则安装即可

mbedtls安装与入门【转】 - sky-heaven - 博客园

 git clone https://github.com/ARMmbed/mbedtls.git
# 更新软件源
sudo apt-get update
# 通过软件源安装cmake
sudo apt-get install cmake
# 生成makefile文件,启用生成动态链接库选项
cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On
# 以下步骤和make方式相同
make SHARED=1
sudo make install

5、若报错ModuleNotFoundError: No module named 'jinja2',则安装python-jinja2:

pip3 install jinja2

不再出现错误,成功安装就可以开始使用了。

4 测试用例

对srsRAN进行简单的测试,具体使用文档大家可以看官方提供的PDF文档。https://docs.srsran.com/_/downloads/en/next/pdf/

4.1 srsEPC,srsENB,srsUE

完全安装好了srsRAN,我们先测试一下使用srsepc,srsenb,srsue看能不能实现,其中srsepc和srsenb可以运行在一台电脑和RF设备上,srsue需要运行在另一台电脑并使用另一个RF设备。因为我只有一个HackRF One,所以仅进行了运行测试,发现没问题。

(1)调用srsepc

cd srsepc/
sudo srsepc epc.conf.example
Built in Release mode using 21.10.0.---  Software Radio Systems EPC  ---Reading configuration file epc.conf.example...
Couldn't open user_db.csv, trying /root/.config/srsran/user_db.csv
HSS Initialized.
MME S11 Initialized
MME GTP-C Initialized
MME Initialized. MCC: 0xf001, MNC: 0xff01
SPGW GTP-U Initialized.
SPGW S11 Initialized.
SP-GW Initialized.

在打开另一个命令行,运行srsenb之后,该命令行会出现新的信息。

Received S1 Setup Request.
S1 Setup Request - eNB Name: srsenb01, eNB id: 0x19b
S1 Setup Request - MCC:001, MNC:01
S1 Setup Request - TAC 7, B-PLMN 0xf110
S1 Setup Request - Paging DRX v128
Sending S1 Setup Response

(2)调用srsenb

cd srsenb/
sudo srsenb enb.conf.example
---  Software Radio Systems LTE eNodeB  ---Reading configuration file enb.conf.example...
Couldn't open sib.conf, trying /root/.config/srsran/sib.conf
Couldn't open rr.conf, trying /root/.config/srsran/rr.conf
Couldn't open rb.conf, trying /root/.config/srsran/rb.conf
WARNING: cpu0 scaling governor is not set to performance mode. Realtime processing could be compromised. Consider setting it to performance mode before running the application.Built in Release mode using 21.10.0.Opening 1 channels in RF device=soapy with args=default
Available RF device list: soapy
Soapy has found device #0: device=HackRF One, driver=hackrf, label=HackRF One #0 681861dc33747a57, part_id=a000cb3c006f4755, serial=0000000000000000681861dc33747a57, version=local-79baef7,
Selecting Soapy device: 0
[INFO] Opening HackRF One #0 681861dc33747a57...
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
Available device sensors:
Available sensors for Rx channel 0:
State of gain elements for Rx channel 0 (AGC not supported):- LNA: 16.00 dB- AMP: 0.00 dB- VGA: 16.00 dB
State of gain elements for Tx channel 0 (AGC not supported):- VGA: 0.00 dB- AMP: 0.00 dB
Rx antenna set to TX/RX
Tx antenna set to TX/RX==== eNodeB started ===
Type <t> to view trace
Setting frequency: DL=2680.0 Mhz, UL=2560.0 MHz for cc_idx=0 nof_prb=50

(3)调用srsue

cd srsue/
sudo srsue ue.conf.example
Reading configuration file ue.conf.example...
WARNING: cpu0 scaling governor is not set to performance mode. Realtime processing could be compromised. Consider setting it to performance mode before running the application.Built in Release mode using 21.10.0.Opening 1 channels in RF device=default with args=default
Available RF device list: soapy
Trying to open RF device 'soapy'
Soapy has found device #0: device=HackRF One, driver=hackrf, label=HackRF One #0 681861dc33747a57, part_id=a000cb3c006f4755, serial=0000000000000000681861dc33747a57, version=local-79baef7,
Selecting Soapy device: 0
[INFO] Opening HackRF One #0 681861dc33747a57...
Setting up Rx stream with 1 channel(s)
Setting up Tx stream with 1 channel(s)
Available device sensors:
Available sensors for Rx channel 0:
State of gain elements for Rx channel 0 (AGC not supported):- LNA: 16.00 dB- AMP: 0.00 dB- VGA: 16.00 dB
State of gain elements for Tx channel 0 (AGC not supported):- VGA: 0.00 dB- AMP: 0.00 dB
Rx antenna set to TX/RX
Tx antenna set to TX/RX
RF device 'soapy' successfully opened
Waiting PHY to initialize ... done!
Attaching UE...

4.2 NB-IoT测试

我们使用./srsRAN/build/lib/examples提供的示例来基站扫描和解码。

1、扫描,国内的NB-IoT主要运行在B5和B8频段,所以我们扫描b 8或b 5,当然我们也可以使用自己的手机调到3G/2G网络,来看基站频率。

sudo ./cell_search_nbiot -b 8
Found XX cells
Found CELL XXX MHz, EARFCN=XXX, PHYID=XXX, NPSS power=17.1 dBm
Found CELL XXX MHz, EARFCN=XXX, PHYID=XXX, NPSS power=-11.5 dBm
Found CELL XXX MHz, EARFCN=XXX, PHYID=XXX, NPSS power=-11.5 dBm
Bye

2、选取一个小区,进行解码,如果信号较弱,可以添加-g 40 参数来提高增益。

sudo ./npdsch_ue -f 949.2e6

4.3 LTE测试

LTE和NB-IoT类似,在example文件中,存在cell_search和pdsch_ue,使用方法也是类似的,这里不再赘述。示例如图。 LTE运行在B3,B40,B41频段等,可以自行查新

sudo ./cell_search -b 40
sudo ./npdsch_ue -f 1835.6e6 -g 40

https://github.com/pothosware/SoapySDR/wiki/BuildGuide#ubuntu

走进“开源SDR实验室” 一起玩转4G/5G开源项目srsRAN(srsLTE升级版):安装方法+NB-IoT测试_开源SDR实验室的博客-CSDN博客_开源sdr实验室

srsRAN搭建流程_牛奶可乐配不配的博客-CSDN博客

5G NR/LTE ARFCN-Frequency Caculator (3GPP Specs) – iTecTec   ARFCN计算Freq

HackRF One—安装srsRAN并测试相关推荐

  1. Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版

    Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版 一.资源 Linux下的Redis的下载地址 二.安装与测试 上传至自己的Linux平台 解压安装包 tar ...

  2. Redis第一集:Windows下安装Redis和测试

    Redis第一集:Windows下安装Redis和测试 一.资源 Windows下的Redis的下载地址 点击这里即可下载,如果进不去GitHub的话,可以上网搜一下怎么进GitHub,搭个梯子(●ˇ ...

  3. NOSQL系列-Redis精简版安装与Ruby测试

    简介:Redis是一个NOSQL数据库,它是一款key-values存储型数据库,也叫"memcached改进版",它不同与memcached最大特点是它由内存+硬盘来存储数据的, ...

  4. 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 安装配置及测试

    Ubuntu14.04 Opencv3.3.0 安装配置及测试 网上有许多的Opencv的安装方法,不过找到一个适合自己的安装路数才最为重要,笔者整理了一下自己的安装配置测试过程,仅供学习参考. ## ...

  5. ActiveMQ (一):安装启动及测试

    1. 预备知识 1.1 JMS JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范.<百科> 1.2 JMX JMX(Java M ...

  6. 【RobotStudio学习笔记】(一)软件的安装与初步测试

    RobotStudio 6.03.02 的安装 链接:https://pan.baidu.com/s/1NyDTu_OCcPJLbfaQLtCHCw 提取码:robo 1. 安装注意事项 (1)PC用 ...

  7. tomcat9安装及其简单测试

    tomcat 9安装及其简单测试 1.安装 安装yum install -y wget 在官网下载tomcat 和jdk wget 下载地址(进行下载) 将下载的压缩包放到/usr/local mv ...

  8. 安装部署(七) HBase集群安装部署与测试

    HBase集群安装部署与测试 Hadoop 2.7.2  Spark 2.0.0 Kafka 0.10.0.0 HBase 1.2.2 Zookeeper 3.4.8 参考: http://www.t ...

  9. 【树莓派4B深度学习 垃圾分类】Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类【深度学习 招式篇】

    [树莓派4B深度学习 垃圾分类]Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类[深度学习 招式篇] 后记 1.激活虚拟环境+进入代码+更改测试集路径(这里是安装成功后测试的代码 ...

最新文章

  1. 发布一个用于WinCE的矢量图控件
  2. idea无法创建javaclass文件
  3. 各大航空公司将加大海南春运期间运力投入
  4. FlexViewer2.3中拉帘Widget下载
  5. qunit 前端脚本测试用例
  6. 100套精美英文HTML页面源码
  7. CSU1020: 真三国无双
  8. java敏感词汇过滤工具类
  9. 计算机教室布线施工方案,最新计算机教室施工方案.docx
  10. PhysX For Autodesk 3dMax 2016 64下载
  11. 结合P2P软件使用Ansible分发大文件
  12. b站python弹幕签到_B站弹幕实时效果python
  13. 采用FFmpeg从视频中提取音频(声音)保存为mp3文件
  14. java.time.ZoneId类详解
  15. 那些年我们用过的机械键盘#keychron#
  16. Marathon+Mesos+Docker实战
  17. LevelDB Arena源码分析
  18. Android九宫格解锁的实现
  19. 【面经】百度NLP算法实习生--9.17
  20. OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference 错误

热门文章

  1. 金融行业需要什么样的低代码平台?
  2. windows labelimg 打开闪退
  3. 汽车不是手机,苹果汽车的代工之路难走
  4. google chrome突然不能访问IPv6地址的解决办法
  5. 什么是CCC产品认证?3C认证标志的种类
  6. 德州首个县域大数据中心建成
  7. 茶叶软文新闻推广,给茶企带来营销新思路
  8. 计算机专业讲座题目有哪些,计算机知识讲座策划书
  9. Palm 680磨合使用
  10. yzh第十二课 工具和基础设施