GNU Radio安装及连接USRP(包括UHD,VOLK,GNU Radio,gr-foo和gr-ieee802-11安装)


软件版本

Ubuntu:22.04
UHD:4.1.0.0
VOLK:2.5.1
GNU Radio:3.10.7.0

注意:
1.安装版本参考官网,安装过程中容易出现版本不匹配的问题。安装gr-foo要求GNU Radio版本在3.9及以上。
2.必须按照UHD、VOLK和GNU Radio的顺序安装,卸载时先卸载GNU Radio再卸载UHD。我用apt方式快速安装UHD和GNU Radio出现无法卸载UHD的问题,最终选择根据官网步骤一步步操作。
3.默认情况GNU Radio安装在/usr/local目录中,可以参考-DCMAKE_INSTALL_PREFIX 修改安装路径。
4.Ubuntu18.04最高貌似只能安装GNU Radio3.8.

在这里插入图片描述

官网链接安装指路
GNU Radio Install
gr-ieee802-11


一、win10安装ubuntu22.04双系统

参考 经典Ubuntu20.04版本U盘安装双系统教程
这篇帖子已经写得很详细,这里不做赘述。

二、安装依赖

支持Python3的GNU Radio 3.8x需要安装依赖

sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \
python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev \
libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \
liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins \
python3-zmq python3-scipy python3-gi python3-gi-cairo gir1.2-gtk-3.0 \
libcodec2-dev libgsm1-dev libusb-1.0-0 libusb-1.0-0-dev libudev-dev

GNU Radio 3.9x版本除以上依赖还需要添加:

sudo apt install pybind11-dev python3-matplotlib libsndfile1-dev \
python3-pip libsoapysdr-dev soapysdr-tools

pip install pygccxml
pip install pyqtgraph

GNU Radio 3.10x版本除以上依赖还需要添加:

sudo apt install libiio-dev libad9361-dev libspdlog-dev python3-packaging python3-jsonschema

除此之外,还需要安装

sudo apt install python3-pip
pip install packaging

sudo apt install gcc
sudo apt install g++

三、安装UHD

想将GNU Radio与USRP结合使用需要安装UHD。

  1. 首先在主目录下新建文件夹 workarea 用于存放一系列文件,并将代码克隆到该目录中。
cd /home
mkdir workarea
cd workarea
git clone https://github.com/EttusResearch/uhd.git
cd /home/workarea/uhd
  1. 构建v4.1.0.0分支,并在host目录下build。
git checkout v4.1.0.0
cd host
mkdir build
cd build
  1. 安装UHD
 cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../
 make -j3		#-j3用于加速编译,这里表示在构建中使用3个线程。未指定则用单个线程构建。
 make test
 sudo make install
 sudo ldconfig
  1. 定义并修改环境变量:
gedit ~/.bashrc
# 在文件末尾输入
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

关闭当前终端,使更改生效。
5. UHD安装完成,不连接USRP设备的情况下执行:

uhd_find_devcies
# 将得到如下结果
[INFO] [UHD] linux; GNU C++ version 12.2.0; Boost_107400; UHD_4.1.0.HEAD-0-g5fac246b
No UHD Devices Found
  1. 安装UHD FPGA映像
sudo uhd_images_downloader
  1. 连接USRP至主机,设置有线连接,选择 身份>>MTU,设置为1500,选择 IPv4,设置为手动,将地址改为192.168.10.1,子网掩码改为255.255.255.0,应用设置。打开一个中端,ping 192.168.10.2发现网络可达。在另一终端执行:
uhd_usrp_probe

发现连接成功,可看到usrp相关信息。

三、安装VOLK

执行

cd /home/workarea
git clone --recursive https://github.com/gnuradio/volk.git
cd volk
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
# 可以-DCMAKE_INSTALL_PREFIX=XXX在 PREFIX 中添加安装 Volk XXX;如果未指定,则 PREFIX 为/usr/local
make
make test
sudo make install
sudo ldconfig

VOLK安装成功。

四、安装GNU Radio

执行

cd /home/workarea
git clone https://github.com/gnuradio/gnuradio.git
cd gnuradio
# 构建maint-3.10分支
git checkout maint-3.10
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../
# 可以-DCMAKE_INSTALL_PREFIX=XXX在 PREFIX 中添加安装 GNU Radio XXX;如果未指定,则 PREFIX 为/usr/local
make -j3
make test
sudo make install
sudo ldconfig
volk_profile

安装成功,如果出现“无法导入gnuradio”的错误,参考设置PYTHONPATH和LD_LIBRARY_PATH 设置环境变量后再次执行 sudo ldconfig。

五、安装gr-foo

cd /home/workarea
git clone https://github.com/bastibl/gr-foo.git
cd gr-foo
mkdir build
cd build
# 一定要将gnuradio切换到3.10分支
git checkout maint-3.10 
cmake ..
make
sudo make install
sudo ldconfig

六、安装gr-ieee802-11

cd /home/workarea
git clone git://github.com/bastibl/gr-ieee802-11.git
cd gr-ieee802-11
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

调整最大共享内存

sudo sysctl -w kernel.shmmax=2147483648

检查安装

测试流程图wifi_loopback.grc。
注:这里似乎需要将grc文件放在根目录才能正常运行,可能是我的安装路径问题。
使用GNU Radio的两中方式:

  1. 终端执行
gnuradio-companion /root/wifi_loopback.grc
  1. GUI界面,打开GNU Radio,open对应文件即可。

报错

  1. 在安装gr-foo和gr-ieee802-11时报错没有GrSwig或者Python::,都是因为GNU Radio没有切换到3.10分支。

总结

安装前确定好版本是否匹配,避免后期多次卸载重装。
根据官网安装是最靠谱的方法。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
GNURadio是一个开源的软件无线电开发平台,而USRP(Universal Software Radio Peripheral)是一种通用的软件无线电外设硬件。结合使用GNURadioUSRP,你可以实现软件定义无线电(SDR)应用。 要使用GNURadioUSRP,你需要进行以下步骤: 1. 安装GNURadio:首先,你需要在你的计算机上安装GNURadio。你可以从GNURadio官方网站(https://www.gnuradio.org/)下载最新的稳定版本,并按照官方文档中的指导进行安装。 2. 连接USRP:将USRP设备连接到计算机上。USRP设备通常通过USB或以太网接口连接到计算机。确保你的USRP设备与计算机正确连接,并获得适当的供电。 3. 编写GNURadio应用程序:使用GNURadio提供的图形界面工具或编程语言(如Python)编写你的无线电应用程序。你可以使用GNURadio提供的块(blocks)来构建信号处理流程图。流程图描述了信号的流动和处理过程。 4. 配置USRP设备:在你的GNURadio应用程序中,你需要配置USRP设备以进行特定的无线电操作。例如,你可能需要指定接收频率、发射功率、天线增益等参数。 5. 运行应用程序:将你的GNURadio应用程序编译并运行。你的应用程序将通过USRP设备与无线电信号进行交互,接收和发射信号。 请注意,以上步骤只是简要概述了使用GNURadioUSRP的基本过程。在实际使用中,你可能还需要学习更多关于GNURadioUSRP的详细知识,并根据具体的应用场景进行配置和调试。你可以参考GNURadio官方文档、社区论坛和在线教程以获取更多帮助和资源。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值