“卡尔加里:无法在 EBDA 中找到 Rio Grande 表”<-这是什么意思?

ein*_*lum 6 boot hardware bios dmesg

当我启动我的系统时,我收到以下消息:

[Sat Oct 26 20:34:25 2019] Calgary: detecting Calgary via BIOS EBDA area
[Sat Oct 26 20:34:25 2019] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
Run Code Online (Sandbox Code Playgroud)
  • 什么是“卡尔加里”?
  • 什么是“里奥格兰德表”?
  • 为什么它需要位于 EBDA 中,并且鉴于它确实如此 - 为什么我的内核没有这样做?
  • 这次失败的后果是什么?

我在 MSI Z170 PRO GAMING 主板上的 i5-7600K CPU 上运行 Devuan 3 (Beowulf)。

ein*_*lum 2

Calgary似乎是IOMMU的一个系列,用于大多数 IBM X 系列(即 X86_64)刀片和主板 - 截至 2008 年(请参阅此处)。Rio Grande 表曾经是/现在是扩展 BIOS 数据区域中的一个信息表,它告诉操作系统在哪里可以找到卡尔加里 IOMMU(感谢 @telcoM)。

由于您,OP,没有使用这样的机器,您可能会考虑尝试在内核编译参数中禁用对它的搜索。正如 @jmullee 提醒我们的,以下是相关的 Linux 内核配置参数:

CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
Run Code Online (Sandbox Code Playgroud)

您可以将它们从 更改yn