USRP : 如何解决"Timeout while streaming"错误



我正试图在fedora 34上使用uhd 4.0.0从USRP X310中捕获样本。我一直对";超时";即时中断流媒体,但我找不到任何原因,也没有在互联网上得到任何帮助。。。我给你下面的详细代码。

谢谢你的帮助!

附言:我和有同样的结果/rx_samples_to_file,不带参数

[user@computer examples]$ ./rx_samples_to_file --freq=1000000000 --bw=500000 --rate 200000  --duration=0.5 --file=x310_test.bin
Creating the usrp device with: ...
[INFO] [UHD] linux; GNU C++ version 11.0.1 20210324 (Red Hat 11.0.1-0); Boost_107500; UHD_4.0.0.0-0-unknown
[INFO] [X300] X300 initialization sequence...
[INFO] [X300] Maximum frame size: 1472 bytes.
[INFO] [X300] Radio 1x clock: 200 MHz
Using Device: Single USRP:
Device: X-Series Device
Mboard 0: X310
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: TwinRX RX0
RX Channel: 1
RX DSP: 1
RX Dboard: A
RX Subdev: TwinRX RX1
RX Channel: 2
RX DSP: 2
RX Dboard: B
RX Subdev: Unknown (0xffff) - 0
TX Channel: 0
TX DSP: 0
TX Dboard: B
TX Subdev: Unknown (0xffff) - 0
Setting RX Rate: 0.200000 Msps...
Actual RX Rate: 0.200000 Msps...
Setting RX Freq: 1000.000000 MHz...
Setting RX LO Offset: 0.000000 MHz...
Actual RX Freq: 1000.000000 MHz...
Setting RX Bandwidth: 0.500000 MHz...
Actual RX Bandwidth: 0.500000 MHz...
Waiting for "lo_locked": ++++++++++ locked.
Press Ctrl + C to stop streaming...
Timeout while streaming
Done!

我也尝试过基准测试功能,但最终还是一样:

编辑:我停止了firewalld.services

[usr@computer examples]$ ./benchmark_rate --args="type=x300,addr=192.168.10.2,serial=320179E" --channels 0,1 --rx_rate 2e6 --duration 5
[INFO] [UHD] linux; GNU C++ version 11.0.1 20210324 (Red Hat 11.0.1-0); Boost_107500; UHD_4.0.0.0-0-unknown
[00:00:00.000390] Creating the usrp device with: type=x300,addr=192.168.10.2,serial=320179E...
[INFO] [X300] X300 initialization sequence...
[INFO] [X300] Maximum frame size: 1472 bytes.
[INFO] [X300] Radio 1x clock: 200 MHz
[WARNING] [RFNOC::GRAPH] One or more blocks timed out during flush!
Using Device: Single USRP:
Device: X-Series Device
Mboard 0: X310
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: TwinRX RX0
RX Channel: 1
RX DSP: 1
RX Dboard: A
RX Subdev: TwinRX RX1
RX Channel: 2
RX DSP: 2
RX Dboard: B
RX Subdev: Unknown (0xffff) - 0
TX Channel: 0
TX DSP: 0
TX Dboard: B
TX Subdev: Unknown (0xffff) - 0
[00:00:03.664016092] Setting device timestamp to 0...
[INFO] [MULTI_USRP]     1) catch time transition at pps edge
[INFO] [MULTI_USRP]     2) set times next pps (synchronously)
[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.
[00:00:04.934122870] Testing receive rate 2.000000 Msps on 2 channels
[00:00:05.85737158] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.185992285] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.286246070] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.386497035] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.486745394] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.587001598] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.687253152] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.787508452] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.887760249] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:05.988013669] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.88264700] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.188520367] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.288770879] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.389026502] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.489276462] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.589533078] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.689791950] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.790041080] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.890288133] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:06.990543703] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.90798580] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.191062617] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.291319218] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.391574410] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.491830205] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.592097982] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.692351705] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.792602183] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.892874187] Receiver error: ERROR_CODE_TIMEOUT, continuing...
[00:00:07.993127880] Receiver error: ERROR_CODE_TIMEOUT, continuing...
O[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
O[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
O[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
O[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
O[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
O[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
OO[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1
[00:00:10.123329222] Benchmark complete.

Benchmark rate summary:
Num received samples:     0
Num dropped samples:      0
Num overruns detected:    20
Num transmitted samples:  0
Num sequence errors (Tx): 0
Num sequence errors (Rx): 0
Num underruns detected:   0
Num late commands:        0
Num timeouts (Tx):        0
Num timeouts (Rx):        30

Done!

我知道这个主题有点旧,但经过几天的故障排除,我不得不分享我是如何在不必购买SFP+适配器的情况下修复它的。

在我的案例中,我有一种方法来检查USRP的板载FPGA的健康状况和状态。但是,在python桌面端,我们实际上过于频繁地检查状态,这导致了CPU问题,导致超时和性能损失:Linux几乎可以使用。

我只需要在两张支票之间加上一个0.01秒的临时时间,现在它就像一个没有任何问题的符咒。我想SFP+模块允许更高的速度,这使得0.01秒的临时性变得毫无用处,因为我们不再是cpu瓶颈。但它仍然可以在更高的速度下发生。

最常见的原因是您的电脑过滤掉了包含数据的网络数据包。例如,这可能是防火墙规则,或者配置奇怪的MTU。

除此之外:

  • --bw=500000:没有一个USRP硬件的前端滤波器可以做得那么窄。它通常也不会有任何帮助,所以你很可能根本不想具体说明这一点
  • --rx_rate 2e5这实际上是可能的采样率的最低限度。这很少有用,你可能会看到数字滤波器的推出。建议:现代电脑速度快。使用1e6作为速率,并在软件中过滤和抽取到您需要的任何速率
  • enable_tx_dual_eth=1省略了这一点。(当它重新配置网络时,这也可能解决你的问题(当你的USRP甚至没有TX子板时,我看不出这有什么意义

相关内容

  • 没有找到相关文章

最新更新