【问题标题】:Run GNU Radio flowgraph from Docker with Ettus B200 USRP with UHD使用带有 UHD 的 Ettus B200 USRP 从 Docker 运行 GNU Radio 流程图
【发布时间】:2020-10-03 08:34:26
【问题描述】:

我正在尝试从 Docker 容器中运行 GNU Radio 流程图(无 GUI)。主机和 docker 映像上的操作系统都是 Ubuntu 18.04。我正在运行 GNU Radio v3.7.13.4 和 UHD v3.14.0.0。

在主机上我可以运行grcc -e flowgraph.grc 并按预期执行。当我尝试在 Docker 容器中运行它时,它会报告

Validation failed:

Block - blocks_tagged_stream_multiply_length_0 - Tagged Stream Multiply Length Tag(blocks_tagged_stream_multiply_length):
        Source - out(0):
                Port is not connected.
Error during file compilation.

在主机和 Docker 容器中 uhd_find_devices 返回:

[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_3.14.0.HEAD-0-g6875d061
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
    serial: 30CF9B7
    name: MyB210
    product: B210
    type: b200

看来我在主机和容器之间正确共享 USB 设备(尽管我怀疑问题是与此有关的一些更精细的细节)。

我正在运行容器: docker run -it -v /dev/bus/usb:/dev/bus/usb --privileged csradio:latest

有谁知道问题出在哪里?

编辑 1:添加了操作系统、GNU 和 UHD 版本详细信息。

【问题讨论】:

  • 您在流程图中使用 OOT 块吗?如果是这样,请确保所有 OOT 块都安装在容器中。你能分享你的流程图或截图吗?您是否在主机和容器上都使用 Ubuntu 18.04?您在主机和容器中都安装了哪个 gnuradio 版本?
  • 是的,流程图中有 OOT 块,这些都已安装。导致问题的块是 USRP 源块的块。我可以通过在未连接 USRP 时尝试运行命令来重新创建上面的错误消息,所以我相当确定这是容器和 USB USRP 之间的某种权限/可访问性问题。我无法提供容器内流程图的屏幕截图,因为我没有设法转发显示,因此 GNU Radio 在启动时出错。我在原始问题中添加了 GNU 无线电和 UHD 版本以及操作系统详细信息。
  • 我怀疑这是一个权限问题,因为我可以在没有连接 USRP 设备的情况下编译流程图(在容器中和主机上)。 grcc 命令只是生成一个 python 脚本而不执行它。我的建议是尝试编译两个简单的流程图——一个带有一个连接到 Null Sink 的 USRP 源块,第二个带有一个连接到 Null Sink 的 Signal Source。您也可以使用x11docker 在容器内运行 Gnuradio Companion。
  • 我刚刚看到您正在使用-e 选项来执行流程图。您可以尝试分两步进行吗 - 首先使用 grcc -d . flowgraph.grc 构建它,然后如果成功使用 ./flowgraph.py 运行它
  • 用 -d 标志尝试过,同样的错误,所以我怀疑这与现在的安装有关,而不是与 USB 权限有关。进一步的证据是我可以运行 uhd_usrp_probe 并且运行良好。我已经开始调查安装。容器和宿主机的区别在于容器是作为 root 安装的。我将重写它以创建一个用户并使用与主机完全相同的安装脚本,看看它是否有效。感谢您迄今为止的帮助。

标签: docker gnuradio gnuradio-companion usrp uhd


【解决方案1】:

查看您的Dockerfile,出现上述错误的最可能原因是UHD 块丢失,因为您在安装uhd 后安装了uhd

解决方法是先编译安装uhd,再编译gnuradio

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 2022-01-01
    • 2021-09-06
    • 2019-11-26
    • 2023-03-16
    • 2016-05-28
    • 2020-02-15
    • 2020-12-15
    • 2017-09-29
    相关资源
    最近更新 更多