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,再來重新開機即可。
步驟如下:
- vim /boot/grub/grub.cfg # 最後面加上 intel_iommu=off
- 找到此行:linux /boot/vmlinuz-5.10.0-21-amd64 root=UUID=f4994a48-a4ec-40c4-982c-dba7046fe8be ro quiet intel_iommu=off
- 存擋並重新開機即可
上述是測試暫時解法,每次更新 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:
- vim /etc/default/grub
- GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" # quiet 改成這樣
- 上述不行,就改成下述:
- GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=off"
- sudo update-grub
- sudo reboot