Ubuntu 18.04 下 uhd+gnuradio 安装指南,国产B210

news2024/9/27 7:25:32

安装ubutnu18.04,换源,apt-get update

一、虚拟机设置以及安装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

安装其他一些依赖库:

sudo apt install python-setuptools python3-dev python3-setuptools python3-numpy python3-mako dpdk dpdk-dev
安装一个和DMA相关的库

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

up把安装过程中所有需要从github上下载的文件放在csdn了,https://download.csdn.net/download/WASEFADG/88031436。

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镜像文件:(装3.11的后续麻烦少

wget https://github.com/EttusResearch/uhd/archive/v3.11.0.0.tar.gz
下载uhd-images_3.11.0.0.zip

资源下载链接:https://download.csdn.net/download/WASEFADG/88031443

https://download.csdn.net/download/WASEFADG/88031440
安装uhd驱动:

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

make -j4成功之后应显示如下:

 make编译成功
sudo make install和sudo ldconfig运行后未显示任何报错即为成功:

无报错即为成功
将uhd镜像 uhd-images_3.11.0 文件夹复制到正确的位置:
sudo mkdir -p /usr/local/share/uhd/images
sudo cp -r uhd-images_3.11.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=8001989,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设备了。

sudo gedit /etc/profile

打开后在文件最后面添加以下语句:

export UHD_IMAGES_DIR=/usr/local/share/uhd/images 

sudo cp -r /usr/local/share/uhd/images /usr/share/uhd

sudo uhd_images_downloader   

 

GNUradio是一个开源软件,完全免费,官网在https://www.gnuradio.org/,中文论坛在http://gnuradio.microembedded.com/,可以用于软件定义无线电的实验环境或者是纯软件的仿真。从形式上,它的使用方式很像Matlab中的Simulink,拖动模块连线,之后进行仿真,或者控制硬件的收发。GNUradio内部包含了诸多模块,可以对信号进行各种处理,不仅可以处理,还能生成各类信号,搭配USRP或者Hackrf或者是LimeSDR你可以做到各类无线信号的收发。

USRP是一个硬件,全称是Universal Software Radio Peripheral,我用一个比较简单的方式帮助你理解这个设备——你就把它当一个很不错的天线就可以了。它帮助你接收和发送各类信号,抽象出来就是一个又长又黑的天线。 参考: https://www.bilibili.com/read/cv6733375/ 

sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.7 
sudo apt-get update
sudo apt install gnuradio

使用 uhd_fft -a=serial=8001989,master_clock_rate=16e6 -f 440e6 -A TX/RX -g=45
进行测试

出现Expected FPGA compatibility number 14, but got 16:问题 (版本问题,建议换低版本的,比如UHD3.11

USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法,参考:USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法 - 哔哩哔哩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Melon库运用——栈篇

头文件片段 // mln_stack.htypedef struct mln_stack_node_s {void *data;struct mln_stack_node_s *prev;struct mln_stack_node_s *next; } mln_stack_node_t;typedef struct {mln_stack_node_t *bottom;mln_stack_node_t *top;mln_stac…

喜讯|电巢科技与陕西理工大学“新工科人才联合培养基地”签约暨揭牌仪式成功举行

7月6日上午,深圳市电巢科技有限公司联合陕西理工大学物理与电信工程学院在校内举行产学研座谈会,并完成了“新工科人才联合培养基地”的签约暨揭牌仪式。陕西理工大学物电学院党委书记韩强,院长卢超,副书记潘峰,副院长…

吸烟(抽烟)检测和识别2:Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码)

吸烟(抽烟)检测和识别2:Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码) 目录 吸烟(抽烟)检测和识别2:Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码) 1.吸烟(抽烟)检测和识别 2.吸烟(抽烟)数据集 (1&am…

msvcp120.dll丢失的解决方法?哪种方法更推荐

msvcp120.dll是一个Windows操作系统的动态链接库文件。它属于Microsoft Visual C Redistributable软件包的一部分。这个文件包含了一些用于C程序编译和运行的函数和类。当某个程序需要使用这些函数和类时,它会在系统中寻找msvcp120.dll文件。如果系统中缺少这个文件…

运行别人gitub上的vue代码

1.删除package-lock.json和node_modules文件 package-lock.json记录了整个node_moudles文件夹的树状结构,还记录了模块的下载地址,但是它是基于项目作者的npm版本库生成的,若不删掉这个依赖文件,容易出现npm版本差异导致的报错。…

性能测试测什么?如何做性能测试?超级详细总结

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试 负载&a…

深入理解Dockerfile:构建镜像的详细解释与常用命令

目录 1.Dockerfile 简介 2.Dockerfile 指令解析 2.1 FROM 2.2 RUN 2.3 COPY 2.4 ADD 2.5 CMD 2.6 ENTRYPOINT 2.7 ENV 2.8 ARG 2.9 EXPOSE 2.10 WORKDIR 2.11 VOLUME 2.12 USER 3.构建 Docker 镜像的常用命令 3.1 docker build 3.2 docker tag 3.3 docker pu…

银河麒麟V10使用编译安装PostSQL+PostGIS

一、安装环境 银河麒麟V10 1、PostGIS简介 PostGIS是对象关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能: 空间对象、空间索引、空间操作函数和空间操作符。同时,PostGIS遵循OpenGIS的规范。 二、使用make安装Post…

Day49

思维导图 练习 闹钟设计 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QPushButton> #include <QLabel> #include <QLineEdit> #include <QTextEdit> #include <QTimer> …

【C++】STL——stack和queue使用及模拟实现

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f8;C &#x1f6f9;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0…

ICG试剂大合集:ICG-COOH/NHS/NH2/Maleimide/alkyne/N3

荧光染料及其荧光标记技术一直是生物领域常用的产品和技术&#xff0c;标记荧光的波长从300nm到1000nm&#xff0c;除了常见的FITC、FAM等荧光标记染料外&#xff0c;还包括Cy3&#xff0c;Cy3.5&#xff0c;Cy5, Cy5.5&#xff0c;Cy7&#xff0c;Cy7.5&#xff0c;ICG各种衍生…

vue2登录存储案例:sessionStorage会话存储+localStorage本地存储

vue2可以通过sessionStorage来实现登录以后的数据存储&#xff0c;是H5提供的一个API&#xff0c;可以在浏览器会话期间保持数据 简单模拟一个登录后的存储功能 目录 一、sessionStorage存储 二、localStorage本地存储 一、sessionStorage存储 1、登录的HTML方法 HTML &l…

Java基础---注解

目录 典型回答 什么是元注解 如何判断注解 典型回答 Java 注解用于为 Java 代码提供元数据作为元数据&#xff0c;注解不直接影响你的代码执行&#xff0c;但也有一些类型的注解实际上可以用于这一目的Java注解是从 Java5 开始添加到 Java 的Java的注解&#xff0c;可以说是…

GitHub Pages + Hexo

步骤 参考如下步骤&#xff1a;https://blog.csdn.net/yaorongke/article/details/119089190 出现的问题 1 Fluid主题 其更换Fluid主题时&#xff1a; 下载最新 release 版本 解压到 themes 目录&#xff0c;并将解压出的文件夹重命名为 fluid 按照上面执行后&#xff0c;后…

Michael.W基于Foundry精读Openzeppelin第7期——Timers.sol

Michael.W基于Foundry精读Openzeppelin第7期——Timers.sol 0. 版本0.1 Timers.sol 1. 目标合约2. 代码精读2.1 区块链时间戳维度2.1.1 Timestamp结构体2.1.2 setDeadline(Timestamp storage, uint64) && getDeadline(Timestamp memory)2.1.3 reset(Timestamp storage)…

Linux:基于PXE的kickstart无人值守技术

*创建应答文件&#xff0c;预先定义好各种安装设置 *免去交互设置过程&#xff0c;从而实现全自动化安装 *通过添加%post脚本&#xff0c;完成安装后的各种配置操作 需要的环境为 pxe&#xff08;dhcp&#xff0c;tftp&#xff0c;yum&#xff09; Linux&#xff1a;PXE网络装…

深度学习——批数据训练

代码与详细注释&#xff1a; BATCH_SIZE 5&#xff0c;shuffleTrue import torch import torch.utils.data as Data# 添加随机种子以使结果可复现 torch.manual_seed(1) # reproducible# 批大小 BATCH_SIZE 5 # BATCH_SIZE 8x torch.linspace(1, 10, 10) # this…

VScode 终端无法识别npm以及Missing script: “serve“ 问题

无法识别npm解决办法&#xff1a; 原因是没有全局安装npm 1.通过终端查看已经全局安装的模块 npm list --depth0 -global 2.全局安装npm npm install -g npm Missing script: "serve" 问题&#xff1a; 原因是package.json中没有配置&#xff1a;"serve"…

JUC 并发编程

文章目录 JUC 并发编程一、Lock 锁1. 可重入锁2. 公平锁3. 读写锁3.1 ReadWriteLock 接口3.2 ReentrantReadWriteLock 类3.3 锁降级 4. 线程间通信4.1 虚假唤醒4.2 线程通信&#xff08;Condition&#xff09;4.3 定制化线程通信 二、集合线程安全1. CopyOrWrite2. ConcurrentH…

机试刷题记录 2023-7-6

AB问题 题目描述 Time Limit: 1000 ms Memory Limit: 256 mb 输入A,B 输出AB -1,000,000,000<A,B<1,000,000,000 输入输出格式 输入描述: 输入包含两个整数A,B&#xff0c;用一个空格分隔。 输出描述: 输出一个整数&#xff0c;表示AB的值。 输入输出样例 输入…