由于网上各种教程错综复杂,许多人又不知道GNURADIO官网的存在,故写个简单帖子讲述一下安装基本流程。
安装版本为GNURADIO3.9,UHD用最新的版本(当前是4.4),系统为ubuntu22.04
安装之前确保电脑上没有安装uhd和gnuradio,如已安装先卸载,顺序为先卸载gnuradio再卸载uhd
官网入口
官网地址为: wiki.gnuradio.org.国内可直接访问。官网内有各模块的说明,简易的教程等,是使用GNURADIO不可或缺的。
进入官网后,在左侧导航栏选择Installing GNU Radio进入安装教程。此时界面内靠前的应该是apt安装方法,向下滑动找到Linux install guide进入linux安装指导。
进入后于导航栏源码安装选择自己需要的版本,这里建议Ubuntu20.04及以上用3.9或3.10,我这里以3.9进行介绍
安装准备
如果上述操作顺利,此时网页应处于所需安装版本的位置,以版本号标题开头(如For GNU Radio 3.10, 3.9, and Main Branch)
根据后面的操作,流程可以分为:依赖安装→UHD安装→Volk安装→GNURADIO安装,顺序不得改变。如果后续有涉及硬件连接的工作,建议使用独立系统而非虚拟机,能有效减少连接问题和提高运行效率。
依赖安装
在安装教程第一步便为依赖安装。此处安装只是官方建议内容,在后续安装过程可能还会有其它依赖缺失,根据提升补充即可。
点击如图链接进入依赖安装指导,建议右键新建标签页,不然一会还要退回来
点击后应该是如下界面,根据自己系统版本和GNURADIO目标版本选择执行即可,安装前更新源列表
sudo apt-get update
注意,3.9和3.10是在3.8基础上额外执行,不要忘记3.8的部分。如果遇到连接问题,修改自己软件源位置(设置→关于→软件更新)
UHD安装
完成上述操作后回到前一界面,点击如下链接进入UHD安装指导(还是建议新建标签页)
进入后应该是从Install UHD from source开始,以下指令较少,仅做简单解释
1.选择下载路径
cd ~/
2.下载源码,进入下载文件夹(此处去github打包下载再解压是一个效果)
git clone https://github.com/EttusResearch/uhd.git
cd ~/uhd
3.选择版本,默认最新就行,一般推荐使用4.0以上的版本
git checkout v4.4.0.0
4.进入host文件夹创建编译文件夹
cd host
mkdir build
cd build
大部分源码安装都是:进入源码文件夹→创建build文件夹并进入→编译并安装
5.生成makefile
cmake -DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
以上的两个可选项分别是安装于arm设备和指定安装目录,没有特殊需求执行cmake ../
即可,注意与后面GNURADIO保持一致。此时如发送报错,查看终端提示并进行对应处理即可。
(我是建议只用cmake ../
)
6.编译及安装
make -j3
make test
sudo make install
sudo ldconfig
-j3是使用3个逻辑处理器,根据自己cpu可以更改该数字,一般不改源码内容此步不会出问题
7.检查安装情况
sudo uhd_find_devices
执行该命令,出现uhd版本号时便说明安装成功,此时插usrp执行可搜索到设备。USB型usrp可能涉及到USB权限问题,原教程或网上有说明此处不再讲述。
volk安装
回到安装指导界面,执行教程内命令。由于和上一步步骤类似不再重复说明,出现报错查询相关报错信息并处理即可
GNURADIO安装
在cmake之前的操作与上述操作类似
cd
git clone https://github.com/gnuradio/gnuradio.git
cd gnuradio
此时如果想选择版本,执行以下命令,否则自动选择最新版本
注意:近期volk更新后已不支持3.9及以下的版本
git checkout maint-3.9
创建build文件夹并进入
mkdir build
cd build
创建makefile
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
-DCMAKE_INSTALL_PREFIX=XXX
是指定安装目录,如果没有需求去掉即可,执行cmake ../
就行,注意与uhd安装保持一致
注意: 在此步会根据依赖情况,cmake会根据依赖选择支持的组件进行安装,在末尾会给出可安装与不可安装的模块列表。注意一些必须的模块,如gr-qtgui,gr-fft等
如果某个模块没有启用,向上滑动寻找对应的信息,查看依赖缺少项,然后用apt或pip3安装(记得加sudo)
Dependency后面为FALSE或者OFF或者0,就是该项未通过,补充安装即可,一般是apt或者pip3安装
如果出现error,根据具体报错处理
进行编译及安装(3.8的test好像会出错但不影响使用):
make -j3
make test
sudo make install
sudo ldconfig
volk_profile
安装成功后,在应用列表可找到gnuradio应用图标,如果没有可于终端执行gnuradio-companion
启动
后记
安装时uhd在前gnuradio在后,卸载时gnuradio在前uhd在后
该教程是我根据个人操作记录,不同版本不同设备可能各有不同,如有其它问题可以留言,我会根据情况进行适当补充
所有安装都建议使用默认路径(使用cmake ../
,不添加任何选项),依赖都使用apt或者pip3(有的是pip),可以最大提升成功率
注意终端输出,里面包含了所需的所有信息
所有的make文件都要保留,卸载时需要回到build文件夹执行