DMAR 固件错误。BIOS坏了?

And*_*lan 4 firmware bios

刚刚加载 Ubuntu 时,我在笔记本电脑屏幕上看到以下错误消息,但我能够毫无问题地登录。你认为这里可能出了什么问题?

DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR [0x000000008d800000-0x000000008fffffff], contact BIOS vendor for fixes
DMAR: [Firmware Bug]: Your BIOS is broken; bad RMRR [0x000000008d800000-0x000000008fffffff]
Run Code Online (Sandbox Code Playgroud)

我在内核日志中找到了更多详细信息:

BIOS vendor: INSYDE Corp.; Ver: 5.00; Product Version: PSLZAE-00R00STE
DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1 
DMAR-IR: HPET id 0 under DRHD base 0xfed91000
DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
DMAR-IR: Enabled IRQ remapping in xapic mode
x2apic: IRQ remapping doesn't support X2APIC mode
Run Code Online (Sandbox Code Playgroud)

Rin*_*ind 5

DMAR 固件错误。BIOS坏了?

是的,是 BIOS 提供了不正确的内核信息(即不遵循规范)。

DMAR 主要用于 GPU 直通到 Windows 虚拟机。如果您不使用它,您可以忽略此错误,否则您将需要寻找 BIOS 更新。

使用 'intremap=no_x2apic_optout' 覆盖 BIOS 设置。

使用它,错误将被忽略,不再显示。改变GRUB_CMDLINE_LINUX_DEFAULT

sudo vi /etc/default/grub
Run Code Online (Sandbox Code Playgroud)
  • 添加intremap=no_x2apic_optout nox2apic.
  • 添加acpi=off如果系统开始抱怨ACPI。

编辑后做

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

并重新启动。

  • 不太可能。这是一个自 2010 年左右以来就存在的错误,一直被认为是良性的。但问题很可能是 ACPI,而不是 DMAR。ACPI 用于休眠和挂起。如果出现问题,它会杀死你的桌面。这是有关它的论文:https://software.intel.com/content/dam/develop/external/us/en/documents/intel-whitepaper-using-iommu-for-dma-protection-in-uefi.pdf :) 看看 `acpi=off` 是否有帮助。 (2认同)