SDRPi学习日记1:兼容PlutoSDR模式+Gnuradio3.11 环境配置
一、基本情况
1. 系统
系统:Ubuntu 22.04(全新系统,最小安装)
硬盘容量:建议30G以上
可以使用VMWare或VirtualBox等虚拟机
2. SDR
SDR用的是「SDRPi 软件无线电平台 ZYNQ+AD9361」
采用ZYNQ商业级芯片XC7Z020 CLG400和射频收发器芯片AD9361,可以使用PlutoSDR固件
二、环境配置
这一部主要依照Pluto SDR wiki中的教程进行操作,注意我们安装的GNURadio是最新版本3.10,因此不需要额外安装gr-iio
1. 安装必要依赖
打开终端
,输入以下代码安装必要依赖:
sudo apt update
sudo apt install libxml2 libxml2-dev bison flex cmake git libaio-dev libboost-all-dev doxygen libusb-1.0-0-dev libavahi-common-dev libavahi-client-dev
2. 安装libiio
这里wiki中有一个坑是github中的libiio主分支已经是v1版本了,安装v1版本的libiio会导致后面的libad9361-iio安装不上,这里我们安装v0版本的分支
打开终端,先输入
cd
切换到根目录,再依次输入
git clone https://github.com/analogdevicesinc/libiio.git --branch libiio-v0
cd libiio
mkdir build
cd build
cmake .. -DPYTHON_BINDINGS=ON
make
emmm,到这一步应该会报第一次错,提示找不到setuptool
模块,我们安装一下就好了
sudo apt install python3-setuptools
这时候应该就能顺利make
了
make
sudo make install
sudo ldconfig
到这里libiio就安装好了,我们下一步继续安装libad9361-iio
3. 安装libad9361-iio
和安装libiio的步骤类似,逐步在终端输入一下指令即可
cd
git clone https://github.com/analogdevicesinc/libad9361-iio.git
cd libad9361-iio
mkdir build
cd build
cmake .. -DPYTHON_BINDINGS=ON
make
sudo make install
到cmake
那一步应该又出错了,提示缺少Sphinx模块,按提示补充安装,再继续运行指令
sudo apt install python3-sphinx
make
和sudo make install
最后都会报一个Configuration error
,貌似不用管他后面也能正常使用
到这里就算安装好了libad9361-iio
4. 安装GNURadio
GNURadio有类似于安装libiio和libad9361-iio的源码安装方式,但是比较繁琐,为了方便期间我们这里就直接使用PPA安装了
根据官方wiki,我们在终端输入以下指令安装最新版的gnuradio3.10
sudo add-apt-repository ppa:gnuradio/gnuradio-releases
sudo apt install gnuradio
要是安装旧版本可以在后面加上版本号(这里不推荐,因为要额外安装gr-iio)
sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.9
sudo apt install gnuradio
等待安装完成即可。
安装后可能在应用列表中找不到GNURadio,我们在终端中输入gnuradio-companion
运行即可。
三、SDRPi进入兼容PlutoSDR模式
这部分内容来自SDRPi官方的文档,github网址:https://github.com/sdrpi/sdrpi-fw,可以根据github中的教程生成固件文件。
将固件文件放入TF卡的根目录,再将TF卡插入SDRpi中,再使用MicroUSB连接线,从SDRpi的OTG插口连接到电脑即可,或使用网线连接到PS_ETH端口,采用USB供电的形式。
以下是SDRPi资料的原文:
pluto是adi的一个类似于usrp b210的网络产品,adi提供了一系列的库和组件实现了在gnuradio环境下可以将pulto产品接入软件无线电的框图设计中。
我们移植了pluto的开源代码,代码公布在https://github.com/sdrpi/sdrpi-fw上。编译好的sd卡映像在本目录下,文件名是SDIMG_SDRPi_PLUTOSDR.zip,直接解压缩,拷贝SD卡的FAT32分区运行就可以。由于使用的是ramdisk文件系统,所以不需要像运行openwifi那样使用win32imagewrite烧写sd卡映像。如果SD卡之前做过openwifi的试验,可以直接将SDIMG_SDRPi_PLUTOSDR.zip解压缩后将所有文件拷贝SD卡的BOOT分区覆盖同名文件。
如果使用网线连接,注意网线连接在PS_ETH上。
简单说一下步骤:
1,直接将SDIMG_SDRPi_PLUTOSDR的所有文件拷贝SD卡根目录下(不要拷贝文件夹,确保BOOT.BIN等文件在SD卡根目录下)。
2,可以自己安装GNURADIO以及支持pluto的组件,也可以使用我们做好的vmware虚拟机直接运行。虚拟机网盘下载地址为:
链接:https://pan.baidu.com/s/1d5mIbCWIKvpjnQZE3zgANA
提取码:z2qy
3,https://github.com/MicroPhase/gnu-radio-demo上面的教程完全适合咱们例子。
4,虚拟机系统无登录密码,root密码为z。 (一个小写字母z)。
SDRPI运行pluto的资料还在不断完善中,有什么问题可以随时联系,有更新也会在群里告知大家。
在使用外部供电情况而非USB接口供电情况下使用SDRPi的USB OTG连接,注意USB OTG也有5V电源,此时一定要确保供电的电源是5V,以免对连接在USB OTG上的电脑造成伤害。
四、连接SDRPi到GNURadio
将SDRPi通过USB线或网线连接到电脑后,稍等一到两分钟,会发现SDRPi会弹出一个U盘,此时就可以在终端
中输入iio_info -s
就能找到连接设备的USB或者ip地址,如下图的usb:1.4.5
新建一个GNURadio工程如图所示,将Pluto SDR Source中的IIO context URI填为usb:1.4.5,运行工程,就可以看到示波器收到信号了。
五、虚拟机相关操作
如使用虚拟机,以Virtual Box为例,将USB设置为如下即可在虚拟机中检测到SDRPi。
评论区