2

我正在尝试从 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 版本详细信息。

4

1 回答 1

1

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

解决方案是先构建和安装uhd,然后构建gnuradio.

于 2020-06-15T15:15:43.030 回答