在 MacBook Air 5.1 上的 Arch Linux 上,我收到错误消息
DMAR-IR: [Firmware Bug]: ioapic 2 has no mapping iommu,
interrupt remapping will be disabled
开机时。我看不出有什么问题,但这是什么?是否需要修复?如果需要如何修复?
答案1
一般来说:此功能允许内核替换 BIOS 创建的重映射表。
如果是系统固件错误,Arch 的更新无法修复它。您需要通过刷新来更新系统固件 (BIOS/UEFI)。我个人不建议这样做。仅当您确实知道如何刷新硬件时才应该执行此操作。
“软”方式是在内核启动参数中禁用中断重映射。intremap=off
禁用内核中断重新映射,这可能指向有问题的 BIOS 或硬件。
首先看看你的配置cat /proc/cmdline
。复制它以便稍后查看更改。现在/etc/default/grub
通过将其复制到您想要的方向来备份您的文件。要使更改在重新启动后保持不变,请编辑/etc/default/grub
内核选项并将其附加到该GRUB_CMDLINE_LINUX_DEFAULT
行。就你而言,它是intremap=off
(将其放入“”)。quiet
如果里面有的话你可以删除。保存并退出。
现在重新生成 grub.cfg 文件(它是使用 中写入的参数生成的/etc/default/grub
):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重新启动系统,错误就会消失。使用 来查看您的配置cat /proc/cmdline
,您的更改应该是可见的。
答案2
此错误消息并不表示故障情况,即它不会导致操作问题。基本上,Linux 假定当存在 IO-APIC 和 IOMMU 时,必须支持中断重映射。然而,在此硬件上它不受支持 - IO-APIC 具有 ID 2,但 IOMMU 仅匹配 ID 0。Linux 注意到这种情况,正确禁用中断重新映射,并将此通知打印到 dmesg。