Skip to main content

Rk3588域控制器

本文详细介绍 AxVisor + Linux 客户机在 Rk3588 域控制器上的构建、部署及运行!

开发环境

硬件要求

  • 开发主机: x86_64 或 ARM64 架构
  • 连接设备:
    • USB 转串口调试线
    • Type-C 数据线(用于固件烧录)
    • 电源适配器

软件环境

  • 操作系统: Ubuntu 22.04 LTS (推荐)

Windows 烧录工具 (仅部署阶段需要):

  • RKDevTool (瑞芯微官方烧录工具)
  • 串口调试终端 (如 PuTTY、MobaXterm)

获取源代码

  1. 创建工作目录
mkdir ~/rk3588-project
cd ~/rk3588-project
  1. 克隆必需仓库
# 克隆 AxVisor Hypervisor 源码
git clone https://github.com/arceos-hypervisor/axvisor.git

# 克隆 Firefly-ITX-RK3588J 镜像打包工具
git clone https://github.com/arceos-hypervisor/firefly-itx-rk3588j.git
  1. 验证目录结构

执行成功后,目录结构应如下:

构建

构建 AxVisor 镜像

准备客户机设备树

设备树(Device Tree)定义了虚拟机可见的硬件资源配置。

定位设备树源文件

cd ~/rk3588-project/axvisor
ls configs/vms/linux-aarch64-rk3588-smp8.dts

编译设备树

dtc -I dts -O dtb \
-o configs/vms/linux-aarch64-rk3588-smp8.dtb \
configs/vms/linux-aarch64-rk3588-smp8.dts

验证编译结果

ls -lh configs/vms/linux-aarch64-rk3588-smp8.dtb

准备客户机配置文件

客户机配置文件(linux-aarch64-rk3588-smp8.toml)定义了虚拟机的资源分配和启动参数。

在 AxVisor 源码的 configs/vms 目录下有适用于Rk3588域控制器的客户机配置文件 linux-aarch64-rk3588-smp8.toml

当前,AxVisor 支持从文件系统加载客户机镜像和从内存中加载客户机镜像两种方式,通过客户机配置文件中的 image_location 配置项进行区分,我们需要根据需求来修改配置文件。本文采用的从内存加载的方式

  • 从内存加载时,则确保如下配置项内容:

    • image_location = "memory"
    • kernel_path = "客户机镜像在当前构建环境中的绝对路径",客户机镜像为工作目录下的firefly-itx-rk3588j/linux-rk3588.bin
    • dtb_path = "客户机设备树在当前构建环境中的绝对路径",客户机设备树就是上一步 准备客户机设备树 中构建的 DTB 文件
  • 从文件系统加载时,则确保如下配置项内容:

    • image_location = "fs"
    • kernel_path = "/guest/Image", 这里需要配置为客户机镜像在域控制器中的文件系统中的绝对路径。
    • dtb_path = "/guest/linux-aarch64-rk3588-smp8.dtb",这里配置为客户机设备树在Rk3588域控制器中的文件系统中的绝对路径,客户机设备树就是上一步 准备客户机设备树 中构建的 DTB 文件

其他配置项根据需要自行修改,否则直接采用默认值即可!

构建过程

执行构建命令

./axvisor.sh build \
--plat aarch64-generic \
--arceos-args "LOG=off,SMP=8" \
--vmconfigs "configs/vms/linux-aarch64-rk3588-smp8.toml"

参数说明:

  • --plat:指定目标平台为 AArch64 通用平台
  • --arceos-args:ArceOS 参数配置(日志级别、SMP 核心数等)
  • --vmconfigs:客户机配置文件路径

验证构建结果

ls -lh axvisor_aarch64-generic.bin

成功后应生成二进制镜像文件。

打包启动镜像

切换到打包工具目录

cd ./firefly-itx-rk3588j

执行镜像打包

./rk3588/mkimg --dtb rk3588-firefly-itx-3588j.dtb \
--img ../axvisor/axvisor_aarch64-generic.bin

确认输出文件

ls -lh boot.img

成功后将生成可烧录的 boot.img 启动镜像。

部署

  1. 将开发板通过串口调试工具连接上位机,注意串口线的颜色连接方式,同时将烧录线连接

  1. 配置烧录工具(在Windows下进行配置) 关于烧录工具的配置详情参考https://wiki.t-firefly.com/zh_CN/ROC-RK3588-PC/upgrade_firmware.html

  2. Type-C 数据线接好后在断电重启时在串口调试终端快速按ctrl + c进入uboot,输入reboot loader进入烧写模式(也可在断电时使用小工具按住REC孔的按键,然后上电,等待进入烧写模式后松开即可)

注意串口波特率需要设置为1500000

  1. 从Uboot进入烧写模式:

  1. 长按REC键进入烧写模式:

  1. 在空白处右键,选择Load Config进入配置选择,

  1. 选择rk3588-param.txt配置

  1. 勾选boot,并填入boot.img的绝对路径,点击run即可烧入镜像