跳到主要内容

环境准备

ArceOS、StarryOS 和 Axvisor 共用同一套宿主工具链、QEMU 环境和 cargo xtask 命令入口。

1. 环境

QEMU 构建和启动需要 Linux 宿主、仓库锁定的 Rust 工具链、基础构建工具及足够的产物存储空间。

1.1 最低要求

下表列出三套系统 QEMU 路径共用的最低环境要求;板级烧录、Guest 制作和厂商工具链不在此范围内。

项目要求
操作系统Linux x86_64(推荐 Ubuntu 22.04+ / Debian 12+)
Rust 工具链由仓库 rust-toolchain.toml 管理
QEMU推荐 10.2.1,与仓库容器镜像和 CI 环境一致
磁盘空间建议至少 20 GB(工具链、QEMU、构建产物、rootfs、Guest 镜像)

1.2 容器环境

仓库提供预构建的容器镜像,已包含完整的开发环境(QEMU、Rust toolchain、交叉编译工具链等),与 CI 环境完全一致:

# 拉取预构建镜像
docker pull ghcr.io/rcore-os/tgoskits-container:latest

# 启动容器,将当前工作区挂载进去
docker run -it --rm \
-v "$(pwd)":/workspace \
-w /workspace \
ghcr.io/rcore-os/tgoskits-container:latest

进入容器后即可直接运行 cargo xtask 命令,无需安装任何依赖。

镜像详情见 CI 与容器镜像

1.3 本地构建容器

如果需要自定义容器内容,也可以从 Dockerfile 本地构建:

docker build -t tgoskits-env -f container/Dockerfile .
docker run -it --rm -v "$(pwd)":/workspace -w /workspace tgoskits-env

1.4 手动安装

不使用容器时,需要在宿主机安装 Rust、基础构建工具和各架构的 QEMU。QEMU 版本应与容器和 CI 使用的 10.2.1 保持一致:

# 1. 安装 Rust(会按仓库 toolchain 自动切换)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 2. 安装基础构建工具(Ubuntu / Debian)
sudo apt update
sudo apt install -y cmake make ninja-build pkg-config

# 3. 安装发行版提供的 QEMU
sudo apt install -y qemu-system-arm qemu-system-misc qemu-system-x86

# 4. 安装常用 Rust 辅助工具
cargo install cargo-binutils

这些命令不包含板级烧录、Guest 制作或厂商工具链。发行版提供的 QEMU 版本或架构集合不一致时,应使用仓库容器复现 CI 环境。

2. QEMU 支持

QEMU 运行需要同时满足板卡配置支持目标架构、Rust target 可用以及宿主机存在对应的 qemu-system-* 程序。

2.1 架构支持

仓库中的板卡配置通过 target triple 选择架构实现,并由对应的 qemu-system-* 程序提供虚拟平台。下表中的组合均有现成配置或测试路径支撑,也是快速上手文档采用的标准名称。

架构常见 Target Triple常用 QEMU
riscv64riscv64gc-unknown-none-elfqemu-system-riscv64
aarch64aarch64-unknown-none-softfloatqemu-system-aarch64
x86_64x86_64-unknown-noneqemu-system-x86_64
loongarch64loongarch64-unknown-none-softfloatqemu-system-loongarch64;Axvisor 需要 LVZ 版本

2.2 验证 QEMU

以下命令验证四种架构的模拟器是否存在并输出版本。仓库容器和 CI 使用 QEMU 10.2.1。

qemu-system-riscv64 --version
qemu-system-aarch64 --version
qemu-system-x86_64 --version
qemu-system-loongarch64 --version

版本命令只能确认模拟器可执行文件存在;实际启动仍会继续验证机器类型、固件和镜像依赖。若某个架构的 QEMU 未安装,优先使用容器环境,而不是在宿主机单独拼装不同来源的工具。

2.3 Axvisor LoongArch64 LVZ

Axvisor 的 LoongArch64 路径依赖 LVZ 虚拟化扩展,标准 QEMU 无法运行该配置。项目使用专用的 QEMU-LVZ,并提供已经包含该二进制、LoongArch OVMF 和交叉工具链的容器镜像。

docker pull ghcr.io/rcore-os/tgoskits-container-axvisor-lvz:latest
docker run --rm -it \
-v "$PWD:/workspace" \
-w /workspace \
ghcr.io/rcore-os/tgoskits-container-axvisor-lvz:latest

进入容器后再执行 Axvisor 的 config lsdefconfig qemu-loongarch64qemu 命令。其他系统的 LoongArch64 QEMU 路径不要求 LVZ 扩展,仍可使用标准 qemu-system-loongarch64

3. 命令入口

TGOSKits 通过 cargo xtask 调度各系统命令,并在 .cargo/config.toml 中提供 cargo arceoscargo starrycargo axvisor 快捷别名。各系统使用 config ls 查询板卡配置,以 defconfig BOARD_NAME 选择默认配置,再执行 buildqemuubootboard 或测试命令。

cargo xtask --help
cargo starry --help

常见入口如下:

目标文档常用命令
ArceOSArceOS 快速上手cargo arceos defconfig qemu-riscv64
StarryOSStarryOS 快速上手cargo starry defconfig qemu-riscv64
AxvisorAxvisor 快速上手cargo axvisor defconfig qemu-aarch64