HackRF One—安装srsRAN并测试
前言
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并测试相关推荐
- Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版
Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版 一.资源 Linux下的Redis的下载地址 二.安装与测试 上传至自己的Linux平台 解压安装包 tar ...
- Redis第一集:Windows下安装Redis和测试
Redis第一集:Windows下安装Redis和测试 一.资源 Windows下的Redis的下载地址 点击这里即可下载,如果进不去GitHub的话,可以上网搜一下怎么进GitHub,搭个梯子(●ˇ ...
- NOSQL系列-Redis精简版安装与Ruby测试
简介:Redis是一个NOSQL数据库,它是一款key-values存储型数据库,也叫"memcached改进版",它不同与memcached最大特点是它由内存+硬盘来存储数据的, ...
- 【Ubuntu-Opencv】Ubuntu14.04 Opencv3.3.0 安装配置及测试
Ubuntu14.04 Opencv3.3.0 安装配置及测试 网上有许多的Opencv的安装方法,不过找到一个适合自己的安装路数才最为重要,笔者整理了一下自己的安装配置测试过程,仅供学习参考. ## ...
- ActiveMQ (一):安装启动及测试
1. 预备知识 1.1 JMS JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范.<百科> 1.2 JMX JMX(Java M ...
- 【RobotStudio学习笔记】(一)软件的安装与初步测试
RobotStudio 6.03.02 的安装 链接:https://pan.baidu.com/s/1NyDTu_OCcPJLbfaQLtCHCw 提取码:robo 1. 安装注意事项 (1)PC用 ...
- tomcat9安装及其简单测试
tomcat 9安装及其简单测试 1.安装 安装yum install -y wget 在官网下载tomcat 和jdk wget 下载地址(进行下载) 将下载的压缩包放到/usr/local mv ...
- 安装部署(七) 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 ...
- 【树莓派4B深度学习 垃圾分类】Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类【深度学习 招式篇】
[树莓派4B深度学习 垃圾分类]Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类[深度学习 招式篇] 后记 1.激活虚拟环境+进入代码+更改测试集路径(这里是安装成功后测试的代码 ...
最新文章
- 发布一个用于WinCE的矢量图控件
- idea无法创建javaclass文件
- 各大航空公司将加大海南春运期间运力投入
- FlexViewer2.3中拉帘Widget下载
- qunit 前端脚本测试用例
- 100套精美英文HTML页面源码
- CSU1020: 真三国无双
- java敏感词汇过滤工具类
- 计算机教室布线施工方案,最新计算机教室施工方案.docx
- PhysX For Autodesk 3dMax 2016 64下载
- 结合P2P软件使用Ansible分发大文件
- b站python弹幕签到_B站弹幕实时效果python
- 采用FFmpeg从视频中提取音频(声音)保存为mp3文件
- java.time.ZoneId类详解
- 那些年我们用过的机械键盘#keychron#
- Marathon+Mesos+Docker实战
- LevelDB Arena源码分析
- Android九宫格解锁的实现
- 【面经】百度NLP算法实习生--9.17
- OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference 错误