A1000域控制器
本文详细介绍 AxVisor + Linux 客户机在 A1000 域控制器上的构建、部署及运行!
开发环境
本文中的构建及部署环境均采用 Ubuntu 22.04 作为开发环境。
获取源代码
- 创建工作目录
mkdir ~/a1000-project
cd ~/a1000-project
- 克隆必需仓库
# 克隆 AxVisor Hypervisor 源码
git clone https://github.com/arceos-hypervisor/axvisor.git
# 克隆 A1000 内核和工具源码
git clone https://github.com/arceos-hypervisor/bst-a1000.git
- 验证目录结构
执行成功后,目录结构应如下:

构建
构建 Linux 客户机镜像
客户机镜像是运行在 AxVisor Hypervisor 之上的 Linux 操作系统内核。
-
进入项目目录并赋予内核文件夹执行权限:
cd ~/a1000-project/bst-a1000
sudo chmod -R 755 ./kernel/ -
配置内核
使用交叉编译工具链配置内核,根据需要选择 release 或 debug 版本:
# Release 版本
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 O=build_bst \
bsta1000b_release_defconfig CC=aarch64-linux-gnu-gcc-9
# 或 Debug 版本
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 O=build_bst \
bsta1000b_debug_defconfig CC=aarch64-linux-gnu-gcc-9
-
编译内核
执行多线程编译,加速构建过程:
make CROSS_COMPILE=aarch64-linux-gnu- \
ARCH=arm64 \
O=build_bst \
-j$(nproc) \
CC=aarch64-linux-gnu-gcc-9提示:
-j$(nproc)参数会自动使用所有可用的 CPU 核心进行并行编译
-
验证编译产物
编译成功后,内核镜像文件位于:
# 检查内核镜像是否生成
ls -lh build_bst/arch/arm64/boot/Image
# 查看镜像大小和时间戳
file build_bst/arch/arm64/boot/Image
构建 AxVisor 镜像
以下以 A 核为例演示构建过程,若使用 B 核,请相应调整配置文件和 DTB 文件。\
步骤 1:编译客户机设备树
1.1 准备设备树源文件
AxVisor 源码的 configs/vms 目录下提供了适用于 A1000 域控制器的设备树源文件:
- A 核:
linux-aarch64-a1000-smp8-fada.dts - B 核:
linux-aarch64-a1000-smp8-fadb.dts
1.2 编译设备树
客户机设备树文件记录了传递给客户机的硬件设备信息(CPU、内存、外设等),这些信息必须与客户机配置文件保持一致。
使用 dtc 工具编译设备树:
# 编译 A 核设备树
cd ~/a1000-project/axvisor/configs/vms
dtc -I dts -O dtb \
-o linux-aarch64-a1000-smp8-fada.dtb \
linux-aarch64-a1000-smp8-fada.dts
提示:若使用 B 核,请将文件名替换为
linux-aarch64-a1000-smp8-fadb.dts。