在 QEMU 上安装
固件
标准 EFI 固件
自下载页面下载如下二进制:
RISCV_VIRT_CODE.fd
RISCV_VIRT_VARS.fd
或者根据官方文档本地自行编译最新 EDK2 OVMF 固件。
具备 Penglai TEE 支持的 EFI 固件
自下载页面下载如下二进制:
fw_dynamic_oe_2403_penglai.bin
QEMU 版本
为了支持 UEFI ,需使用 8.1 版本以上的 QEMU。
编译时需要安装 libslirp 依赖库(包名根据发行版不同而不同,openEuler 为 libslirp-devel)并添加 --enable-slirp 参数。
~$ 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-riscv64.qcow2.xz
)
~$ ls *.qcow2.xz
openEuler-24.03-LTS-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 虚拟硬盘文件,以避免启动脚本识别出错。
~$ qemu-img create -f qcow2 qemu.qcow2 40G
文档捉虫