@@ -63,7 +63,9 @@ AxVisor 支持两种客户机加载方式:内存加载部署(编译时将客
6363
6464### 部署步骤
6565
66- #### 步骤1:准备客户机配置文件
66+ #### 一、前期准备
67+
68+ ##### 1. 准备客户机配置文件
6769
6870复制客户机配置文件模板到工作目录:
6971``` bash
@@ -87,7 +89,7 @@ sed -i "s|kernel_path = \".*\"|kernel_path = \"/guest/images/linux.bin\"|g" tmp/
8789
8890如果客户机配置文件中有 ` dtb_path ` 字段,同样需要修改为本地构建环境中的设备树文件路径。
8991
90- #### 步骤2: 配置构建文件
92+ ##### 2. 配置构建文件
9193
9294使用 ` cargo xtask defconfig phytiumpi ` 命令设置飞腾派为默认构建配置:
9395``` bash
@@ -120,7 +122,7 @@ features = [
120122
121123** 注意:** 文件系统加载模式下,` vm_configs ` 保持为空数组 ` [] ` 。
122124
123- #### 步骤3: 编译 AxVisor
125+ ##### 3. 编译 AxVisor
124126
125127编译 AxVisor:
126128``` bash
@@ -129,7 +131,7 @@ cargo xtask build
129131
130132编译完成后,AxVisor 镜像位于 ` target/aarch64-unknown-none-softfloat/release/axvisor.bin ` 。
131133
132- #### 步骤4:获取飞腾派 SDK
134+ ##### 4. 准备飞腾派 SDK
133135
134136由于目前缺乏专用的 AxVisor 板级构建框架,这里复用飞腾派官方 Linux SDK 的构建流程来生成最终可启动镜像。整个部署操作需要在飞腾派 SDK 目录中执行相关命令,以便直接使用 SDK 提供的镜像和工具链。
135137
@@ -146,23 +148,25 @@ git clone https://gitee.com/phytium_embedded/phytium-pi-os.git
146148- ** master 分支** :基于 Buildroot 2022.02 版本,默认适配 Linux 5.10 和 Linux 4.19 内核版本
147149- ** 2024.02 分支** :基于 Buildroot 2024.02 版本,默认适配 Linux 6.6 内核版本
148150
149- #### 步骤5:构建 SDK 环境
151+ #### 二、构建 SDK
152+
153+ ##### 1. 配置 SDK 构建环境
150154
151- ** 1. 配置构建环境**
152155``` bash
153156cd phytium-pi-os
154157make phytiumpi_desktop_defconfig
155158```
156159
157160> ** 注意** :官方 SDK 提供了多种不同的配置文件,可根据需要选择合适的配置。
158161
159- ** 2. 修复构建问题(master 分支)**
162+ ##### 2. 修复构建问题(master 分支)
160163
161164master 分支的 Buildroot 版本比较旧,在 Ubuntu 24.04 上构建可能会出错,需要进行相应的修复:
162165
163166![ sdk_fix] ( ./imgs_phytiumpi/sdk_fix.png )
164167
165- ** 3. 执行构建**
168+ ##### 3. 执行 SDK 构建
169+
166170``` bash
167171make
168172```
@@ -171,14 +175,14 @@ make
171175
172176![ sdk_images] ( ./imgs_phytiumpi/sdk_images.png )
173177
174- #### 步骤6: 生成 fitImage
178+ ##### 4. 生成 fitImage
175179
176- ** 1. 进入 SDK 镜像输出目录**
180+ ** 进入 SDK 镜像输出目录**
177181``` bash
178182cd < SDK_PATH> /output/images
179183```
180184
181- ** 2. 创建 fitImage 配置文件**
185+ ** 创建 fitImage 配置文件**
182186
183187创建或修改 ` kernel.its ` 文件:
184188``` bash
@@ -246,60 +250,64 @@ EOF
246250
247251> ** 注意** :如果需要自定义 ` load ` 和 ` entry ` 地址,这些值必须 2MB 对齐(地址值的低 21 位必须为 0)。例如:` 0x82000000 ` 、` 0x82200000 ` 、` 0x82400000 ` 等都是有效的 2MB 对齐地址。
248252
249- ** 3. 复制 AxVisor 镜像**
253+ ** 复制 AxVisor 镜像**
250254``` bash
251255cp < AXVISOR_PATH> /target/aarch64-unknown-none-softfloat/release/axvisor.bin .
252256```
253257
254- ** 4. 生成 fitImage 镜像**
258+ ** 生成 fitImage 镜像**
255259``` bash
256260../host/bin/mkimage_phypi -f kernel.its fitImage
257261```
258262
259- #### 步骤7: 添加客户机配置到根文件系统
263+ ##### 5. 添加客户机配置到根文件系统
260264
261265在文件系统加载模式下,需要将客户机镜像和配置文件添加到根文件系统中。AxVisor 默认从 ` /guest ` 目录加载客户机文件。
266+
267+ ** 创建挂载点并挂载文件系统**
262268``` bash
263- # 创建挂载点
264269mkdir -p rootfs
265-
266- # 挂载 rootfs.ext2
267270sudo mount rootfs.ext2 rootfs
271+ ```
268272
269- # 创建目录结构
273+ ** 创建目录结构**
274+ ``` bash
270275sudo mkdir -p rootfs/guest/configs
271276sudo mkdir -p rootfs/guest/images
277+ ```
272278
273- # 复制客户机配置文件
279+ ** 复制客户机配置文件**
280+ ``` bash
274281sudo cp < AXVISOR_PATH> /tmp/configs/arceos-aarch64-e2000_smp1.toml rootfs/guest/configs/
275282sudo cp < AXVISOR_PATH> /tmp/configs/linux-aarch64-e2000_smp1.toml rootfs/guest/configs/
283+ ```
276284
277- # 复制客户机镜像
285+ ** 复制客户机镜像**
286+ ``` bash
278287sudo cp < AXVISOR_PATH> /tmp/images/phytiumpi_arceos/phytiumpi rootfs/guest/images/phytiumpi-arceos
279288sudo cp < AXVISOR_PATH> /tmp/images/phytiumpi_linux/phytiumpi rootfs/guest/images/phytiumpi-linux
289+ ```
280290
281- # 如果有设备树文件,也需要复制
282- # sudo cp <DTB_PATH> rootfs/guest/images/
283-
284- # 卸载
291+ ** 卸载文件系统**
292+ ``` bash
285293sudo umount rootfs
286294```
287295
288296文件系统中的目录结构如下:
289297```
290298/guest/
291- ├── configs/
292- │ ├── arceos-aarch64-e2000_smp1.toml
293- │ └── linux-aarch64-e2000_smp1.toml
294- └── images/
295- ├── phytiumpi-arceos
296- ├── phytiumpi-linux
297- └── *.dtb (如果需要)
299+ ├── configs/
300+ │ ├── arceos-aarch64-e2000_smp1.toml
301+ │ └── linux-aarch64-e2000_smp1.toml
302+ └── images/
303+ ├── phytiumpi-arceos
304+ ├── phytiumpi-linux
305+ └── *.dtb (如果需要)
298306```
299307
300- #### 步骤8: 生成 SD 卡镜像
308+ ##### 6. 生成 SD 卡镜像
301309
302- ** 1. 创建 genimage 配置文件**
310+ ** 创建 genimage 配置文件**
303311
304312创建或修改 ` genimage.cfg ` 文件:
305313``` bash
@@ -331,19 +339,19 @@ image sdcard.img {
331339EOF
332340```
333341
334- ** 2. 创建所需目录**
342+ ** 创建所需目录**
335343``` bash
336344mkdir -p tmp root
337345```
338346
339- ** 3. 生成 SD 卡镜像**
347+ ** 生成 SD 卡镜像**
340348``` bash
341349../host/bin/genimage --inputpath ./ --outputpath ./ --config genimage.cfg --tmppath ./tmp --rootpath ./root
342350```
343351
344352生成的 ` sdcard.img ` 位于当前目录 ` <SDK_PATH>/output/images/sdcard.img ` 。
345353
346- #### 步骤9:烧写到 SD 卡
354+ #### 三、烧录到 SD 卡
347355
348356将生成的 ` sdcard.img ` 烧写到 SD 卡:
349357``` bash
0 commit comments