Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装

文章目录

  • 前言
  • 一、卸载本地 gnuradio
  • 二、安装 UHD 驱动
  • 三、编译及安装 gnuradio
  • 四、验证


前言

本地 Ubuntu 环境的 gnuradio 是按照官方指导使用 ppa 的方式安装 uhd 和 gnuradio 的,也是最方便的方法,但是存在着一个问题,就是我无法修改底层 C++ 实现代码并修改自己想要的功能,我现在的需求就是对部分 block 的底层代码进行修改,因此需要源码编译及安装,并在每次修改完相关文件后重新对源码进行编译再安装即可。


一、卸载本地 gnuradio

1、更新包列表

sudo apt-get update	

2、卸载GNU Radio

sudo apt-get remove gnuradio

3、删除所有相关的配置文件

sudo apt-get remove --purge gnuradio

4、清除不再需要的依赖项

sudo apt-get autoremove

二、安装 UHD 驱动

因为我目前不需要修改 UHD 的底层 C++ 代码,且 Ubuntu 中已有 UHD3.15 的驱动(之前按照官方指导使用 ppa 的方式安装的),因此这里就无需卸载和用源码编译安装了,因此跳过此步。

通过下面命令来检查 UHD 是否安装成功

1、列出计算机上可识别的 USRP 设备

uhd_find_devices

输出如下:
在这里插入图片描述
2、获取连接到计算机的 USRP 设备的更详细信息

uhd_usrp_probe

部分信息如下:
在这里插入图片描述

三、编译及安装 gnuradio

在终端依次输入下面命令:

cd $HOME
mkdir workarea
git clone --recursive https://github.com/gnuradio/gnuradio.git

cd gnuradio
git clone https://github.com/gnuradio/volk.git

git checkout maint-3.8
cd volk

git checkout v2.2.1
cd ..
mkdir build
cd build
 
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
 
make -j4 
make test
sudo make install
sudo ldconfig

#添加环境变量
vi ~/.bashrc
#将下面这两句话添加到.bashrc的最后一行,注意按照自己的python版本修改,我的是3.8所以下面是/python3.8/
export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3.8/dist-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH  

#更新环境变量
source ~/.bashrc

四、验证

1、打开 gnuradio

gnuradio-companion

可以看到下面界面
在这里插入图片描述

如果打开出现 No module named gnuradio,尝试 reboot 重启一下

2、接上 USRP 进行自收自发测试,可以看到 OFDM 频谱图如下:
在这里插入图片描述

参考:Ubuntu20.04安装UHD3.15+GNURadio3.8


我的qq:2442391036,欢迎交流!


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2013年认证杯SPSSPRO杯数学建模A题(第一阶段)护岸框架全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 A题 护岸框架 原题再现: 在江河中,堤岸、江心洲的迎水区域被水流长期冲刷侵蚀。在河道整治工程中,需要在受侵蚀严重的部位设置一些人工设施,以减弱水流的冲刷,促进该处泥沙的淤积&…

在Windows中部署redis

下载redis Windows版redis在GitHub开源,由microsoftarchive维护,项目地址为 https://github.com/microsoftarchive/redis 找到releases,然后在latest中选择msi,或者zip进行下载 安装 msi安装包安装 下载完成后双击运行,同意协…

【御控物联】JavaScript JSON结构转换(11):数组To数组——综合应用

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON数组 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

公司服务器被.rmallox攻击了如何挽救数据?

公司服务器被.rmallox攻击了如何挽救数据? .rmallox这种病毒与之前的勒索病毒变种有何不同?它有哪些新的特点或功能? .rmallox勒索病毒与之前的勒索病毒变种相比,具有一些新的特点和功能。这种病毒主要利用加密技术来威胁用户&am…

消费盲返:新型返利模式引领购物新潮流

消费盲返,一种引领潮流的新型消费返利模式,其核心在于:消费者在平台选购商品后,不仅能享受优惠价格,更有机会获得后续订单的部分利润作为额外奖励。这种创新的返利机制,既提升了消费者的购物体验&#xff0…

小赢科技公布2023年业绩:业绩稳健增长,服务“触角”有效延伸

近日,金融科技公司小赢科技(NYSE:XYF)发布了2023年第四季度及全年未经审计的财务业绩。 财报显示,小赢科技2023年全年总净营收约为48.15亿元,同比增长35.1%;净利润约为11.87亿元,同比增长46.2%…

CCSDS CONVOLUTIONAL CODING 卷积码 规范

文章目录 3 CONVOLUTIONAL CODING3.1 overview3.2 general3.2.1 ATTACHED SYNC MARKER3.2.2 DATA RANDOMIZATION3.2.3 FRAME VALIDATION3.2.4 QUANTIZATION 3.3 BASIC CONVOLUTIONAL CODE SPECIFICATION3.4 PUNCTURED CONVOLUTIONAL CODES matlab中的 comm.ConvolutionalEncode…

Linux IRC

目录 入侵框架检测 检测流程图 账号安全 查找账号中的危险信息 查看保存的历史命令 检测异常端口 入侵框架检测 1、系统安全检查(进程、开放端口、连接、日志) 这一块是目前个人该脚本所实现的功能 2、Rootkit 建议使用rootkit专杀工具来检查&#…

OSPF之单区域配置

文章目录 单区域配置项目背景项目分析拓扑图配置思路基础配置命令查看路由器接口IP地址信息OSPF配置 测试PC1与PC2互通查看OSPF邻居表修改OSPF路由器的router-id完美的OSPF配置命令写法常用查询命令 单区域配置 项目背景 企业内部存在多个部门,分别属于不同的网段…

经纬恒润AUTOSAR产品成功适配芯来RISC-V车规内核

近日,经纬恒润AUTOSAR基础软件产品INTEWORK-EAS(ECU AUTOSAR Software,以下简称EAS)在芯来提供的HP060开发板上成功适配芯来科技的RISC-V处理器NA内核,双方携手打造了具备灵活、可靠、高性能、强安全性的解决方案。这极…

C语言-printf和scanf的区别详解

fprintf(指定的格式写到文件里面。适用于所有的输出流,可以打印在屏幕上面)fscanf(指定的格式读取出来,适用于所有的输入流) fprintf(指定的格式写到文件里面) 两个函数是一样的 打开…

DFS:二叉树的深搜与回溯

一、计算布尔二叉树的值 . - 力扣(LeetCode) class Solution { public:bool evaluateTree(TreeNode* root) {if(root->leftnullptr) return root->val0?false:true; bool left evaluateTree(root->left);bool rightevaluateTree(root->rig…

B096-docker版jenkins环境搭建

目录 Jenkins持续集成工具的介绍Jenkins安装过程案例 tips:ssm项目需要放到tomcat中运行,springboot项目不需要,内置有tomcat,可直接命令行运行 Jenkins持续集成工具的介绍 Jenkins安装过程 docker版Jenkins需要先安装docker环境…

ES6 学习(二)-- 字符串/数组/对象/函数扩展

文章目录 1. 模板字符串1.1 ${} 使用1.2 字符串扩展(1) ! includes() / startsWith() / endsWith()(2) repeat() 2. 数值扩展2.1 二进制 八进制写法2.2 ! Number.isFinite() / Number.isNaN()2.3 inInteger()2.4 ! 极小常量值Number.EPSILON2.5 Math.trunc()2.6 Math.sign() 3.…

vue3封装Element分页

配置当前页 配置每页条数 页面改变、每页条数改变都触发回调 封装分页 Pagination.vue <template><el-paginationbackgroundv-bind"$attrs":page-sizes"pageSizes"v-model:current-page"page"v-model:page-size"pageSize":t…

使用PopLDdecay软件绘制LD衰减图

前记 PopLDdecay是一款用于进行种群遗传学和关联分析的软件。它可以在全基因组水平上进行基因型数据的相关性和衰减分析&#xff0c;帮助研究人员探索种群间的遗传差异和突变选择的模式。 使用PopLDdecay可以实现以下功能&#xff1a; 遗传距离的计算&#xff1a;可以计算遗…

Python3:ModuleNotFoundError: No module named ‘elftools‘

问题背景 问题 ModuleNotFoundError: No module named ‘elftools’ 解决方法 pip3 install pyelftools 成功&#xff01;&#xff01;&#xff01;

最优算法100例之13-输出第n个丑数

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当…

瑞_23种设计模式_中介者模式

文章目录 1 中介者模式&#xff08;Mediator Pattern&#xff09;1.1 介绍1.2 概述1.3 中介者模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《2…

【JAVA】Idea 右侧的gradle 不见了

1. 找到项目的build.gradle 文件&#xff0c;右键 2. 找到“Link Gradle Project”选项 3. 右侧就出现了gradle