X

Linux 遇到 DMAR: DRHD: handling fault status reg 解法

Debian Linux 升級到 bullseye ,重新開機後,dmesg 就看到下述訊息不斷:

batou kernel: DMAR: DRHD: handling fault status reg 3 batou kernel: DMAR: [DMA Read] Request device [05:00.0] fault addr fffe0000 [fault reason 06] PTE Read access is not set

要怎麼解決呢?

Linux 遇到 DMAR: DRHD: handling fault status reg 解法

遇到 DMAR: DRHD: handling fault status reg 3 的問題,解法於開機的參數加上 intel_iommu=off,再來重新開機即可。

步驟如下:

  1. vim /boot/grub/grub.cfg # 最後面加上 intel_iommu=off
  2. 找到此行:linux /boot/vmlinuz-5.10.0-21-amd64 root=UUID=f4994a48-a4ec-40c4-982c-dba7046fe8be ro quiet intel_iommu=off
  3. 存擋並重新開機即可

上述是測試暫時解法,每次更新 Kernel Grub 重新 build 就會需要補上去,下述是硬體不變下的長久解法:

原因:

DMAR: DRHD: handling fault status reg 3:這個訊息是舊型的 PCI 裝置與現代 IOMMU (VT-d) 的 DMA 對應機制不相容,導致系統拋出 DMAR 錯誤

長久解法:

  • 將 啟用 IOMMU 並設為 Pass-through 模式(intel_iommu=on iommu=pt)
  • 若不行就是直接關掉(intel_iommu=off),所以下述解法可先測試1再測試2:
  1. vim /etc/default/grub
    • GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" # quiet 改成這樣
    • 上述不行,就改成下述:
    • GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=off"
  2. sudo update-grub
  3. sudo reboot

相關網頁

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post