Skip to content

Latest commit

 

History

History
127 lines (74 loc) · 4.04 KB

优麒麟树莓派版本自动构建工具.md

File metadata and controls

127 lines (74 loc) · 4.04 KB

优麒麟树莓派版本自动构建工具

English | 简体中文

源项目介绍

优麒麟树莓派版本是为树莓派提供定制的发行版本,旧有项目采用 bash 脚本进行构建,现迁往 docker/qemu 工具链进行自动化安装。

项目介绍

本项目希望通过 docker/qemu 工具链,为优麒麟树莓派版本的镜像构建提供自动化支持。

  • 支持树莓派3后的所有机型;
  • ukui-kwin 启用性能占用更低的默认设置;
  • 目标 image 支持在 x86、aarch64 上进行构建工作;

技术要求

必要

  • docker
  • bash

可选

技术关键词

Docker树莓派;

技术细节

本项目最终提供的版本构建工具的工作主要分为以下几个阶段:

  • 构建环境准备
  • 内核预构建
  • 版本文件系统构造
  • 镜像导出、分区设置、uboot 设置
  • 集成测试

构建环境

构建环境依据宿主机架构的不同需要探讨是否需要单独引入 qemu 对树莓派进行仿真,Docker 提供了一定程度的跨架构支持(buildx),未知的是它是否适用于树莓派。如需单独引入 qemu,则需要考虑在 x86 上的 aarch64 仿真以及 aarch64 上的 x86 仿真。此外,该环境也应当提供最基础的工具支持,诸如 apt、dpkg、debootstrap 等。

内核预构建

特别的,内核预构建并非是最终构建所得镜像所需要用到的,这是为了验证构建版本是否正常工作提供的一个最小化内核,主要用于提供集成测试最初的上下文环境。

文件系统

当拥有构建环境之后,我们需要构建树莓派版本的一个 stage 文件系统,它将被用于导出最终的构建版本。该文件系统包含完整的 UKUI 桌面环境,还有一些我们期望集成的第三方软件。

镜像导出

从 stage 文件系统导出镜像是简单的,值得注意的是此过程中分区表的写入设计、uboot 如何进行通用的预设置等。

集成测试

集成测试在这里并非是通常意义上集成测试,而是指 UKUI 桌面环境与 Ubuntu Kylin 默认应用集成后的测试。这一步验证的是,在无依托硬件时,该构建版本能否正常工作。

特性检查表

  • 硬件支持

    硬件型号 支持
    树莓派3B
    树莓派3B+
    树莓派4B(4GB)
    树莓派4B(8GB)
  • 构建支持架构

    架构 支持
    amd64
    aarch64
  • 预构建内核

    内核版本 支持
    5.4
    5.10

开发计划

目前为该构建工具的实现划分为了多个阶段:

第一阶段

一至两周,调研 docker 提供的 buildx 是否适用于树莓派的跨架构仿真。

第二阶段

构建工具的实现,能够生成 stage 文件系统,并由此导出构建镜像。此构建镜像应能在物理设备上正常工作。

第三阶段

使构建工具支持内核的预构建,并使用 docker 或 qemu 验证所得内核能否正常引导前一阶段所得的镜像

联系

授权条款

Creative Commons License

本文使用授权协议 Creative Commons Attribution-ShareAlike 4.0 International License