> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 创建辅助虚拟机

本节提供使用 Qualcomm Linux 构建系统创建虚拟机（VM）镜像的步骤。Guest VM 的 rootfs 和 Guest VM 内核与主机相同。

Qualcomm Linux 支持带或不带 KVM 的虚拟机监视器。目前，Qualcomm Linux 仅支持 [QEMU](https://www.qemu.org/) 作为 VM 监视器。

该步骤提供以下内容：

> * 设置 KVM 的命令。
> * 使用 QEMU 启动 Guest VM 的命令。

## **设置开发计算机**

要设置开发计算机，请按以下步骤操作：

1. 要设置构建，请参阅[构建 Qualcomm Linux](https://dragonwingdocs.qualcomm.com/Key-Documents/Yocto-Guide/build-qualcomm-linux#build-qualcomm-linux)。
   <Note>
     所有 Qualcomm Linux 发行版的 `DISTRO_FEATURES` 中默认已启用 `kvm`。无需单独的 KVM 发行版配置。KVM 硬件加速在 `MACHINE_FEATURES` 中包含 `kvm` 的机器上可用，目前为：`iq-9075-evk` 和 `iq-8275-evk`。在其他机器上，QEMU 在没有 KVM 加速的情况下运行。
   </Note>
2. 在构建目录的 `conf/local.conf` 中，将 `virtualization` 追加到 `DISTRO_FEATURES`：
   ```text theme={null}
   DISTRO_FEATURES:append = " virtualization"
   ```
3. 构建 `qcom-console-image` 或 `qcom-multimedia-image`：
   ```text theme={null}
   bitbake qcom-console-image
   ```

## **启动 Guest VM**

本节介绍如何在 Qualcomm Linux 机器上使用 QEMU 启动 Guest VM，包括使用和不使用基于内核的虚拟机（KVM）加速两种方式。

前提条件

* 机器上有可用的 QEMU。
* Guest VM 使用主机的根文件系统镜像。
* Guest VM 内核镜像位于 `/boot/Image`。

1. 将主机的根文件系统镜像复制到设备上，并将其用作 Guest VM 的根文件系统。
   **注意**
   如果为 `qcs9100-ride-sx` 平台构建了 `qcom-console-image`，则 Guest VM 的根文件系统镜像位于：`<build dir>/tmp/deploy/images/qcs9100-ride-sx/qcom-console-image-qcs9100-ride-sx.rootfs.qcomflash/rootfs.img`。
2. 启动 Guest VM。
   * 在不使用 KVM 加速的情况下启动 Guest VM：
     运行以下命令，在不使用 KVM 加速的情况下使用 QEMU 启动 Guest VM：
     > ```text theme={null}
     > qemu-system-aarch64 -M virt  \
     >                     -cpu cortex-a76  \
     >                     -m 4G \
     >                     -kernel /boot/Image \
     >                     -drive file=rootfs.img,if=virtio,format=raw \
     >                     -append "root=/dev/vda" \
     >                     -accel tcg \
     >                     -smp 4 \
     >                     -nographic
     > ```
   * 使用 KVM 启动 Guest VM：
     <Note>
       * `DISTRO_FEATURES` 中默认已启用 KVM。机器的 `MACHINE_FEATURES` 中必须包含 `kvm`（例如 `iq-9075-evk`、`iq-8275-evk`）。
     </Note>
     * 机器上必须存在 `/dev/kvm` 设备节点。
     * 验证 KVM 是否可用：
       ```text theme={null}
       ls /dev/kvm
       ```
     * 运行以下命令，在 QEMU 中使用 KVM 加速启动 Guest VM。
       ```text theme={null}
       qemu-system-aarch64 -M virt \
                           -m 4G \
                           -kernel /boot/Image \
                           -drive file=rootfs.img,if=virtio,format=raw \
                           -append "root=/dev/vda" \
                           -enable-kvm \
                           -cpu host \
                           --enable-kvm \
                           -smp 4 \
                           -nographic
       ```
   **注意**
   * `rootfs.img` 文件位于当前工作目录中。要使用其他位置，请相应地更新 `-drive` 选项。例如：`-drivefile=/mydir/rootfs.img,if=virtio,format=raw`
   * Guest VM 内核通过 `-kernel /boot/Image` 选项提供。

有关更多信息，请参阅[启用虚拟化](https://dragonwingdocs.qualcomm.com/System/Kernel/enable-virtualization)。

## **后续步骤**

* 有关 Docker 容器支持，请参阅[运行 Docker 容器](./run-docker-containers)。
* 有关 Kubernetes 启用，请参阅[使用 Qualcomm Linux 设置 Kubernetes](./set-up-kubernetes-with-qualcomm-linux)。
  所有 Qualcomm Linux 发行版的 `DISTRO_FEATURES` 中默认已启用 `kvm`。无需单独的 KVM 发行版配置。KVM 硬件加速在 `MACHINE_FEATURES` 中包含 `kvm` 的机器上可用，目前为：`iq-9075-evk` 和 `iq-8275-evk`。在其他机器上，QEMU 在没有 KVM 加速的情况下运行。
