ubuntu16.04下更新UHD3.14+GNURadio3.7.13.5

前言:

在虚拟机上已经安装了GNURadio,但做实验时由于Audio sink一直存在aUaU……(audio underrun)现象,看到以下网址
https://github.com/gnuradio/gnuradio/issues/1516
中讨论,GNURadio v3.7.13.5 Windows版本解决了此bug,随即想到重装UHD和GNURadio。

环境:

操作系统:Ununtu 16.04.6
UHD新版本:3.14.0.HEAD-0-g6875d061(查看指令:uhd_usrp_probe --version)
GNURadio新版本:3.7.13.5(查看指令:gnuradio-config-info -v)

UHD旧版本:3.9.7
GNURadio旧版本:3.7.9.1

参考文档:

GNURadio官方安装文档为:
https://wiki.gnuradio.org/index.php/InstallingGR#
提供了From Binaries/From source/Using PyBOMBS三种方法,并且针对多种平台,我从Binaries安装中间总是出错,所以更倾向于用源码安装。由于我要用到USRP,所以必须先安装UHD。主要以下参考文档。
官方参考文档,以此为主:
1.https://kb.ettus.com/Building_and_Installing_the_USRP_OpenSource_Toolchain_(UHD_and_GNU_Radio)_on_Linux
其余参考文档:
2.https://www.cnblogs.com/moon1992/p/5781166.html?utm_source=itdadao&utm_medium=referral

Github 上的各个GNURadio版本,可查看更新日志:
3.https://github.com/gnuradio/gnuradio/tags

安装步骤:

根据文档2的内容,需要先卸载旧版(其实在官方文档中介绍,从源码安装的话不用卸载),文档2中内容如下:
ubuntu16.04下更新UHD3.14+GNURadio3.7.13.5_第1张图片
文档1中内容如下:
在这里插入图片描述
不过已经卸载完之后,按照文档2分两种方法安装UHD,一种是先手动下载,另一种直接git获取。由于之前安装过依赖包,所以这次就没有重新安装。我一开始git获取总是出现莫名的中断,网速很低,随选用手动下载,地址为:
http://files.ettus.com/binaries/uhd_stable/src/
分别下载了UHD3.14/UHD3.13/UHD3.11/UHD3.10,前三个在cmake …/的时候总是会报错:

CMake Error at utils/CMakeLists.txt:125 (FILE):
  file failed to open for reading (No such file or directory):

    /home/lxp/GNURadio-new/uhd_3.11.0.0-release/utils/../../images/manifest.txt


CMake Error: File /home/lxp/GNURadio-new/uhd_3.11.0.0-release/utils/../../images/manifest.txt does not exist.
CMake Error at utils/CMakeLists.txt:133 (CONFIGURE_FILE):
  configure_file Problem configuring file

而版本UHD3.10不存在这样问题,但不满足需要高版本的需求。上述错误提示在cmake时找不到文件manifest.txt。
再次在WiFi环境下(之前用的手机开的热点)尝试Git命令,我的安装目录是在home目录下新建了一个文件夹,在此文件夹下打开终端,使用Git命令。而用Git获取的UHD在images文件夹下存在文件manifest.txt,然后按照官方文档1安装了UHD,这次没有cmake…/没有出现以上问题,不过由于USRP没有在身边,没有安装UHD FPGA镜像。
安装完UHD之后,按照文档1开始安装GNURadio,也是尝试了几次通过Git获取才成功,GNURadio默认是安装在/usr/local目录下的,此次安装版本为GNURadio v3.7.13.5,但是执行make test命令时,出现错误:

345/346 Test #345: qa_zeromq_sub ......................................***Failed    1.63 sec
        Start 346: qa_zeromq_pub
346/346 Test #346: qa_zeromq_pub ......................................   Passed    1.07 sec

99% tests passed, 1 tests failed out of 346

Total Test time (real) = 326.22 sec

The following tests FAILED:
	345 - qa_zeromq_sub (Failed)
Errors while running CTest
Makefile:61: recipe for target 'test' failed
make: *** [test] Error 8
lxp@lxp-virtual-machine:~/GNURadio-new/gnuradio/build$ 

此问题暂时没有解决,随即测试一下Audio例程。GNURadio安装完之后有例程可以测试,包含Python、grc、c++版本。
用如下命令python $HOME/GNURadio-new/gnuradio/gr-audio/exapython/dial_tone.py,,根据路径自己修改。执行界面如下:
ubuntu16.04下更新UHD3.14+GNURadio3.7.13.5_第2张图片
从上图可以看出,首先打开GNURadio的时候有警告无法解析std::exception,但是会正常执行程序,猜测哪个依赖包没有装好。程序执行后依然会打印aUaU,不过只出现两个,说明一开始出现了underrun,后面就正常了。这时候用手机软件测下频谱。
ubuntu16.04下更新UHD3.14+GNURadio3.7.13.5_第3张图片
这与例程dial_tone是相符的,是两个单频信号的声音(350Hz和440Hz)。
截止目前说明程序是可以正常运行的。

你可能感兴趣的:(ubuntu16.04下更新UHD3.14+GNURadio3.7.13.5)