0

我正在通过 Debian (4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1) VM 使用 USRP N210,并很快运行到处理溢出。当其中一个 CPU 负载达到 100% 时,GnuRadio-Companion 正在打印字母“D”。这是通过增加低通滤波器的抽头数来测试的,如图所示,采样率为 6.25 MHz。

我已经完成了关于如何调整 USRP 的所有说明,除了 CPU 调速器。这是因为由于 cpufreq-info 报告的缺少驱动程序,我无法执行此操作。确切的输出是

此 CPU 上没有或未知的 cpufreq 驱动程序处于活动状态。

lscpu 命令的输出也显示在图片中。

有谁知道我该如何解决这个问题?或者 GnuRadio 只是不完全支持虚拟机?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

1

当您的 CPU 跟不上时丢弃数据包是意料之中的。这是它的直接影响。

问题很可能不在您的 VM 内,而与虚拟机有关。

虚拟化增加了一些开销,虽然现代虚拟化器已经非常擅长它,但您要求这样做

  • 具有硬实时要求的应用程序运行
  • 在高网络负载下。

这可能会占用您的 VM 甚至不知道的主机端 CPU 周期——您的 100% 比看起来要少!

因此,首先,请确保您的虚拟机尽可能少地处理网络流量。特别是,没有 NAT,但最好的硬件桥接。

那么,调频 FIR 绝对不是性能最高的模块。尝试使用旋转器,然后使用 FFT FIR。在您的情况下,让 FIR 抽取 2 倍——您已经完成了足够的低通滤波来降低采样率而不会出现混叠。

最后,使用更新版本的 GNU Radio 可能是个好主意。在 Debian 测试中,apt 将为您提供 3.8 发行系列 GNU Radio。

于 2020-01-15T19:15:25.717 回答