当我启动系统时,我收到以下消息:
[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!
- 什么是“卡尔加里”?
- 什么是“里奥格兰德表”?
- 为什么它需要位于 EBDA 中,并且鉴于它确实存在 - 为什么我的内核没有这样做?
- 这种失败的后果是什么?
我在 MSI Z170 PRO GAMING 主板上的 i5-7600K CPU 上运行 Devuan 3 (Beowulf)。
Calgary似乎是IOMMU家族,用于大多数 IBM X 系列(即 X86_64)刀片和主板 - 截至 2008 年(参见此处)。Rio Grande 表是/是扩展 BIOS 数据区中的一个信息表,它告诉操作系统在哪里可以找到 Calgary IOMMU(感谢@telcoM)。
由于您,OP,没有使用这样的机器,您可能会考虑尝试在内核编译参数中禁用对它的搜索。正如@jmullee 提醒我们的那样,以下是相关的 Linux 内核配置参数:
您可以将这些从 更改
y
为n
。如果在重新编译时从内核配置中删除该选项,则在引导时搜索要连接的 USB 设备和内存映射将被禁用。
因此,如果您在启动时使用某些 IBM 主板(例如我的 T500 笔记本电脑上的主板)连接到其他设备(USB 驱动器、带有内存网络堆栈的屏幕等),它不会被内核映射,您必须手动进行。
如果您将某些恶意硬件放在 USB 上或通过 USB 连接到其上的恶意网络,则只能是安全问题。否则,将内核配置保留为当前默认值是无害的。
IBM Rio Grande 和等效的 Windows 内核配置功能很可能已经被不法分子在 Windows、基于 Linux 内核的发行版上使用。谁知道?
这些是相关的内核源配置选项
CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y