代码之家  ›  专栏  ›  技术社区  ›  Forivin

检查主板/BIOS/UEFI和CPU是否支持VT-D/IOMMU

  •  0
  • Forivin  · 技术社区  · 6 年前

    我发现我可以使用以下代码确定是否启用了VT-D/IOMMU:

    if compgen -G "/sys/kernel/iommu_groups/*/devices/*" > /dev/null; then
        echo "AMD's IOMMU / Intel's VT-D is enabled in the BIOS/UEFI."
    else
        echo "AMD's IOMMU / Intel's VT-D is not enabled in the BIOS/UEFI"
    fi
    

    但在没有启用的情况下,我无法找到一种方法来检查系统是否首先支持该选项。

    我知道Intel/AMD已经记录了他们的哪些CPU支持VT-D/IOMMU,但是我想知道整个系统(主板+UEFI/BIOS+CPU+芯片组)是否支持这个功能,因为我的笔记本电脑有一个支持它的CPU,但是UEFI中没有启用它的选项。

    1 回复  |  直到 6 年前
        1
  •  2
  •   prl    6 年前

    检测对Intel VT-d的支持的唯一方法是通过ACPI表DMAR的存在。如果在BIOS中禁用了VT-d,则此表将不存在,并且无法确定是否可以启用该功能。