编译并部署示例工程
本节将以 quickvisor_ls1046_sdk.zip 为例,介绍 QuickVisor 示例工程的编译和部署。
导入示例工程
注意:RealEvo-IDE 中 QuickVisor 相关工程的详细说明和使用方法,可以在 IDE 中 Help 菜单栏下的 《QuickVisor IDE 使用手册》中找到。
首先,创建一个空文件夹,并将 quickvisor_ls1046_sdk.zip
压缩包解压到新建的文件夹中。打开 RealEvo-IDE,设置 Workspace 的路径为 quickvisor_ls1046_sdk/workspace_quickvisor
目录。
然后,单击 RealEvo-IDE 菜单栏下的 File > Import... 选项,选择 QuickVisor Projects 工程类型,按照工程向导的提示,导入所有示例工程。
接着,查看所有示例工程根目录下的 README.md
文件,该文件描述了工程的基本信息和使用方法。
在 RealEvo-IDE 中,QuickVisor 相关的工程类型如下:
QuickVisor BSP:QuickVisor 板级支持包工程,包含在某个特定硬件平台上运行 QuickVisor 所必须的初始化程序和驱动程序。
QuickVisor Kernel Static Lib:QuickVisor 内核静态库工程,用于扩展 QuickVisor 内核的功能。
QuickVisor Scenario:QuickVisor 场景工程,用于配置 QuickVisor 内核、创建并配置 GuestVM 实例、创建并配置虚拟机间通信组件。
QuickVisor GuestOS:QuickVisor 客户机操作系统工程,当前仅提供裸机工程模板。
编译示例工程
注意:关于 QuickVisor BSP 工程和 Scenario 工程更详细的说明,请参考本文档的 QuickVisor BSP 开发章节和 QuickVisor Scenario 开发章节。
quickvisor_sdk
工程由已编译好的静态库和头文件组成。
- libquickvisor:QuickVisor 内核组件库。
- libqvemulator:QuickVisor 虚拟设备模拟器组件库。
- libqvshell:QuickVisor 控制台组件库。
- libqvvirtio:QuickVisor VirtIO 组件库。
然后,编译 bspls1046
工程,一般情况下不需要编译,在 Debug/Release 目录下已经生成 bspls1046.bin
镜像文件。
接着,编译需要使用的 Scenario 工程,如 test_sylixos
工程。编译完成后,将在 Debug/Release
目录下生成 quickvisor.rfs
镜像文件。用户可以尝试修改场景工程,或者修改 GuestOS 代码,以满足自身的业务需求。
部署示例工程
注意:场景工程的部署和启动方法,可以参考对应平台 BSP 工程下的
README.md
文件和 Scenario 工程下的README.md
文件。接下来,将以 test_multi_vm_01 为例进行讲解。
首先,点击 RealEvo-IDE 菜单栏 Tools > TFTP Server 中的 TFTP 工具,选择 bspls1046/Debug
目录作为 TFTP 服务器的工作目录,最后点击 Start 按钮启动 TFTP 服务器,后续目标机的 uboot 将通过 TFTP 命令下载镜像文件。
然后,参照示例场景工程中 README.md
文件,将所需的镜像文件拷贝到 TFTP 服务器的文件目录下,并通过 uboot 的 tftpboot
命令将镜像文件部署到指定地址。 以 quickvisor_ls1046_sdk 中的 test_multi_vm_01 为例,首先将 test_multi_vm_01/Debug/quickvisor.rfs
拷贝至 bspls1046/Debug
目录,然后连接 LS1046 开发板的串口至 PC,确保 LS1046 能与 PC 的网络连通,在 PC 上通过 Putty 打开 LS1046 开发板的串口,在 LS1046 的 uboot 控制台下,输入以下命令:
# 加载 QuickVisor 镜像文件 `bspls1046.bin` 到
# 由 BSP 工程中的 `QV_CONFIG_BSP_TEXT_BASE` 指定的地址。
uboot> tftpboot 0x81000000 bspls1046.bin
# 加载 QuickVisor 的 ROMFS 镜像文件 `quickvisor.rfs` 到
# 由 BSP 工程中的 `QV_CONFIG_BSP_PARAM_BASE` 指定的地址。
uboot> tftpboot 0x87000000 quickvisor.rfs
# 跳转到 QuickVisor 执行,跳转地址
# 由 BSP 工程中的 `QV_CONFIG_BSP_TEXT_BASE` 指定。
uboot> go 0x81000000
接着,QuickVisor 将进入启动流程,启动成功后将进入 QuickVisor 的控制台。
在 QuickVisor 控制台中执行 help
命令,可以查看当前 QuickVisor 支持的所有命令。
通过 stdio
命令,将标准输入输出重定向到指定虚拟串口线,用于和虚拟机中的 GuestOS 通信。
在客户机的控制台中输入 Esc + q
组合键可以取消标准输入输出到虚拟串口的绑定,从而退回到 QuickVisor 的控制台。对于已配置好虚拟网桥和虚拟网卡,并通过物理网卡进行网络共享的虚拟场景,用户可以通过 telnet 登录到相应的虚拟机。
注意:涉及到 GuestOS(SylixOS、Linux) 配置和使用的问题,本文档不会过多介绍,用户可以查阅本文档提供的参考手册,或者通过浏览器搜索相关内容。