type
status
date
slug
summary
tags
category
icon
password
URL
BIOS 配置
在 BIOS 中,需要启用 Intel VT 和 VT-d。VT 是 Virtualization Technology 的缩写,而 VT-d 是 Virtualization Technology for Directed I/O 的缩写。后者正是 Intel IOMMU 的别名。
.config 文件配置
CONFIG_INTEL_IOMMU=y,是启用 Intel IOMMU 的必要非充分条件。这一配置目的在于告诉内核在启动时,要将 Intel IOMMU 的检测函数 detect_intel_iommu() 加载到 IOMMU table 中。但是,加载并不意味着使用——只有按下一节的方式配置启动参数后,Intel IOMMU 才会被初始化。
启动参数配置
设置以下两个启动参数,以显式指定 Intel IOMMU 作为 IOMMU 的实现方式:
进行完以上配置后,内核将会启用 Intel IOMMU,作为 IOMMU 的实现方式,同时禁用 SWIOTLB——严格来说,“禁用 SWIOTLB” 只是一个笼统的说法,具体实现过程比较复杂,下一篇文章将予以详细介绍。
确认 Intel IOMMU 已启用
确认内核已启用 Intel IOMMU 的方法很简单。在控制台执行如下命令:
如果看到类似下图中以 “DMAR” 开头的一系列日志信息,就表明 Intel IOMMU 已启用。

下一篇文章将结合代码,介绍 Intel IOMMU 的初始化流程。