跳到主要内容

环境与平台

开发环境

本节说明本地开发所需的宿主环境、Rust 工具链、外部依赖以及预构建容器镜像的用法。

宿主要求

当前推荐的开发宿主环境为 Linux x86_64(Ubuntu 22.04+ 或 Debian 12+)。仓库提供两种环境准备方式:

方式适用场景说明
手动安装日常本地开发通过 rustup、系统包管理器逐项安装
Container 镜像CI / 需要精确复现 CI 环境基于 container/Dockerfile 构建,含预装 QEMU 和交叉工具链

工具链

工具链版本由 rust-toolchain.toml 锁定,cargo 会自动安装:

属性
频道nightly-2026-04-27
Profileminimal
组件rust-src, llvm-tools, rustfmt, clippy

内置交叉编译目标

Target Triple架构浮点模式
x86_64-unknown-nonex86_64
riscv64gc-unknown-none-elfRISC-V 64硬浮点 (GC)
aarch64-unknown-none-softfloatAArch64软浮点
loongarch64-unknown-none-softfloatLoongArch64软浮点

外部依赖

类别工具用途安装方式
模拟器QEMU ≥ 10.2.1系统级验证的执行环境源码构建或发行版包(Container 内已预装)
辅助构建cmake, make, ninja-buildC 测试用例交叉编译系统 apt 包
辅助分析cargo-binutils二进制分析(cargo size, cargo objdumpcargo install cargo-binutils
镜像操作ostoolELF / 镜像格式转换Cargo 依赖(v0.15)

容器镜像

标准测试镜像定义在 container/Dockerfile,以 Ubuntu 24.04 为基础:

内容版本 / 说明
QEMU10.2.1 源码构建,覆盖 system + linux-user target
交叉编译器aarch64 / riscv64 / x86_64 / loongarch64 musl 工具链
Rust toolchainrust-toolchain.toml 一致
工作目录/workspace

对于 Axvisor LoongArch LVZ 场景,另有扩展镜像 container/Dockerfile.axvisor-lvz

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

目标架构

TGOSKits 当前支持四种目标架构,各架构在三套系统中的测试覆盖程度不同。下图展示了架构与系统之间的支持关系。

目标架构Target TripleQEMU 机器类型ArceOSStarryOSAxvisor成熟度
RISC-V 64riscv64gc-unknown-none-elf-machine virt -cpu rv64✅ 全量测试✅ 全量测试有配置占位主要验证架构
AArch64aarch64-unknown-none-softfloat-cpu cortex-a53✅ 全量测试✅ 全量测试(含板级)✅ QEMU + 多板级Axvisor 主力架构
x86_64x86_64-unknown-none-machine q35 -cpu max✅ 全量测试✅ 全量测试stub 实现非首选
LoongArch64loongarch64-unknown-none-softfloat-machine virt -cpu la464✅ 全量测试✅ 全量测试LVZ 扩展镜像实验性

快速验证

按以下顺序执行可最快确认环境可用,三条命令覆盖三套系统的最小启动路径。

优先级系统命令预期结果
1ArceOScargo xtask arceos qemu --package ax-helloworld --arch riscv64QEMU 输出 "Hello, world!" 后退出
2StarryOScargo xtask starry qemu --target riscv64启动 Shell 并执行冒烟命令(首次自动准备 rootfs)
3Axvisorcargo xtask axvisor test qemu --target aarch64Guest 输出 "guest test pass!"(首次自动下载 Guest 镜像)

板级支持

除 QEMU 虚拟环境外,TGOSKits 还在多块物理开发板上进行实际硬件验证。Axvisor 通过 os/axvisor/configs/ 中的板级配置管理硬件支持,StarryOS 则通过测试用例目录内的 board-*.toml 声明板级用例。

Axvisor 开发板

Axvisor 通过硬编码的测试组管理板级支持,每组对应一块物理开发板或 QEMU 虚拟环境。下表列出当前已注册的全部开发板及其 Guest 配置。

开发板SoCGuest OSVM 配置测试状态
qemu-aarch64— (QEMU)Linuxlinux-aarch64-qemu-smp1.toml✅ CI 自动运行
qemu-riscv64— (QEMU)ArceOSarceos-riscv64-qemu-smp1.toml配置就绪
OrangePi-5-PlusRK3588Linuxlinux-aarch64-orangepi5p-smp1.toml✅ CI self-hosted
phytiumpi飞腾 E2000Linuxlinux-aarch64-e2000-smp1.toml✅ CI self-hosted
ROC-RK3568-PCRK3568Linuxlinux-aarch64-rk3568-smp1.toml✅ CI self-hosted
RDK-S100Linuxlinux-aarch64-s100-smp1.toml✅ CI self-hosted

板级配置位于 os/axvisor/configs/

  • board/<board_name>.toml — 构建配置(编译选项、内核特性)
  • vms/<vm_config>.toml — 虚拟机配置(内存、CPU、设备列表)

StarryOS 开发板

StarryOS 通过测试用例目录中的 board-{board_name}.toml 声明板级支持,xtask 自动扫描发现。

开发板对应用例说明
OrangePi-5-Plusnormal/board-orangepi-5-plus/NPU YOLOv8、网络冒烟、PCIe 枚举

SoC 驱动

drivers/ 目录包含面向特定 SoC 平台的驱动代码,主要服务于 OrangePi-5-Plus(RK3588)和 ROC-RK3568-PC 等 Rockchip 硬件。

驱动目标平台功能
rockchip-soc/RK3588时钟控制器、复位和引脚控制
rockchip-pm/Rockchip 系列电源管理
rockchip-npu/Rockchip 系列NPU(神经网络处理器)

选型建议

根据开发目标选择合适的架构和运行环境,可以减少不必要的准备成本。

目标推荐路径
首次跑通QEMU + RISC-V 64(ArceOS helloworld),零前置准备
改 ArceOS / StarryOSQEMU + RISC-V 64 或 AArch64
改 AxvisorQEMU + AArch64 → OrangePi-5-Plus 板级
做新硬件适配参考现有 configs/board/*.toml + drivers/
复现 CI 问题Container 镜像 (container/Dockerfile)