srsLTE+USRP B210在Ubuntu18.04虚拟机上的安装

(转载自作者的b站专栏文章srsLTE+USRP B210软件无线电系统在Ubuntu18.04虚拟机上的安装
实验室最近买了几套USRP设备,想做一些B5G/6G通信系统的SDR原型实现。目前常用的SDR软件有OAI和srsLTE(好像改名叫srsRAN了)两种,其中OAI功能更强大,不过安装较为复杂,而srsLTE安装运行相对简单一些。作者暂时不想装双系统,就在vmware虚拟机里的ubuntu18.04上进行安装,srsLTE在虚拟机里运行是可以的。但在安装并配置srsLTE+USRP的整个系统时,还是遇到了很多问题,作者和师兄两个人搞了一整天才彻底安装成功。以下是作者博采众长整理出来的安装指南,亲测实现0 error安装。


一、虚拟机设置以及安装low-latency内核

给虚拟机分配尽可能多的cpu及内存。在USB控制器选项中,将USB兼容性设置为USB 3.1。

USRP B210需要用USB线连接到电脑的USB 3.0/3.1接口上,实现供电以及高速数据传输。
关闭虚拟机,进行如上设置
启动虚拟机,查看当前内核:
ubuntu默认为通用内核安装lowlatency内核:

sudo apt-get install linux-lowlatency
sudo apt-get install linux-image-`uname -r | cut -d- -f1-2`-lowlatency
sudo apt-get install linux-headers-`uname -r | cut -d- -f1-2`-lowlatency
sudo reboot  # 重启以加载新内核

ubuntu系统重启,查看是否成功更换内核:
已成功更换为lowlatency内核


二、更新源列表、安装各种工具及依赖库

更新源列表与已安装软件、安装常用工具:

sudo apt update
sudo apt upgrade
sudo apt install net-tools vim ssh git git-gui htop

安装后来cmake时需要用到的一些依赖库:

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

安装GNU Radio 3.7.x需要的依赖库:

sudo apt install cmake git g++ libboost-all-dev python-dev python-mako \
python-numpy python-wxgtk3.0 python-sphinx python-cheetah swig libzmq3-dev \
libfftw3-dev libgsl-dev libcppunit-dev doxygen libcomedi-dev libqt4-opengl-dev \
python-qt4 libqwt-dev libsdl1.2-dev libusb-1.0-0-dev python-gtk2 python-lxml \
pkg-config python-sip-dev

安装GNU Radio 3.8.x需要的依赖库:

sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \
python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev libcomedi-dev \
libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \
liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins \
python3-zmq

安装其他一些依赖库:

sudo apt install python-setuptools python3-dev python3-setuptools python3-numpy python3-mako dpdk dpdk-dev

安装一个和DMA相关的库(很迷,运行完指令后报很多异常,不知道到底安好没):

注意,若终端中无法使用git clone命令克隆源代码,可直接在浏览器中打开网址,下载代码的压缩包,然后解压到ubuntu中合适的位置(记得重命名,或者后面cd到正确的目录下)。

作者把安装过程中所有需要从github上下载的文件放在百度网盘了,文末自取。

git clone https://github.com/EttusResearch/liberio.git
sudo apt install autoconf libudev-dev
cd liberio/
autoreconf -i
./configure
make
sudo make install

三、UHD编译安装

如果把USRP设备比作显卡,那UHD就是显卡驱动,srsLTE则是3A游戏。正确安装UHD后,srsLTE程序才能调用USRP设备实现信号的处理与收发等。

下载uhd驱动程序和uhd镜像文件:

wget https://github.com/EttusResearch/uhd/archive/v3.15.0.0.tar.gz
wget https://github.com/EttusResearch/uhd/releases/download/v3.15.0.0/uhd-images_3.15.0.0.zip

安装uhd驱动:

cd uhd-3.15.0.0/host
mkdir build
cd build
cmake ../
make –j4
sudo make install
sudo ldconfig

cmake …/成功之后应显示如下:
cmake ../成功
make -j4成功之后应显示如下:
make编译成功
sudo make install和sudo ldconfig运行后未显示任何报错即为成功:
无报错即为成功
将uhd镜像 uhd-images_3.15.0.0 文件夹复制到正确的位置:

cd
sudo mkdir -p /usr/local/share/uhd/images
sudo cp -r uhd-images_3.15.0.0/* /usr/local/share/uhd/images/

使用uhd指令查找设备:

sudo uhd_find_devices

若uhd成功识别到usrp设备,显示如下:
成功读取到连接的USRP设备信息
使用uhd指令检测uhd版本与ursp设备固件版本是否兼容:

sudo uhd_usrp_probe

若两者版本兼容,则会打印出usrp设备的详细信息,此时可直接跳转到本节最后一步:
若uhd和usrp固件兼容,则打印出详细的设备信息
若显示信息类似于下图,则说明版本不兼容,需要给ursp设备烧录正确的固件:
报错如上则为不兼容
使用指令自动下载和uhd版本对应的镜像,并烧录到usrp设备中。serial参数和type参数由之前的 sudo uhd_find_devices 指令获得:

sudo uhd_images_downloader
sudo uhd_image_loader --args=serial=31C9235,type=b200

烧录正确的固件后再使用 sudo uhd_usrp_probe 指令,即可正确输出设备信息:
烧写正确的镜像文件,重新验证兼容性
正确安装uhd、检测到usrp设备并验证兼容性之后,此时只有root用户才能调用usrp设备。为解除普通用户的权限限制:

cd /usr/local/lib/uhd/utils
sudo cp uhd-usrp.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

这样普通用户也可以调用usrp设备了。


四、srsGUI编译安装

安装srsGUI,即srsLTE运行时的图形化显示:

git clone https://github.com/srsLTE/srsGUI.git
cd srsgui
mkdir build
cd build
cmake ../
sudo make
sudo make install
sudo ldconfig

如果之前正确安装了文章开头的所有依赖库,cmake …/ 指令能迅速成功跑通:
成功跑通cmake
后面三条指令运行成功效果:
完成srsGUI的安装


五、srsLTE编译安装与配置

目前最新版本为21.04。make编译过程比较长,可尝试使用 make -j4 进行多核编译。

git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

若文章开头的依赖库都正确安装,则srsLTE21.04就能成功安装:
完成srsLTE的安装
进入srsLTE的安装目录,srsenb、srsepc、srsue这三个文件夹中有很多 .example 结尾的文件,为srsLTE默认的配置文件。
进入这三个文件夹
我们将三个文件夹里所有的.example配置文件都复制一份,重命名去掉 .example ,例如下图中的 enb.conf 文件。

后续我们要对srsLTE进行开发,就修改并使用复制出来的配置文件。原 .example 后缀的配置文件保持不变,作为参考。
将全部配置文件都复制一份并重命名
将 ue.conf 和 enb.conf 中的[gui]节由false改为true,即可开启srsLTE的UI显示。
使能UI图形界面


六、srsLTE试运行

首先运行srsEPC,使用epc.conf这个配置文件:

cd
cd srsLTE/srsepc
sudo srsepc epc.conf

epc成功运行:
srsEPC成功运行
另开一个终端,运行srsENB,使用enb.conf配置文件:

cd srsLTE/srsenb
sudo srsenb enb.conf

enb成功运行,并显示图形界面:
srsENB成功运行,并显示UI界面
epc终端里显示有enb连接:
enb连接到epc
srsUE的运行同上,up在此就不赘述了。


七、总结

目前作者完成了uhd和srsLTE程序的安装与试运行,只算是为SDR软件无线电的研究打下了一个基础。后面的UE与ENB之间连接以及收发数据,以及使用srsLTE+B210搭建4G微基站等,都会是很有趣的工作。

附安装过程中需要从github下载的各个文件:

链接:https://pan.baidu.com/s/1hDmxtiEgn8OTDyxM9qYKzA

提取码:ea9g

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
连接USRP B210Ubuntu系统,需要进行以下步骤: 1. 首先,确保你的Ubuntu系统已经安装了所需的软件。这包括Ubuntu 18.04虚拟机和GNU Radio v3.8。 2. 接下来,需要安装USRP硬件驱动程序(UHD)。你可以通过以下命令在终端中安装UHD驱动程序: ``` sudo apt-get install libuhd-dev ``` 3. 安装完UHD驱动程序后,需要将USRP B210连接Ubuntu系统。将USRP B210的USB线缆插入计算机的USB接口。 4. 确定USRP B210的序列号,你可以在USRP B210的背面找到序列号,或者使用uhd_find_devices命令来查找。 引用:其中XXX需要替换成你B210的序列号。 5. 确保你有root权限,然后使用以下命令加载USRP B210的固件和映像: ``` sudo uhd_image_loader --args="addr=192.168.10.2" --fw-path=/path/to/firmware.bin --fpga-path=/path/to/image.bin ``` 在上面的命令中,将"addr=192.168.10.2"替换为USRP B210的IP地址,将"/path/to/firmware.bin"替换为固件文件的路径,将"/path/to/image.bin"替换为映像文件的路径。 6. 稍等片刻,系统会加载USRP B210的固件和映像。此时,你就可以在Ubuntu系统中开始使用USRP B210了。 请注意,以上步骤仅适用于在Ubuntu系统中连接和配置USRP B210。具体的操作可能会因系统和环境的不同而有所差异,请根据实际情况进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [USRP B210 Ubuntu基本测试](https://blog.csdn.net/OpenSourceSDR/article/details/109188353)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值