【问题标题】:UHD error with REDHAWKREDHAWK 出现 UHD 错误
【发布时间】:2016-04-07 06:04:34
【问题描述】:

我创建了一个包含 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!

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

【问题讨论】:

    标签: usrp uhd


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 有二进制安装和源码安装两种。我应该拿起哪一个?有没有我可以轻松遵循的详细步骤?
    • 我不是 Redhawk 专家,但我建议您使用出色的 pyBombs 构建 UHD,它可以自动下载、安装 UHD 依赖项和编译。
    【解决方案2】:

    我在尝试在 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 test 步骤的输出 - 如果所有测试都通过了,那么 UHD 库应该没有任何问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 2022-11-28
      • 2020-02-27
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多