飞腾派
本文详细介绍如何在飞腾派开发板上部署和运行 AxVisor 虚拟化系统,包括 AxVisor + Linux 客户机、AxVisor + ArceOS 客户机以及 AxVisor + 多客户机等场景。
快速体验:如果您不想自己编译构建,我们也提供了预构建的固件镜像,可以直接下载体验。请访问AxVisor 官方网站获取适用于飞腾派的预构建固件,并直接跳转到烧录到 SD 卡章节
开发环境
AxVisor 及飞腾派的 SDK 仅支持在 Linux 系统中进行开发。本文中的构建及部署环境均采用 Ubuntu 24.04 系统作为开发环境。
构建准备
准备 AxVisor 源码
首先,使用 git clone 命令获取 AxVisor 的源代码并创建工作目录:
git clone https://github.com/arceos-hypervisor/axvisor.git
cd axvisor
# 创建工作目录
mkdir -p tmp/{configs,images}
准备设备树文件
设备树文件可以通过在开发板上运行 Linux 系统导出,也可以下载项目提供的设备树文件使用。
项目提供的 Linux 镜像文件夹中包含设备树文件,可直接下载到 tmp/images 目录:
# 下载包含设备树的 Linux 镜像
cargo xtask image download phytiumpi_linux --output-dir tmp/images
准备客户机镜像
为了便于验证 AxVisor 的功能,AxVisor 项目提供了预构建的客户机镜像。AxVisor 构建系统集成了客户机镜像管理功能,使用 cargo xtask image 相关命令即可查看及下载客户机镜像:
# 下载 ArceOS 客户机镜像
cargo xtask image download phytiumpi_arceos --output-dir tmp/images
# 下载 Linux 客户机镜像
cargo xtask image download phytiumpi_linux --output-dir tmp/images
# 列出所有可用镜像
cargo xtask image ls
AxVisor 所支持的客户机镜像的构建脚本和构建产物可以在 axvisor-guest 仓库中找到。
部署到开发板
部署方式概述
AxVisor 支持两种客户机加载方式:内存加载部署(编译时将客户机镜像打包进 AxVisor 二进制文件,启动时自动从内存加载)和文件系统加载部署(客户机镜像存放在开发板文件系统中,运行时动态从文件系统加载)。本文档采用文件系统加载部署方式进行介绍。
在此部署方式下,客户机配置文件需设置 image_location = "fs",.build.toml 中的 vm_configs 字段设置为空数组 [],并启用文件系统相关特性。
重要说明:飞腾固件以及 U-Boot 并不开源,Phytium-Pi-OS 中默认以二进制文件的形式提供飞腾固件 + U-Boot 固件组合体
fip-all.bin,fip-all.bin会被直接写入最终 IMAGE 镜像的开头位置。整个部署操作要求在飞腾派的 SDK 目录中执行相关命令,以便直接使用 SDK 生成的各种镜像和工具。
部署步骤
一、前期准备
1. 准备客户机配置文件
复制客户机配置文件模板到工作目录:
# 复制 ArceOS 客户机配置文件
cp configs/vms/arceos-aarch64-e2000_smp1.toml tmp/configs/
# 复制 Linux 客户机配置文件
cp configs/vms/linux-aarch64-e2000_smp1.toml tmp/configs/
修改客户机配置文件,设置为文件系统加载模式:
# 修改 ArceOS 客户机配置
sed -i 's|image_location = ".*"|image_location = "fs"|g' tmp/configs/arceos-aarch64-e2000_smp1.toml
sed -i "s|kernel_path = \".*\"|kernel_path = \"/guest/images/arceos.bin\"|g" tmp/configs/arceos-aarch64-e2000_smp1.toml
# 修改 Linux 客户机配置
sed -i 's|image_location = ".*"|image_location = "fs"|g' tmp/configs/linux-aarch64-e2000_smp1.toml
sed -i "s|kernel_path = \".*\"|kernel_path = \"/guest/images/linux.bin\"|g" tmp/configs/linux-aarch64-e2000_smp1.toml
如果客户机配置文件中有 dtb_path 字段,同样需要修改为本地构建环境中的设备树文件路径。
2. 配置构建文件
使用 cargo xtask defconfig phytiumpi 命令设置飞腾派为默认构建配置:
cargo xtask defconfig phytiumpi
然后修改 .build.toml 文件,启用文件系统相关特性:
# 在 features 数组中添加文件系统相关特性
sed -i '/^features = \[/,/^\]/c\
features = [\
"fs",\
"axstd/ext4fs",\
"driver/phytium-blk",\
"dyn-plat",\
"axstd/bus-mmio",\
]' .build.toml
或者手动编辑 .build.toml 文件,将 features 字段修改为:
features = [
"fs",
"axstd/ext4fs",
"driver/phytium-blk",
"dyn-plat",
"axstd/bus-mmio",
]
注意: 文件系统加载模式下,vm_configs 保持为空数组 []。
3. 编译 AxVisor
编译 AxVisor:
cargo xtask build
编译完成后,AxVisor 镜像位于 target/aarch64-unknown-none-softfloat/release/axvisor.bin。
4. 准备飞腾派 SDK
由于目前缺乏专用的 AxVisor 板级构建框架,这里复用飞腾派官方 Linux SDK 的构建流程来生成最终可启动镜像。整个部署操作需要在飞腾派 SDK 目录中执行相关命令,以便直接使用 SDK 提供的镜像和工具链。
从飞腾官方 Gitee 仓库下载飞腾派官方 OS 构建系统:
git clone https://gitee.com/phytium_embedded/phytium-pi-os.git
下载的 Phytium-Pi-OS 实际上是基于 Buildroot 移植适配的构建系统:

分支说明:
- master 分支:基于 Buildroot 2022.02 版本,默认适配 Linux 5.10 和 Linux 4.19 内核版本
- 2024.02 分支:基于 Buildroot 2024.02 版本,默认适配 Linux 6.6 内核版本