ZVM官网:ZVM嵌入式虚拟化实时操作系统
返回部署目录

ZVM-RK3588v2.1发行版部署指南(飞凌OK3588-C,手工方式)

1、准备硬件

2、使用DiskGenius给TF卡分区(windows主机下操作)

💡 提示:如果您手中已经是按照此教程分区过的TF卡,可以直接跳往第 3 节。

  • 打开DiskGenius并选中TF卡。将TF卡插入读卡器,连接到你的PC中(建议Windows 10或Windows 11主机),打开 DiskGenius(可在ZVM官方网站 资源下载中心 获取)

    图 1 在ZVM官方网站资源下载中心获取DiskGenius

    图 2 打开DiskGenius并选中你的TF卡

  • 执行快速分区。点击 Quick Partition(打开快速分区)。

    图 3 点击Quick Partition(快速分区)

  • 设置分区参数。打开快速分区对话框后按如下顺序设置,然后点击 OK。

    设置项 填写内容
    ①分区表类型(Partition Table Style) 选择 MBR,并保持勾选 Rebuild MBR。
    ②分区数量(Partition Count) 选择 Custom,设置为 2 个分区。
    ③第一分区(1) 文件系统 FAT32,大小 8 GB,卷标 ZVM,勾选 Primary。
    ④第二分区(2) 文件系统 FAT32,大小按剩余空间自动填写,本页示例为 50 GB。
    ⑤分区对齐(Align Partitions to Integral Multiples of Sectors) 勾选,选择 2048 扇区(1048576 Byte)。

    表 1 DiskGenius 快速分区参数

    图 4 快速分区说明

    ⚠️ 注意:ZVM要求第一个分区必须是8G,第二个分区大于21G,不然会导致Linux客户OS启动失败。

  • 核对分区结果。加载完成后可以看到TF卡已经被划分成两个分区,完成后可以退出DiskGenius。

    图 5 分区完成,TF卡已分成两个分区

3、客户OS 文件系统镜像烧录(Linux主机环境下操作)

💡 提示:如果TF卡中已经成功写入过文件系统镜像,可以直接跳往第 4 节。

  • 下载并解压镜像包。打开浏览器,然后从ZVM官网 资源中心 分别下载获取对应版本的文件,注意第一个内核镜像是“飞凌OK3588-C”(共需要7个文件:6个分卷压缩包和1个解压脚本,分别为kernel_images_ok3588.001.7z、file_system_images.001.7z、file_system_images.002.7z、file_system_images.003.7z、file_system_images.004.7z、file_system_images.005.7z和extract_all.zip)。

    图 6 镜像下载说明

  • 在Linux主机中创建一个文件夹:ZVM-RK3588v2.1,按照图7目录结构将这7个文件放入该目录。

    图 7 7个文件放入ZVM-RK3588v2.1目录

  • 将这7个文件放入ZVM-RK3588v2.1目录后:①先执行:unzip extract_all.zip 解压出脚本;②然后执行:chmod +x ./extract_all.sh赋予脚本执行权限;③接着执行./extract_all.sh脚本进行解压;④解压完成后会得到2个文件夹:kernel_images、file_system_images。其中 file_system_images文件夹中包含了我们需要烧录到TF卡的文件系统镜像和烧录脚本:auto_dd.sh。

    图 8 解压得到kernel_images和file_system_images文件夹步骤

  • 确认TF卡第二分区设备名。将 TF 卡插入读卡器并连接至 Linux 主机,然后进入 file_system_images 目录并打开终端:①使用阅读工具打开 auto_dd.sh 脚本;②关注 TARGET="/dev/sdb2";③接着执行 lsblk 命令找到 TF 卡设备;④确认 TF 卡第二个分区的设备名称是 sdb2(不同 Linux 版本或不同型号的 TF 卡,设备名称可能不同,请以本机实际查找到的设备信息为准)。若 TF 卡分区不是 sdb,则需修改 auto_dd.sh 脚本中的“TARGET”位置,使其与 TF 卡分区一致。

    图 9 TF卡分区和脚本写入目标分区对应确认

  • 执行写入。终端执行命令./auto_dd.sh,等待镜像写入完成即可。实际写入速度取决于TF卡、读卡器的性能和写入镜像的数量。

    图 10 执行./auto_dd.sh写入文件系统镜像

4、准备ZVM启动镜像(Linux主机下操作)

完成第 3 节文件系统镜像的写入后,切换到到kernel_images文件中,里面包含了制作ZVM镜像所需要的所有文件和脚本,也包含了已经制作完毕的所有启动镜像,可以直接使用这个文件夹中的镜像文件,进行后面的启动操作。主要用到3个文件:nrtos_images.bin、boot.scr、zvm_release_rk3588v2.1.bin。

图 11 kernel_images文件夹中的启动镜像文件

  • 写入nrtos_images.bin。将Non-RTOS镜像包写入TF卡中(注意根据实际情况修改设备名of,使用lsblk命令确认设备名称,如/dev/sdb2):

    sudo dd if=nrtos_images.bin of=/dev/sdb2 bs=1M seek=1024 conv=fsync status=progress

    图 12 确认设备名后写入nrtos_images.bin

  • 复制启动文件。将zvm_release_rk3588v2.1.bin和boot.scr复制到TF卡的第一个分区(演示中的TF卡命名为ZVM)。

    图 13 把zvm_release_rk3588v2.1.bin和boot.scr复制到第一分区

5、自行编译镜像(可选)

  • 替换镜像源文件。kernel_images中会包含一个raw_kernel_images文件夹,这个文件夹中包含了制作ZVM所需要的镜像源以及打包脚本,可以替换其中对应的文件,例如Linux的内核镜像Image。

    图 14 raw_kernel_images中按客户OS存放的镜像源文件

  • 重新打包。替换目标镜像后,返回上一级目录,进入 kernel_images 文件夹,执行 auto_py.sh,选项输入 3。执行完成后,当前目录下会生成新的 zvm_release_rk3588v2.1.bin、boot.scr 和 Non-RTOS 镜像包文件。

    图 15 执行auto_py.sh并选择生成镜像

    完成后再按第 4 节“写入nrtos_images.bin”和“复制启动文件”两个步骤重新写入镜像包文件,即可完成镜像替换。

6、开发板固件烧录(Windows操作系统下)

  • 开发板准备。从Linux主机弹出TF卡,按如图16所示位置插入到TF卡槽中,准备电源、Type-C线、网线和串口接线。

    图 16 开发板相关接线方法

  • 安装串口驱动。下载cp2102-windows,解压后,双击运行“pololu-cp2102-setup-x64.exe”(若是32位系统,请运行-x86.exe的安装包),然后按提示进行安装即可。

    图 17 安装串口驱动

  • 安装烧写工具。下载 Release_DriverAssistant.zip,解压后运行DriverInstall.exe。为了让所有设备都使用更新的驱动,请先选择 驱动卸载,然后再选择 驱动安装。

    图 18 安装RK USB驱动

  • 下载 RKDevTool_Release.zip,并运行RKDevTool.exe

    图 19 打开RKDevTool

  • 进入升级模式。先断开电源适配器连接,使用Type-C数据线一端连接主机,一端连接开发板 OTG 接口。

    图 20 开发板相关接口和按键示意图

  • 按住设备上的 RECOVERY 键并保持,然后接上电源,观察RKDevTool窗口,有出现“发现一个LOADER设备”(英文版为“Found One LOADER Device”),松开 RECOVERY 键。

    图 21 RKDevTool 提示发现一个LOADER设备

  • 如果已经进行了“进入Loader模式”的操作,仍旧没有看到烧写工具提示LOADER,此时可以查看Windows主机是否有提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,可返回上一步重新安装驱动。

    图 22 设备管理器出现Rockusb Device

    烧录UBoot。下载uboot,解压到主机后,记住解压的位置。参考第 6 节的“进入升级模式”步骤,重新进入升级模式,然后点击“设备分区表”读取分区。

    图 23 分区读取点击示意图

  • 点击“是”,下载新的分区地址表。

    图 24 分区地址表下载示意图

  • 有弹出一些不存在的分区,直接点击右上角关闭即可。

    图 25 部分不存在分区示意图

  • 然后会显示读取分区成功,点击“确定”。

    图 26 读取分区成功示意图

  • 先根据右边分区表,核对左边uboot的地址是否一致,以及前面只勾选了uboot,然后点击后方②所示位置,选择路径。

    图 27 uboot地址核对和路径选择示意图

  • 选择最开始下载解压的uboot。

    图 28 uboot选择示意图

  • 再次核对路径、uboot地址后,点击执行。

    图 29 执行uboot烧录示意图

  • 烧录成功会显示“下载完成”,且状态变成“没有发现设备”,完成后开发板断电。。

    图 30 uboot烧录成功示意图

  • 进入 U-Boot 命令行。将串口USB端连接Windows 10或Windows 11主机,打开 MobaXterm 软件(下载链接),在 MobaXterm 中选择 Session → Serial,在 Serial port 中选择电脑识别到的串口,将 Speed (bps) 设为 115200,点击 OK 打开串口。

    图 31 选择串口端口,设置波特率为 115200,点击 OK

    ⚠️ 注意:上电前,板卡请连接网线接入局域网,不然ZVM没法初始化网卡导致启动异常。

  • 打开串口终端后,选择中断窗口先按 Ctrl+C,然后重新给开发板上电。看到 <INTERRUPT> 且最后停在可输入命令的 => 提示符时,表示已进入 U-Boot 命令行,此时松开按键。

    图 32 进入U-Boot命令行

7、启动ZVM

  • 在Uboot命令行输入ZVM启动命令:run distro_bootcmd。

    💡 提示:如果板卡不支持该命令,可以使用以下替代命令手动加载:

    mmc list; mmc dev 1; fatload mmc 1:1 0x00c00000 boot.scr; source 0x00c00000
  • 输入命令后按下回车键,ZVM即正常启动(如图33所示),启动时间取决于板卡和TF卡性能。

    图 33 ZVM启动后的串口界面

    ⚠️ 注意:如果启动失败,一般是板卡Uboot不匹配,请参考第 6 节重刷Uboot;如若一直失败,请私下或在ZVM技术交流群中联系ZVM团队成员获取帮助。

8、部署后的使用教程

项目名称 链接地址
VisualZVM的使用指南 http://esnl.hnu.edu.cn/zvm/features/visual-zvm-v2.1.html
基于VisualZVM的自动化测试系统 http://esnl.hnu.edu.cn/zvm/features/auto-test-v2.1.html

祝您开发愉快!✨