openKylin 嵌入式版本构建工具开源,手把手教你制作嵌入式镜像

为便利开发者基于openKylin开源操作系统二进制软件包构建嵌入式操作系统镜像,社区Embedded SIG组开发了openKylin嵌入式版本构建工具V1.0。基于此工具,各位开发者可以灵活构建适合自己的openKylin嵌入式版本操作系统。

一、 构建工具介绍

openKylin嵌入式版本构建工具V1.0基于开源debootstrap命令进行封装,可基于openKylin的apt源制作嵌入式操作系统镜像。目前openKylin 1.0版本支持通过参数控制分别生成四款开发板的镜像:ARM64架构(双椒派、树莓派)、RISC-V架构(VisionFive2、Lotus2)镜像。

该工具在debootstrap基础上进行封装,并在制作镜像过程中预留参数,供开发者自行修改现有配置,或者新增配置,便于通过脚本生成所需要的系统镜像。

同时,该工具使用debootstrap生成基础rootfs,由于此时的rootfs是一个基础chroot环境,还不具备在上述4种开发板直接运行的能力,因此Embedded SIG组在此基础上增加了对文件系统定制修改的功能,主要是针对不同类型开发板,向文件系统中安装相应的软件包,并对系统做好相关配置,使制作好的文件系统可以直接在上述4种开发板上运行。

二、 构建工具特性

1.易用性强。openKylin嵌入式版本构建工具V1.0使用shell实现,结合实际项目经验设计构建接口。构建人员可快速构建,验证,发布嵌入式操作系统。

2.扩展性强。openKylin嵌入式版本构建工具V1.0依赖openKylin软件源构建嵌入式操作系统基座,构建人员可通过叠加额外软件源,定制系统文件等方式扩展嵌入式操作系统功能。可扩展性主要体现在以下三个方面:

  • 参数扩展:制作镜像用到的参数都预置在prop文件中,用户可以在制作命令后添加与prop中同名的参数覆盖原有参数,也可以自定义参数,参数格式以VK_开头,例如VK_VARNAME=foobar,此参数会在宿主机制作环境及chroot环境中全局生效,用户可以在脚本任意位置获取该变量的值,并进行相应的处理。
  • 任务扩展:默认情况下,任务变量的值为:VK_TASKS=rootfs,config,img,用户可以继续以逗号分隔,添加其他任务,如设置任务参数为:VK_TASKS=rootfs,config,img,funcname,并在functions.sh中添加函数do_funcname,即可实现对文件系统的修改。
  • 组件扩展:组件其实就是一组包的集合,目前默认集成的组件都写在order执行顺序的文件里,主要有工具组件,网络组件,ukui组件,用户可自行新增自定义组件,并将组件加到order文件中,即可将需要的包集成到系统中。

3.支持多架构。目前已支持ARM64架构(双椒派、树莓派)、RISC-V架构(VisionFive2、Lotus2)开发板的镜像生成。

三、 构建工具原理

主脚本:okbuild.sh

参数配置:prop文件

系统制作:shells目录下的脚本

镜像封装功能函数:functions.sh脚本