---
title: 使能机密设备直通
description: "TEE侧机密虚拟机支持PCIe设备直通，包括网卡、磁盘、GPU卡等设备。本章节主要介绍如何使能IO设备直通机密虚拟机，实现IO性能大幅提升。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/250rc2/confidt/kunpengtee_16_0031.html
sourcePath: /source/zh/kunpengboostkithistory/250rc2/confidt/kunpengtee_16_0031.html
indexId: f660fcd3de315270d2ea6bc8226e0e5e0c92ea9eec2e5c66567abc5a6cf99c3872
---
# 使能机密设备直通

TEE侧机密虚拟机支持PCIe设备直通，包括网卡、磁盘、GPU卡等设备。本章节主要介绍如何使能IO设备直通机密虚拟机，实现IO性能大幅提升。

#### 约束与限制

- 当前virtCCA设备直通不支持stage1 SMMU。
- 当前virtCCA设备直通功能暂不支持设备认证。


1. 使能virtCCA和SMMU安全态初始化。

  a. 打开grub.cfg文件。

```
vim /boot/efi/EFI/openEuler/grub.cfg
```


  b. 按“i”进入编辑模式，在HOST OS对应的位置添加如下参数。

```
virtcca_cvm_host=1 arm_smmu_v3.disable_ecmdq=1 vfio_pci.disable_idle_d3=1
```


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
2. BIOS使能SMMU。

  a. 请参见《    TaiShan 服务器 BIOS 参数参考（鲲鹏920处理器）(https://support.huawei.com/enterprise/zh/doc/EDOC1100088653/a77cbc34)
》中“进入BIOS界面”的相关内容，进入BIOS界面。
  b. 依次进入“Advanced > MISC Config > Support Smmu”。
  c. 将“Support Smmu”设置为“Enabled”，按“F10”保存退出。
3. 编译GUEST OS。

  a. 参考编译Guest Kernel生成配置文件.config后，加入nvme盘和网卡驱动相关的配置。开启BLK_DEV_NVME、NVME_CORE、VXLAN、MLXFW、IOMMUFD、VFIO、MLX5_VFIO_PCI和MLX5_CORE等编译选项。

    1. 执行以下命令打开menuconfig。

```
make menuconfig
```


    2. 在menuconfig界面输入"/"跳转至搜索界面，在搜索界面输入要开启的编译选项后按Enter键进行搜索。
    3. 搜索完成后，输入1打开依赖选项（此案例中的依赖选项为NVME_CORE）。
    4. 按“space”键将NVME_CORE的模式由"M"设置为"*"。设置完成后便开启了NVME_CORE。
    5. 按两次“Esc”键退出至上一级。
    6. 打开依赖选项后开启了BLK_DEV_NVME。
    7. 打开所有的编译选项，保存设置后，使用如下命令编译Image。其中Image生成目录为“arch/arm64/boot/Image”。

```
make Image -j64
```


4. 执行如下命令查询直通设备的domain和BDF号。

```
lspci -tv
```


  该案例中domain为0000，BDF为17:00.0。

5. 在xml文件中添加直通设备信息，将“hostdev”的内容拷贝至“dev”内，在“source”内填入设备对应的domain和BDF号。

```
<devices>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x17' slot='0x00' function='0x0'/>
</source>
</hostdev>
</devices>
```


6. 在虚拟机中执行如下命令查询直通设备信息。

```
lspci -tv
```
