0

我创建了一个包含 USRP_UHD 和 GPP 的节点(并确保 ip_address 对于 USRP_UHD 是正确的)。我基于这个节点启动了域。但是,我收到以下错误:

UHD Error:
    Device discovery error: AssertionError: libusb_init(&_context) == 0
      in libusb_session_impl::libusb_session_impl()
      at /builddir/build/BUILD/uhd-release_003_005_003/host/lib/transport/libusb1_base.cpp:37

UHD Error:
    Device discovery error: AssertionError: libusb_init(&_context) == 0
      in libusb_session_impl::libusb_session_impl()
      at /builddir/build/BUILD/uhd-release_003_005_003/host/lib/transport/libusb1_base.cpp:37
...
-- Opening a USRP2/N-Series device...
-- Current recv frame size: 1472 bytes
-- Current send frame size: 1472 bytes

UHD Warning:
    Unable to set the thread priority. Performance may be negatively affected.
    Please see the general application notes in the manual for instructions.
    EnvironmentError: OSError: error in pthread_setschedparam

我确实得到了两个未分配的(每个 TX/RX)调谐器,但是分配这两个调谐器用于任何参数并不容易。

此外,如果我只是启动域并启动单个设备 USRP_UHD,或者只是通过命令行窗口运行 discover USRP_UHD 命令,我会得到同样的错误:

UHD Error:
    Device discovery error: AssertionError: libusb_init(&_context) == 0
      in libusb_session_impl::libusb_session_impl()
      at /builddir/build/BUILD/uhd-release_003_005_003/host/lib/transport/libusb1_base.cpp:37
2016-02-01 16:59:20 WARN  USRP_UHD_i:943 - WARNING: NO UHD (USRP) DEVICES FOUND!

有人能弄清楚这个问题出在哪里吗?提前致谢!

4

2 回答 2

0

我在尝试在 CentOS 7 Docker 容器中安装 UHD v3.9.3 时遇到了这个问题 - 错误消息指向 USB 问题,与 Redhawk 无关。Redhawk 设备 USRP_UHD 只是 Ettus UHD 驱动程序之上的一个抽象层,因此判断问题是 Redhawk 还是其他问题的最简单方法是直接从终端尝试 UHD 命令之一以生成相同的错误,喜欢 uhd_usrp_probe

要检查问题是否与 USB 驱动程序直接相关,请尝试使用命令lsusb。这应该列出连接到您的操作系统的所有 USB 设备。这些是很好的调试技巧,可以找出问题所在。

如果您碰巧使用 Linux 容器或 Docker 执行此操作,则必须提供适当的权限,请参阅docker-any-way-to-give-access-to-host-usb-or-serial-device。否则,假设您从源代码构建 UHD,请检查make teststep 的输出 - 如果所有测试都通过,那么 UHD 库应该没有任何问题。

编辑:此外,如果您在 VM 中运行此程序,则必须确保您的主机在安装过程中已向管理程序(例如 VirtualBox)授予网络/USB/等权限,或者您已在虚拟机中附加了正确的虚拟硬件虚拟机配置。

于 2016-03-25T04:01:16.090 回答
0

因此,首先,好消息是在自动检测 USB 设备期间会发生这种情况,因此您的 N2xx 本身不会受到影响,但是:

UHD 3.5.3 不仅陈旧,而且很古老。你真的应该卸载它(如果你有 Debian 或派生的 [Ubuntu],它会是sudo apt-get remove uhd-host libuhd003 libuhd-dev),直接从 Ettus 安装一个新版本(如果需要,可以帮助你)并针对该版本重建 Redhawk。

真的,真的这样做。在诸如故障处理之类的行为方面已经有了很大的改进,以至于在不更新的情况下修复它是不值得的。

现在,如果您明确指定允许您完全取消基于 USB 的 USRP 检测的设备地址,您应该没问题。作为设备地址,type=usrp2用于 USRP2、N200 和 N210。

于 2016-02-02T08:57:42.287 回答