侧边栏壁纸
博主头像
EIEA博主等级

行动起来,活在当下

  • 累计撰写 2 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
SDR

SDRPi学习日记1:配置环境

Administrator
2024-02-28 / 0 评论 / 0 点赞 / 71 阅读 / 8404 字

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

makesudo 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。

0

评论区