首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查是否已在BIOS/UEFI中启用VT-D / IOMMU

检查是否已在BIOS/UEFI中启用VT-D / IOMMU
EN

Stack Overflow用户
提问于 2018-07-10 17:44:19
回答 3查看 27.2K关注 0票数 11

要检查是否在BIOS/UEFI中启用了Intel的VT-X或AMD的AMD-V,我使用:

代码语言:javascript
运行
复制
if systool -m kvm_amd -v &> /dev/null || systool -m kvm_intel -v &> /dev/null ; then
    echo "AMD-V / VT-X is enabled in the BIOS/UEFI."
else
    echo "AMD-V / VT-X is not enabled in the BIOS/UEFI"
fi

我找不到一种方法来检查英特尔的VT-D或AMD的IOMMU是否在BIOS/UEFI中启用。

我需要一种方法来检测它是否被启用,而不需要设置iommu内核参数(iommu=1amd_iommu=onintel_iommu=on)。

我的一个想法是使用rdmsr,但我不确定这是否可行。我最初想使用sudo rdmsr 0x3A而不是systool,但它不适合我。它总是报告:

代码语言:javascript
运行
复制
rdmsr: CPU 0 cannot read MSR 0x0000003a

rdmsrmsr-tools btw的一部分。并且需要首先加载msr内核模块(sudo modprobe msr)才能使用。

据称,sudo rdmsr 0x3A应该返回35,以指示VT-X/AMD-V已启用...

EN

回答 3

Stack Overflow用户

发布于 2018-07-10 21:08:16

如果启用了VT-d,Linux将在启动时配置DMA重新映射。要找到它,最简单的方法是在dmesg中查找DMAR条目。如果您没有看到错误,那么VT-d是启用的。

例如:

代码语言:javascript
运行
复制
[root@localhost ~]# dmesg | grep DMAR
[    0.000000] ACPI: DMAR 0x00000000BBECB000 0000A8 (v01 LENOVO TP-R0D   00000930 PTEC 00000002)
[    0.001000] DMAR: Host address width 39
[    0.001000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.001000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[    0.001000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.001000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.001000] DMAR: RMRR base: 0x000000bbdd8000 end: 0x000000bbdf7fff
[    0.001000] DMAR: RMRR base: 0x000000bd000000 end: 0x000000bf7fffff
[    0.001000] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.001000] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.001000] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.002000] DMAR-IR: Enabled IRQ remapping in x2apic mode

x2apic选择退出的另一个例子:

代码语言:javascript
运行
复制
[root@localhost ~]# dmesg | grep DMAR
[    0.000000] ACPI: DMAR 0000000079a20300 000C4 (v01 SUPERM SMCI--MB 00000001 INTL 20091013)
[    0.106389] DMAR: Host address width 46
[    0.106392] DMAR: DRHD base: 0x000000fbffc000 flags: 0x1
[    0.106400] DMAR: dmar0: reg_base_addr fbffc000 ver 1:0 cap 8d2078c106f0466 ecap f020de
[    0.106402] DMAR: RMRR base: 0x0000007bb24000 end: 0x0000007bb32fff
[    0.106404] DMAR: ATSR flags: 0x0
[    0.106407] DMAR: RHSA base: 0x000000fbffc000 proximity domain: 0x0
[    0.106409] DMAR-IR: IOAPIC id 8 under DRHD base  0xfbffc000 IOMMU 0
[    0.106411] DMAR-IR: HPET id 0 under DRHD base 0xfbffc000
[    0.106413] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
[    0.106414] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
[    0.106591] DMAR-IR: Enabled IRQ remapping in xapic mode

无论哪种方式,你都在寻找最后一行,DMAR-IR: Enabled IRQ remapping in <whichever> mode

在禁用了VT-d的系统上,您将看到一条错误消息,或者什么也看不到。

代码语言:javascript
运行
复制
[root@localhost ~]# dmesg | grep DMAR
[root@localhost ~]#
票数 13
EN

Stack Overflow用户

发布于 2018-07-11 16:34:06

我刚刚发现了另一种即使没有设置iommu内核参数也可以工作的方法:

代码语言:javascript
运行
复制
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
票数 5
EN

Stack Overflow用户

发布于 2018-07-10 17:57:03

基于Jo-Erlend Schinstad的回答:

安装cpu-checker

代码语言:javascript
运行
复制
$ sudo apt-get update
$ sudo apt-get install cpu-checker

然后检查:

代码语言:javascript
运行
复制
$ kvm-ok

如果启用了CPU,您应该会看到类似以下内容:

代码语言:javascript
运行
复制
INFO: /dev/kvm exists
KVM acceleration can be used

否则,您可能会看到类似以下内容:

代码语言:javascript
运行
复制
INFO: /dev/kvm does not exist
HINT:   sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
      and then hard poweroff/poweron your system
KVM acceleration can NOT be used
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51261999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档