在 QEMU 上安装

固件

标准 EFI 固件

自下载页面下载如下二进制:

text
RISCV_VIRT_CODE.fd
RISCV_VIRT_VARS.fd

或者根据《官方文档》本地自行编译最新 EDK2 OVMF 固件。

具备 Penglai TEE 支持的 EFI 固件

自下载页面下载如下二进制:

text
fw_dynamic_oe_2403_penglai.bin

QEMU 版本

为了支持 UEFI ,需使用 8.1 版本以上的 QEMU。

编译时需要安装 libslirp 依赖库(包名根据发行版不同而不同,openEuler 为 libslirp-devel)并添加 --enable-slirp 参数。

text
~$ qemu-system-riscv64 --version
QEMU emulator version 8.2.2
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers

qcow2 镜像

获取ISO文件(如 openEuler-24.03-LTS-SP1-riscv64.qcow2.xz

bash
~$ ls *.qcow2.xz
openEuler-24.03-LTS-SP1-riscv64.qcow2.xz

获取启动脚本

自下载页面获取启动脚本

  • start_vm.sh: 默认脚本,需要手动安装桌面。
  • start_vm_penglai.sh:蓬莱 TEE 功能支持脚本。

脚本参数

  • ssh_port:本地 SSH 转发端口,默认为 12055。
  • vcpu:QEMU 执行时线程数量,默认为 8 核心,可随需要调整。
  • memory:QEMU 执行时分配内容数量,默认为 8GiB,可随需要调整。
  • fw: 为启动固件 payload。
  • drive:虚拟磁盘路径,可随需要调整。
  • bios(可选): 启动固件,可以用来装载使能了 penglai TEE 的固件。

创建虚拟硬盘文件

创建新的虚拟硬盘文件,如下列例子中虚拟硬盘的大小为 40GiB。

请勿使用先前存有数据的 qcow2 虚拟硬盘文件,以避免启动过程出现预期之外的情况。

请确保当前目录中有且仅有一个 qcow2 虚拟硬盘文件,以避免启动脚本识别出错。

bash
~$ qemu-img create -f qcow2 qemu.qcow2 40G