前言

本博客是基于我与DeepSeek网页版对话调试在Arch Linux上将SDR-Z103连接到GNU Radio以便开发的过程让DeepSeek网页版总结出来的文章。

SDR-Z103是淘宝商家“顺为达科技”售卖的一款基于AD9363+ZYNQ7010的软件无线电开发版,兼容Pluto SDR。这类兼容模块在淘宝上能找到不少,售价比原装的ADALM Pluto要便宜一半左右,还是挺有性价比的。

在进行这次配置之前,我就已经下载过GNU Radio Companion并运行过一些仿真实验了,这次配置完成之后,搭配gr-soapy包,就可以直接在Gnu Radio Companion中进行这个模块的二次开发了。

下面是DS生成的文章:


📦 已安装的软件包

软件包 用途 安装命令
libiio / libiio-utils 底层设备抽象库及命令行工具(iio_info 等) sudo pacman -S libiio libiio-utils
soapysdr 通用 SDR 硬件抽象层 sudo pacman -S soapysdr
soapyplutosdr SoapySDR 的 PlutoSDR 驱动模块 sudo pacman -S soapyplutosdr
avahi mDNS 零配置网络发现服务 sudo pacman -S avahi
gnuradio SDR 开发框架 sudo pacman -S gnuradio
gqrx 图形化 SDR 接收软件(可选) sudo pacman -S gqrx
gr-soapy GNU Radio 的 SoapySDR 源/宿模块 sudo pacman -S gr-soapy

注:gr-iio 是备选方案(GNU Radio 原生 IIO 模块),本次未安装。


🔧 调试流程(按时间顺序)

阶段 1:初始探测失败

  • 现象:SoapySDRUtil --probe="driver=plutosdr" 报错
    • ERROR: Unable to create Avahi DNS-SD client :Daemon not running
    • ERROR: no device found in this context
  • 判断:Avahi 守护进程未运行,mDNS 发现失败。

阶段 2:启动 Avahi

1
sudo systemctl enable --now avahi-daemon
  • 结果:Avahi 运行正常,但设备仍无法被发现。

阶段 3:检查 IIO 上下文

1
2
3
4
5
iio_info -s          # 只显示本地传感器,无 PlutoSDR
iio_info -u ip # Function not implemented
iio_info -u ip: # No such device or address
iio_info -a ip: # No IIO context found
iio_info -a usb: # No IIO context found
  • 判断:libiio 既找不到网络设备,也找不到 USB 设备。

阶段 4:检查 USB 网络接口

1
ip addr show
  • 发现:系统中没有新增 USB 网络接口(无 usb0 / enx...)。
  • 判断:USB 网络功能(RNDIS/ECM)未被内核识别。

阶段 5:确认硬件连接

1
lsusb | grep -i 0456
  • 结果:Bus 001 Device 012: ID 0456:b673 Analog Devices, Inc. ... [ADALM-PLUTO]
  • 判断:✅ USB 硬件连接正常,设备被内核识别。

注:在这里我手动插拔了一下USB线。

阶段 6:USB 网络接口出现

再次执行 ip addr show,发现新接口:

1
2
7: enp7s0f3u2: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
link/ether 00:e0:22:ad:c8:3b
  • 判断:USB 网卡已被内核创建,但未分配 IP 地址。

阶段 7:手动配置 IP(网络方案)

1
2
3
4
sudo ip addr add 192.168.2.10/24 dev enp7s0f3u2
sudo ip link set enp7s0f3u2 up
sudo ip route add 192.168.2.0/24 dev enp7s0f3u2
ping -c 3 192.168.2.1

阶段 8:USB 后端直连(最终成功方案)

1
SoapySDRUtil --probe="driver=plutosdr"
  • 结果:✅ 成功!设备通过 USB 后端被识别:
    1
    2
    3
    [INFO] Opening PlutoSDR #0 usb:1.12.5...
    uri=usb:1.12.5
    hw_model=Analog Devices PlutoSDR Rev.C (Z7010-AD9361)
  • 关键结论:设备绕过了网络层,直接通过 USB 后端(libusb + libiio)通信成功。

🎯 关键要点

项目 结论
最终连接方式 USB 后端直连,URI 为 usb:1.12.5
网络方案 手动配置 IP(192.168.2.10/24)可选,但 USB 后端更直接可靠
GNU Radio 设备参数 driver=plutosdr,uri=usb:1.12.5
设备型号识别 被识别为 ADALM-PLUTO Rev.C(Z7010-AD9361),与 SDR-Z103 兼容
频段范围 RX/TX 均为 70 MHz – 6 GHz
采样率范围 0.065 – 61.44 MSps(受 USB 2.0 带宽限制,实际建议 ≤ 5 MSps)