GNU Radio + NI USRP B210模拟物理层(一):安装UHD与GNU Radio

2023-11-10

GNU Radio + NI USRP B210模拟物理层(一):GNU Radio的环境搭建

一 环境搭建

1 硬件环境与版本选择

我有两台设备:

  • 一台是实验室的机器,搭载的是intel core i9-9900k,核显,装了Ubuntu18.04

  • 一台是R7000,搭载的是4800H,1650Ti,装了Ubuntu20.04.3

总的来说,GNU Radio在Ubuntu20.04上的支持好很多,我会找时间把实验室的系统重新装掉

但这里也会把一些遇到的问题记录下来

2 UHD安装

UHD本质就是USRP的FPGA的固件,相当于驱动,有了他GNU Radio才能驱动USRP。

  1. 第一步,更新一下源
sudo apt-get update

sudo apt-get upgrade
  1. 依赖

这里仅列出Ubuntu18.04

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.14-0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwtplot3d-qt5-dev pyqt4-dev-tools python-qwt5-qt4 cmake git wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools
  1. 下载和源码编译
cd $HOME
mkdir workarea-uhd
cd workarea-uhd
git clone https://github.com/EttusResearch/uhd
cd uhd
git checkout release v 
#按Tab键,显示出已有的release版本, 这里主要3.11之后是v开头,3.11之前则是release__003__xxx的格式,注意区分
git checkout v3.14.1.1 
# 选择版本,Ubuntu20可以无脑最新,18则只能3.11或者更老

#以下代码一步一步执行
cd host

mkdir build

cd build

cmake ../

make

make test

sudo make install

sudo ldconfig
  1. 下载和安装
sudo uhd_images_downloader
uhd_find_devices
# 如果找到了设备就是成功安装了

3 GNU Radio 安装

二进制文件安装

网上有很多源码编译的,目前大可不必,GNU Radio的官方文档也建议二进制文件安装

这里时常会发生变化我就不班门弄斧了

https://wiki.gnuradio.org/index.php/InstallingGR

基本上就是一句话

sudp apt install gnuradio

就完事了,但是Ubuntu20.04源中自动下载的是3.9版本对新版本UHD支持比较好

而Ubuntu18.04中下载的是GNU Radio3.8,对UHD的支持就很烂了

除了版本老外,读取UHD的位置也不对

这里在CSDN上找到了解决办法

https://blog.csdn.net/qq_23958451/article/details/102959193

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

比较暴力的一个方法,不知道它是如何找到他到底读取的是哪里的,如果找到配置文件也可以修改配置文件来解决

源码安装(更推荐

因为只有源码编译安装才能修改模块,添加OOT模块,二进制文件是无法修改的。所以最终还是要回到源码安装上
大致上来说,按照gnu radio官方教程即可

https://wiki.gnuradio.org/index.php/InstallingGR#From_Source

注意volk一定要先安装!!,然后安装依赖,否则会报错

4 测试

网上如此多的安装教程,居然没有一个验证测试成功的方法

因为GNU Radio是可以在纯软件环境下运行的,并不一定需要USRP,所以装好后正常能打开并不代表成功,而需要和USRP搭配使用才表明成功

为了这个验证才有了后面FM reciver的搭建,不过事实上不用这么麻烦

只需要一行代码就可以了

uhd_fft -f $freq

这里的freq我选取的是2.45G

如果你看到了频谱图,那么恭喜你成功了!

1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GNU Radio + NI USRP B210模拟物理层(一):安装UHD与GNU Radio 的相关文章

  • 中国猎头公司排名 (前十)

    4月3日 平时能够收到不少猎头公司排名评选的邀请 但自己一直怀疑这类排名评选的可行性和公信力 人为因素在这样的评选中占了太大的成分 因为喜欢搜索这个职业 所以我一直是一个谷歌Google的粉丝 Google的成功和深入人心和它坚持自己的 搜
  • hue+oozie并发集群阻塞的调优经历

    hue oozie并发集群阻塞的调优经历 问题描述 使用hue oozie进行数据仓库开发 部署了大量workflow和并发任务 定时晚上集中时间执行时出现任务卡死状态 全部是oozie launcher的job任务 方案一 调大集群资源
  • keras ANN 分类实战

    import pandas as pd import numpy as np from sklearn model selection import train test split from keras utils import np u
  • Javascript: hash tables in javascript

    Copyright 2010 Tim Down Licensed under the Apache License Version 2 0 the License you may not use this file except in co
  • 软件授权注册码_授权码授予

    OAuth是一种开放的授权标准 可让客户端代表资源所有者访问受保护的服务器资源 资源所有者可以是其他客户端或最终用户 OAuth还可以帮助最终用户授权第三方访问其服务器资源 而无需共享其凭据 例如用户名和密码 本系列文章遵循RFC6749中
  • mysql开启事件调度失败_MySQL事件调度器无效的问题原因以及解决方法

    最近写了个定时事件 发现无法执行 先在my ini中加了配置event scheduler ON 重启MySQL无效 在navicat中直接执行 SET GLOBAL EVENT SCHEDULER ON 会报错 错误信息是 Error C
  • https://app.hackthebox.com/machines/Soccer

    https app hackthebox com machines Soccer kwkl kwkl cat etc hosts 1 127 0 0 1 localhost 127 0 1 1 kwkl kwkl kwkl The foll

随机推荐

  • 基本术语(告诉你西瓜书为什么叫西瓜书)

    为什么这本 机器学习 封面会有很多西瓜 为什么要叫他西瓜书 就因为封面是西瓜 因为所有的这些个基本术语的理解和后续一些问题的解释以及比喻 周大大都是用西瓜来做比喻滴 通俗易懂 恰到好处 注意 下面只做我归纳的简单介绍 如有不全 可以去百度一
  • 算法设计与分析—贪心法求解背包问题C++(学习笔记)

    用贪心法求解如下背包问题的最优解 有7个物品 重量分别为 2 3 5 7 1 4 1 价值分别为 10 5 15 7 6 18 3 背包容量W 15 写出求解过程 include
  • 关于自研maven依赖在idea中导入失败

    Could not find artifact cn bugstack middleware db router spring boot starter jar 1 0 1 SNAPSHOT 解决方法 先下载 GitHub Adzc zh
  • js中import报错Uncaught SyntaxError: Unexpected identifier

    不管导入什么都说 意外的标识符 网上有解释说仔细看标点的就是说你不细心 这确实是方法 不过import那个错基本上并不是 先说解决方法 你需要babel编译一下 webpack打包然后就没有这个错了 然而我今天一不小心做了死 一直在报那个错
  • Java原生代码连接MySQL数据库

    本章我们介绍 如何用java原生代码实现连接MySQL数据库并实现基本的增 删 改 查操作 为了便于演示 首先我们使用Navicat Premium新建一个user表并添加如下数据 我们需要导入连接MySQL所需要的jar包 jdbc驱动包
  • 反射型XSS、存储型XSS和DOM型XSS的简介及XSS常见payload构造及变形

    渗透学习 XSS跨站脚本之XSS基础 文章目录 渗透学习 前言 本文只做学习用途 严禁利用本文提到的技术进行非法攻击 否则后果自负 本人不承担任何责任 一 XSS漏洞原理 二 XSS分类 1 反射型XSS 2 存储型XSS 3 DOM型XS
  • PPT制作 ---------插入图片背景颜色与模板的背景颜色不一致

    今天在制作ppt时候 遇到插入图片背景颜色与模板的背景颜色不一致 这样做出来效果不好 在网上查了攻略后 可以利用ppt自带的图片删除背景来调节 一顿操作后 记下来说不定以后工作时候需要使用
  • Unity人形动画反向动力学IK动画实现

    什么是反向动力学 以手掌移动为例子 正向动力学 这个 力 是由你的身体躯干发出的 改变你的手臂位置 带动你的手掌位置移动 反向动力学 这个 力 是直接在你的手掌上 直接改变你手掌的位置 并且通过手臂进而带动整个身体 力 传递的方向是相反的所
  • Java反射使用示例

    当我们使用 Java 反射时 有时需要在运行时动态地调用某个类的方法 例如使用配置文件指定要调用的方法 或者根据用户输入来决定调用哪个方法等 下面我们就来看几个动态调用方法的例子 调用无参方法 假设有一个类名为 MyClass 它有一个无参
  • 华为OD机试真题-缓存需要最少金币数【2023.Q1】

    题目描述 静态扫描可以快速识别源代码的缺陷 静态扫描的结果以扫描报告作为输出 1 文件扫描的成本和文件大小相关 如果文件大小为N 则扫描成本为N个金币 2 扫描报告的缓存成本和文件大小无关 每缓存一个报告需要M个金币 3 扫描报告缓存后 后
  • 第三节课总结之关于this指向,变量提升以及跨域的解决方案

    this 变量提升 关于继承 跨域解决方法 gt gt this指向 Js是静态作用域 是在定义阶段就决定好了的 而不是在执行阶段才决定的 参考资料 https developer mozilla org en US docs Web Ja
  • Effective C++ 学习笔记 《六》

    Item 6 Explicitly disallow the use of compiler generated functions you do not want 其实这一节的内容是和item5紧密相连的 上一节的核心围绕着编译器会自动生
  • 一个缩进符引发的错误:NotImplementedError

    class EnDecoder nn Module def init self super EnDecoder self init 定义Encoder self Encoder nn Sequential nn Linear 784 512
  • 时钟分频的几个细节理解

    时钟分频原理简单 但需要注意几个细节 计数器分频 是基于源时钟div2 4 8 16 32 64 如果基于分频器串联 那么需要定义很多分频时钟 提升sdc时钟定义的复杂性 计数器分频 要注意所有div2 4 8 16 32 64 需要保证同
  • 申请Mob的SMSSDK的短信验证功能及获取包名和MD5签名

    当下很多App的登录方式多样化 但最常用的要数手机验证码登录了 所以如何实现这个功能便成了众多Android开发者关注的问题 所以我推荐一个网站 http www mob com 以便大家借助它的SMSSDK来完成短信验证码的功能 点击创建
  • 华为交换机 配置Console接口登陆认证

    拓扑图 1 认证方式一 密码 不安全 输入密码
  • pycharm里面离线安装dgl

    这两天安装dgl是真的头大 简直各种奇葩问题都能遇到 整整一天全在搞这些事 踩了各种坑之后 终于成功了 简直留下了感动的泪水 各种方法都没成功 最后是采用了离线安装的方法才成功的 step01 百度 dgl离线安装包 然后选择适合自己电脑的
  • Docker专题-入门与运维

    文章目录 Docker专题 基础知识 1 发展缘由 Docker 为什么要使用Docker 2 架构 3 基于Docker搭建私有镜像仓库 4 常见工具 5 常见命令 6附录 Docker专题 基础知识 1 发展缘由 1960年IBM开始推
  • 让vue项目支持glsl语法

    如果你想让Vue项目支持GLSL OpenGL着色语言 语法 你需要使用特殊的加载器使Webpack能够加载和解析GLSL文件 这一般可以通过下面的步骤实现 Install webpack glsl loader npm install w
  • GNU Radio + NI USRP B210模拟物理层(一):安装UHD与GNU Radio

    GNU Radio NI USRP B210模拟物理层 一 安装UHD与GNU Radio GNU Radio NI USRP B210模拟物理层 一 GNU Radio的环境搭建 一 环境搭建 1 硬件环境与版本选择 2 UHD安装 3