当尝试执行使用USRP的GNU Radio程序时,我得到一个错误回溯,(在Python中)通常以以下结尾:
self.u = uhd.usrp_source(device_addr=args, stream_args=uhd.stream_args('fc32'))
File "/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/uhd/__init__.py", line 122, in constructor_interceptor
return old_constructor(*args)
File "/home/marcus/.usrlocal/lib64/python2.7/site-packages/gnuradio/uhd/uhd_swig.py", line 2351, in make
return _uhd_swig.usrp_source_make(*args)
RuntimeError: LookupError: KeyError: No devices found for ----->
USRP正在运行。
答案 0 :(得分:13)
您应该首先使用uhd_find_devices
工具首先测试原始UHD功能:
uhd_find_devices
如果找不到您的设备,虽然它已启动,但我的经验是您很有可能无法与设备通信:
uhd_find_devices
的第一行输出将包含版本信息。在撰写本文时(2014年10月),3.9是最新版本。如果可能,请始终使用最新版本。
/etc/udev/rules.d/
是否包含uhd-usrp.rules
。build-gnuradio.sh
或pybombs
安装了GNU Radio),则可能缺少USB库。确保您的UHD cmake日志包含“启用USB”。192.168.10.XXX
范围内的地址(出厂设置中为XXX=2
)。确保您的计算机具有相同范围的IP地址,但不是相同的地址。 ping <ip address of USRP>
)。如果没有,请重新检查您自己的IP地址,并尝试确保将USRP配置到正确的地址。
wireshark
(这是一个网络数据包嗅探软件),有一个专用的网络接口连接到(关机的USRP),启动捕获该接口,并启动USRP。cd <install-path>/lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=addr=<current IP address> --values="ip-addr0=<new ip address>"
cd <install-path>/lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=<optional device args> --values="ip-addr=192.168.10.3"
iptables
命令通常会诀窍¹:sudo iptables -A INPUT -p udp --sport 49152 -j ACCEPT
。请注意,此 在防火墙中打了一个洞。您所在机构的安全政策可能适用。作为快速测试您的PC,USRP以及布线和设备IP配置是否正确,请下载当前的GNU Radio Live DVD²(顺便提一下,还包含大量很酷的示例),启动它,然后在那里试试uhd_find_devices
。
¹您的里程可能会有所不同,因为每个发行版都有自己的如何管理防火墙的想法
²如果可能,请使用torrent文件 - 对于GNU Radio项目的维护者,Amazon AWS流量不是免费的。 torrent文件还使用AWS服务器作为源,但尝试从其他用户获取图像的一部分。
答案 1 :(得分:-2)
运行以下命令:
sudo gedit /usr/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py
在行中包含device_addr
添加B210
作为其值。
Args:
device_addr : B210