简单介绍
做实验需要使用SDR设备,选用了NI的USRP 2922(Ettus的是NI的子公司,他生产的USRP有自己的版本,BNEX四个系列,使用开源的Gnu Radio开发),NI的USRP有自己的配套软件,是运行在Windows上的LabView套件,奈何另外收费且很贵,幸好NI系列的也支持GNU Radio,因此我们选择了在linux上运行的GNU radio,因为他是开源的不用对日后工作有顾虑。
环境
GNU需要安装在linux上,我是用的版本是Linux Mint 19.03(基于Ubuntu 18.04)。安装Ubuntu可以选择给电脑装一个windows+ubuntu双系统,也可以装虚拟机。虚拟更安装快一点,移动也方便,所以我在VMware上建了一个Linux Mint的虚拟机。
安装
¶安装UHD
这里选择使用源代码编译安装的方法。
首先安装一些依赖库
sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
下载源码
git clone https://github.com/EttusResearch/uhd.git
进入目录
cd uhd/host
创建一个build目录,并编译安装
mkdir build
cd build/
cmake ../
make
make test
sudo make install
sudo ldconfig
这个编译过程可能时间比较长,可以挂着干点别的了。接下来下载UHD镜像。
sudo uhd_images_downloader
然后可以用一下命令查看USRP设备
uhd_find_devices
这里发现没找到,发现设备和虚拟机没有在一个子网内,需要配置一下。
¶配置虚拟机网络模式-桥接
我电脑有两个网卡,我将其中一个用NAT模式和虚拟公用网络,这样我就可以正常上网。
另一为了和USRP通信,和虚拟机桥接。
首先添加一个虚拟网卡,设置为桥接模式:
然后点击 编辑-> 虚拟网络编辑器
更改设置
设置交接到的网卡
最后,在主机网络适配器找到这个网卡,IPV4设置为固定IP,由于USRP默认IP为:
192.168.10.2
所以我们主机IP改为同一网段,例如192.168.10.3,子网掩码255.255.255.0,这样连接网线才能找到USRP
¶USRP刷固件
配好网络之后,运行以下命令应该就可以看到USRP了。
uhd_find_devices
但是使用GNU radio 还需要刷一下固件,运行以下命令看一下是否需要刷固件。
uhd_usrp_probe
可以看到,并不兼容。
运行一下命令
uhd_image_loader --args="type=usrp2,addr=192.168.10.2,reset"
再运行uhd_usrp_probe,会看到设备的详细信息。
¶安装GNU radio
以下方法二选一
¶(1)使用pybombs
最简单的方式是使用pybombs 安装,一次失败还可以重复安装,还可以支持同时装多个版本。default最新,stable相对比较稳定。
sudo apt install pybombs
pybombs recipes add gr-recipes git+https://mirrors.tuna.tsinghua.edu.cn/pybombs/recipes/gr-recipes.git
pybombs recipes add gr-etcetera git+https://mirrors.tuna.tsinghua.edu.cn/pybombs/recipes/gr-etcetera.git
mkdir prefix/
# 稳定版
pybombs prefix init -a stable prefix/stable/ -R gnuradio-stable
# 最新版
pybombs prefix init -a default prefix/default/ -R gnuradio-stable
安装好之后进入/prefix/stable或者/prefix/default,
source ./setup_env.sh
输入以下命令就可以运行了。
gnuradio-companion
# 或者
pybombs -p stable run gnuradio-companion
# 或者
pybombs -p default run gnuradio-companion
可以运行一个gnu radio自带的FFT demo 试一下,是否成功。
¶(2)使用apt安装
现在很多ubuntu(我使用基于ubuntu18.04LTS的Mint19.3测试可行)都提供了稳定版本的gnuradio,用这个版本安装方便,而且UHD最好也用apt安装(之前版本的gnuradio、uhd需要删除)。可以使用如下命令:
apt install uhd-host
apt install gnuradio
可能安装完运行demo(一般在/usr/share/gnuradio/examples或/usr/local/share/gnuradio/examples下)会提示没有xterm,安装一个即可。
apt install xterm
使用gnuradio打开/usr/local/share/gnuradio/examples/und/uhd_fft.grc, 运行效果如下:
¶Ubuntu PPA Installation
这里主要参考了Gnuradio Wiki [1].
有时候使用apt 安装并不是想要的版本,需要先添加对应的apt库,在进行安装
最新版
sudo add-apt-repository ppa:gnuradio/gnuradio-master
现在的Released 版本
sudo add-apt-repository ppa:gnuradio/gnuradio-releases
released 3.8版本
sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.8
released 3.7版本
sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.7
添加适合的版本库之后,更新apt,并安装
sudo apt-get update
sudo apt-get install gnuradio
参考文献:
InstallGR. Gnuradio Wiki. https://wiki.gnuradio.org/index.php/InstallingGR ↩︎