尝试在同一台 ubuntu 机器上使用两个 USRP 接收 UHD 样本时出错(USBError -11:usb rx6 提交失败:LIBUSB_ERROR_NO_MEM)

问题描述 投票:0回答:1

我设置了一个 Ubuntu 服务器,并通过 USB 连接了 2 个 USRP B200。我可以找到这两个设备,并且能够在 SSH shell 中使用以下命令很好地接收样本(不会丢失样本):

./rx_samples_to_file --gain 55 --freq 1234e6 --rate 50e6 --ant "RX2" --ref "external" --wirefmt sc12 --file /recordings/test_1.iq --duration 60 --stats --progress --args num_recv_frames=1900,serial=0000001 (redacted the real SN)

^这会产生预期的稳定流媒体和录制。

在运行上述内容时,我还想开始使用第二个 USRP 进行记录,因此我并行运行第二个 shell 和以下命令:

./rx_samples_to_file --gain 55 --freq 1234e6 --rate 50e6 --ant "RX2" --ref "external" --wirefmt sc12 --file /recordings/test_2.iq --duration 60 --stats --progress --args num_recv_frames=1900,serial=0000002 (redacted the real SN)

^但是,一旦我运行此命令,就会出现以下错误,甚至 shell 1 中的现有流也会停止:

shell 1 出错:

    [...]
    50.0002 Msps
    49.9999 Msps

terminate called after throwing an instance of 'uhd::usb_error'
  what():  RuntimeError: USBError -11: usb rx6 submit failed: LIBUSB_ERROR_NO_MEM
Aborted (core dumped)

shell 2 中出现错误(我们刚刚尝试启动第二个 USRP 流):

Creating the usrp device with: num_recv_frames=1900,serial=0000002...
[INFO] [UHD] linux; GNU C++ version 12.4.0; Boost_108600; UHD_4.7.0.HEAD-release
[INFO] [B200] Detected Device: B200
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Detected bad USB state; resetting.
[INFO] [B200] Detected Device: B200
[INFO] [B200] Operating over USB 3.
Error: RuntimeError: USBError -11: usb rx6 submit failed: LIBUSB_ERROR_NO_MEM

知道我在这里做错了什么吗?如何使两个流并行运行?

更新: 有趣的发现:如果我以默认的 num_recv_frames 运行两个流,它就可以正常工作。如果我以自定义 num_recv_frames=1900 运行一个流,并以默认 num_recv_frames 运行第二个流,它也可以工作。但是,如果我使用自定义 num_recv_frames 运行两者,它就会崩溃! (不幸的是,我需要高自定义 num_recv_frames 才能以如此高的采样率获得可靠的流传输,以免出现溢出)有什么想法吗?

libusb gnuradio gnuradio-companion usrp uhd
1个回答
0
投票

也许你可以尝试增加 /sys/module/usbcore/parameters/usbfs_memory_mb 中的内存

© www.soinside.com 2019 - 2024. All rights reserved.