目前,openKylin已支持多款RISC-V架构的硬件平台,但由于各RISC-V厂商硬件接口定义不统一,导致各RISC-V平台的img镜像分区格式及内容不一致,从而无法制作出统一的img镜像。
因此,为解决RISC-V镜像碎片化问题,openKylin社区RISC-V SIG团队开发了RISC-V统一镜像烧录工具,通过发布RISC-V统一镜像烧录工具以及RISC-V架构统一的iso镜像,用户可以使用烧录工具并基于统一iso镜像来构建和烧录适用于某款RISC-V硬件平台的img镜像。目前烧录工具支持VisionFive2、LicheePi4a和Milk-v-pioneer三款平台,后续还会增加支持更多的平台。下面,我们将针对此工具进行详细介绍。
一、技术框架
下图展示了RISC-V统一镜像烧录工具的工作流程,具体可分为构建镜像和烧录镜像两部分。
-
构建镜像部分首先构建出空镜像,根据选定的RISC-V硬件平台对镜像进行分区;并在镜像分区配置启动相关文件;而后,解压iso镜像文件并拷贝至img镜像rootfs分区,在boot分区中安装内核和设备树文件;最后在rootfs分区中安装该RISC-V平台独有的GPU、蓝牙、电池等模块的驱动,修改镜像中的部分系统配置并增加常用应用。
-
烧录镜像部分需要使用构建的img镜像或下载的img镜像,首先读取并选择接入的存储介质,选择完毕后对存储介质进行格式化操作,之后分析img镜像适用的RISC-V硬件平台种类并将镜像烧录到选择的存储介质中,最后根据RISC-V硬件平台种类对烧录后的存储介质进行剩余空间分配操作。
二、功能介绍
1、构建镜像功能
目前烧录工具支持VisionFive2、LicheePi4a、Milk-v-pioneer三款硬件平台的镜像构建功能,之后社区RISC-V SIG团队会逐步对其他RISC-V硬件平台进行支持。下图分别为烧录工具首页以及构建功能界面。
2、烧录镜像功能
目前烧录工具支持烧录镜像到sd卡中,并通过sd卡启动RISC-V硬件平台。下图为烧录镜像功能界面。
三、未来展望
后续,RISC-V统一镜像烧录工具会发布在软件源中。社区用户当前可以在openKylin X86架构中从以下链接下载deb包:
https://gitee.com/openkylin/kylin-riscv-burner/blob/temp-deb/kylin-riscv-burner_1.0.0_amd64.deb
并执行以下命令进行安装:
sudo dpkg -i kylin-riscv-burner_1.0.0_amd64.deb
待烧录工具发布到软件源中之后,可执行以下命令安装烧录工具:
sudo apt install kylin-riscv-burner
同时,大家可以从openKylin官网下载RISC-V架构的iso配合烧录工具使用。后续社区将逐步对其他RISC-V硬件平台进行支持,并且会尝试在构建镜像功能中对精简桌面、全量桌面等多种桌面模式进行支持,以及尝试在烧录镜像功能中对烧录到板载emmc进行支持等。
四、关于RISC-V SIG
openKylin RISC-V SIG主要负责社区RISC-V架构开源软件包的维护,发布openKylin的RISC-V版本,进行软件包构建、系统构建等工作,欢迎所有对RISC-V开发平台技术方向感兴趣的爱好者加入到RISC-V SIG!
SIG主页:
https://gitee.com/openkylin/community/tree/master/sig/RISC-V