整体环境
由于 AxVisor 本身是一个运行于各种硬件平台的 Hypervisor,直接使用 Gihub 提供的 Action 脚本命令执行服务器(官方称为 Runner)无法满足我们的测试需求,因此,需要将测试本地化,在本地服务器上执行所有测试过程。

总体框架
本地通过一台运行 Ubuntu 24.04 LTS 系统的专用的服务器来执行测试任务。该服务器通过 USB 及网口与其他各种控制设备和测试设备相连,进而控制测试过程。整体集成测试环境框图如下所示:

测试设备
测试设备是整个测试环境中的执行核心,它需要运行 AxVisor 固件,并且通过 Debug 接口将运行日志输出到本地测试服务器。因此,测试设备需要具备以下功能:
-
测试设备需要支持串口通信,以便将运行日志输出到本地测试服务器。
-
测试设备通过本身的 Debug 接口经过 USB 转 TTL 工具与本地测试服务器相连。
测试服务器
测试服务器是整个测试环境的处理核心,它需要运行各种测试工具和脚本,同时,它还需要与各种测试设备进行通信。因此,测试服务器需要具备以下功能:
-
运行测试工具和脚本,包括固件加载工具、固件编译工具、固件分析工具等。
-
与各种测试设备进行通信,包括开发板、路由器以及电源控制模块等。
-
提供固件编译、固件加载、固件分析等功能。
测试服务器上需要通过 USB 串口连接大量设备,因此,可能需要使用 USB Hub 将多个 USB 串口设备链接到测试服务器上。并且在测试服务器中清楚的区分各个串口设备,以便后续通过串口与各个设备进行通信。
开发板
开发板是整个测 试环境中的执行核心,它需要运行 AxVisor 固件,并且通过 Debug 接口将运行日志输出到本地测试服务器。因此,开发板需要具备以下功能:
-
开发板需要支持串口通信,以便将运行日志输出到本地测试服务器。
-
开发板通过本身的 Debug 接口经过 USB 转 TTL 工具与本地测试服务器相连。
控制设备
控制设备是整个测试环境中的辅助设备,它需要控制开发板的上电和断电,以便在开发板启动和关闭时,测试服务器能够正确地捕获到开发板的启动和关闭日志。因此,控制设备需要具备以下功能:
-
控制开发板上电和断电,以便测试服务器能够正确地捕获到开发板的启动和关闭日志。
-
通过 USB 串口与本地测试服务器通信,以便本地测试服务器通过串口控制控制设备。
电源控制模块
电源控制模块用于控制测试设备的上电和断电。电源控制模块需要具备以下功能:
- 支持通过串口与本地测试服务器通信,以便本地测试服务器通过串口控制电源控制模块。
路由器
测试环境中的路由器主要用于实现开发板与本地测试服 务器的网络连接。
-
提供开发板固定的网络地址
-
为 x86 设备提供 PXE 服务端地址
软件服务端
为了满足针对不同开发板的测试需求,本地服务器上需要部署各种软件服务端,以便为各种开发板提供资源。其中,最主要的一个就是针对 x86 架构开发板的固件加载服务端。
PXE 服务端
对于 x86 架构,我们需要通过 PXE 来实现内核固件的加载。PXE 规范描述了一个标准化的 客户端 ↔ 服务器 环境,通信过程使用的是 UDP/IP、DHCP、TFTP 等多个标准互联网协议。

x86 架构的引导程序(BIOS)中一般都集成了 PXE 客户端,我们需要提供一个服务端。目前,在 Linux 下没有类似于 Windows 下的 All in One 的工具,只能是分别搭建!