目录
同志们!
本人目前研二在读,从事通信物理层方向,欢迎同志们与我交流!
前言
本系列包括环境配置(Ubuntu系统安装、UHD驱动配置、GNURadio安装)、软件无线电设备介绍、基本开发案列、进阶开发四个方面。由于篇幅原因,环境配置分两篇介绍。上一篇介绍了Ubuntu系统的安装和UHD安装Ubuntu系统和UHD驱动的安装。本篇将介绍GNURadio的安装。
注意:本文档参考了优快云博客和官方指南,但随着Ubuntu系统更新,参考资料在一定程度上失去了时效性。本文主体内容与参考资料类似,但由于本文采用的是Ubuntu 20.04,故细节部分与参考资料稍有不同,为避免由于版本问题引发的系统故障,建议将本文作为主要参考。
一. 安装GNURadio
1. 安装GNURadio依赖包
根据参考链接中不同Ubuntu系统安装GNURadio依赖的配置代码,选择如下部分在终端运行。【注意】现在是重开了一个终端,不要还在配置UHD时进入的文件夹里配置依赖。
安装依赖后,重启系统。
2. 安装GNURadio(代码:链接)
按照以下命令执行,若无法执行,前面可加sudo。【注意】建议逐步执行。
cd workarea
git clone --recursive https://github.com/gnuradio/gnuradio.git
cd gnuradio
git clone https://github.com/gnuradio/volk.git
# 选择版本3.8
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 -j4 will use 4 threads in the build
make test
sudo make install
sudo ldconfig
注:第2行运行时可能会出现“无法访问”的情况,这时由于网速问题,重开一个终端多试几次,如果还不行,可以尝试用清华的镜像(自行百度)。
接下来设置环境变量,此步骤很重要,否则打不开应用:
gedit $HOME/.bashrc
# add the line below to the end of ./bashrc file:
export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3.6/dist-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
最后执行:
sudo ldconfig
至此,GNURadio的安装已经完成,可以通过gnuradio-companion来调出GNURadio。还有其他验证办法参照链接。【注意】该命令使用后可能会报错,重新开启一个终端再运行该命令,有如下画面。配置完成!
但是该配置最后还存在一个问题,在终端中使用命令行可以打开GNURadio,但从Ubuntu系统的应用界面打开GNURadio软件则会报错:
由于这个问题不影响GNURadio的使用,故没有深入研究。但根据提示不难看出,这是由于环境变量的设置出现了问题,该文档中设置环境变量的方法(参考链接)与官方指南(参考链接)中的设置方法稍有不同,主要是由于Ubuntu系统的迭代更新,其环境变量的设置办法也略有不同。该解决思路仅供参考。
二. 重装Ubuntu系统注意事项
1. 清理原Ubuntu系统
在安装过程中可能由于某些原因造成无法挽回的结果,在对Linux系统不熟悉的情况下最方便的方法就是重装Ubuntu系统,而重装系统之前最重要的就是如何将原Ubuntu系统清理干净,至少要保证不影响第二次安装。这里推荐参考链接1和参考链接2组合的方式卸载。
先参考链接1对Ubuntu系统进行卸载。需要说明的是,在ThinkPad中开机选项顺序的设置位于BIOS设置中的Boot。【注意】在使用DiskGenius删除分区时,务必、一定确认好那些事Ubuntu分区,否则可能导致Windows系统也要重装。
当按照链接1卸载完成后,理论上电脑中不会再出现Ubuntu的系统残余,但是重新进入BIOS设置后开机选项中依然会有“Ubuntu”一项,这其实是开机引导的残余,虽然它没有实质作用,但还是提供一下它的删除办法,参考链接2。
【注意】关于上图中的Windows Boot Manger不要轻易删除,它是系统受损后的引导项,没搞清楚之前不要乱删。
2. 还原刻录后的U盘
刻录后的U盘还可以继续储存文件,即使你把文件全删了,但也无法再格式化,或者说无法再刻录。这样就对尝试很多版本Ubuntu的人不太友好,浪费U盘资源,参考链接3介绍了还原刻录过的U盘的方法,亲测有效。