当前位置:  开发笔记 > 编程语言 > 正文

当尝试在GNU Radio中使用我的USRP时,我得到"没有找到----->的设备"错误

如何解决《当尝试在GNURadio中使用我的USRP时,我得到"没有找到----->的设备"错误》经验,为你挑选了1个好方法。

当尝试执行使用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正在运行.



1> Marcus Mülle..:

您应该首先使用该uhd_find_devices工具首先测试原始UHD功能:

uhd_find_devices

如果它找不到您的设备,虽然它已启动,但我的经验是您很有可能无法与设备通信:

如果你不使用UHD版本从Ettus' 自己的资源库,特别是在未全新Ubuntus,你UHD可能只是比设备老年人和不能谈论它.第一行输出uhd_find_devices将包含版本信息.在撰写本文时(2014年10月),3.9是最新版本.如果可能,请始终使用最新版本.

B200/B210至少需要3.6.0,但功能在3.8.4时显着提高

X300/X310至少需要3.7.0

B200mini需要3.9

应该直接支持USRP1/2/B100/N200/N210,但是您可以在野外找到最旧的版本.与你可以使用它们的所有子板不同 - 如上所述,尝试使用最新版本.

如果您使用的是USB连接设备(USRP B200,B210,B200mini,B100,USRP1),您可能要么使用

在Linux上:没有安装必要的udev规则以允许"普通"用户与USRP通信; 检查是否/etc/udev/rules.d/包含类似的内容uhd-usrp.rules.

在Windows上:您可能没有安装Windows USB驱动程序.

如果您自己构建了UHD(如果您通过build-gnuradio.sh或安装了GNU Radio pybombs),则可能缺少USB库.确保您的UHD cmake日志包含"启用USB".

USB3:某些USB3主机控制器不符合标准,无法实现连接.如果在插入USB2端口(通常不是蓝色的任何人)时检测到您的USRP,您应该没问题.

如果您使用的是联网设备(USRP X300/X310,1Gbit/10Gbit以太网,USRP N200/N210,USRP2)

确保你的网络接口

支持1Gbit(或10GE,如果适用); "快速以太网"(10/100Mbit)NIC 不适用于USRP.

不是英特尔82579LM网络控制器(已知的唯一PCIe网络控制器IC,在不告知操作系统的情况下偶尔丢弃数据包)

不是USB3到千兆位的适配器(这些适配器往往对数据包进行有趣的重新排序,使它们不适合高速实时样本)

确保您的计算机位于同一IP网络上.默认情况下,USRP具有该192.168.10.XXX范围内的地址(XXX=2在出厂设置中).确保您的计算机具有两个来自同一范围内的IP地址,但不一样的地址.

确保基本沟通有效(由ping ).如果没有,请重新检查您自己的IP地址,并尝试确保将USRP配置到正确的地址.

要找出USRP的当前IP地址,通常最容易正确安装wireshark(这是一个网络数据包嗅探软件),有一个专用的网络接口连接到(关闭USRP),在该接口上启动捕获,并打开电源USRP.

如果地址错误,您可以重新编程USRP X300/X310的IP地址:cd /lib/uhd/utils ; ./usrp_burn_mb_eeprom --args=addr= --values="ip-addr0="

如果地址错误,可以重新编程USRP N200/N210/USRP2的IP地址:cd /lib/uhd/utils ; ./usrp_burn_mb_eeprom --args= --values="ip-addr=192.168.10.3"

请确保你有你的 防火墙配置为允许流量从USRP的端口49152来在Linux上,下面的iptables命令通常不会在trick¹: sudo iptables -A INPUT -p udp --sport 49152 -j ACCEPT.请注意,这确实会在防火墙打一个洞.您所在机构的安全政策可能适用.

如果您尝试使用连接到PC 的USRP E100,E110,E310或E312:

E系列设备是独立的嵌入式Linux SDR设备; 它们不作为外围设备连接到PC.你将有一个编译你的软件(如适用)交叉编译器和E系列设备上运行该软件本身,而不是你的主机上.

作为快速测试您的PC,USRP以及布线和设备IP配置是否正确,下载当前的GNU Radio LiveDVD²(顺便提一下,还包含大量很酷的示例),启动它,然后尝试uhd_find_devices.


¹您的里程可能会有所不同,因为每个发行版都有自己的如何管理防火墙的想法

²如果可能,请使用torrent文件 - 对于GNU Radio项目的维护者,Amazon AWS流量不是免费的.torrent文件还使用AWS服务器作为源,但尝试从其他用户获取图像的一部分.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有