Skip to content

Commit

Permalink
add multiple projects
Browse files Browse the repository at this point in the history
  • Loading branch information
brsvh committed May 6, 2021
1 parent 1b221e2 commit 27361fc
Show file tree
Hide file tree
Showing 12 changed files with 296 additions and 12 deletions.
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
# 开源软件供应链点亮计划 - 暑期 2021

[English](./en_US/README.md) | 简体中文
[English] | 简体中文

[开源软件供应链点亮计划]鼓励大家关注开源软件和开源社区,致力于培养和发掘更多优秀的开发者。优麒麟社区加入了开源软件供应链点亮计划 - 暑期 2021,注册了多个项目供研究人员、开源爱好者、在校师生参与到优麒麟操作系统、UKUI 桌面的开发中来,助力优麒麟社区的发展,促进开源软件的发展和优秀开源软件社区建设,增加开源项目的活跃度,推进开源生态的发展。

[English]: ./en_US/README.md
[开源软件供应链点亮计划]: https://summer.iscas.ac.cn/#/homepage

## 项目列表

* [Peony 文件管理器预览特性的实现](./zh_CN/Peony 文件管理器预览特性的实现.md)
* [ukui-search 聚合搜索插件](./zh_CN/ukui-search 聚合搜索插件.md)
* [Peony 文件管理器预览特性的实现]
* [UKUI Gentoo 移植]
* [ukui-search 聚合搜索插件]
* [优麒麟树莓派版本自动构建工具]
* [优麒麟用户文档撰写]

[Peony 文件管理器预览特性的实现]: ./zh_CN/Peony 文件管理器预览特性的实现.md
[UKUI Gentoo 移植]: ./zh_CN/UKUI Gentoo 移植.md
[ukui-search 聚合搜索插件]: ./zh_CN/ukui-search 聚合搜索插件.md
[优麒麟树莓派版本自动构建工具]: ./zh_CN/优麒麟树莓派版本自动构建工具.md
[优麒麟用户文档撰写]: ./zh_CN/优麒麟用户文档撰写.md

## 授权条款

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

本文使用授权协议 [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/)
本文使用授权协议 [Creative Commons Attribution-ShareAlike 4.0 International License]

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,6 @@ Text parsing of complex documents.

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License].

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
20 changes: 16 additions & 4 deletions en_US/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
# Summer 2021 of Open Source Promotion Plan

English | [简体中文](../README.md)
English | [简体中文]

[Open Source Promotion Plan] encourages everyone to pay close attention to open source software and open source community, aiming to cultivate and explore more outstanding developers. The Ubuntu Kylin community joined the Summer 2021 of Open Source Promotion Plan, we have registered several projects for researchers, open source enthusiasts, students and faculty to participate in the development of UKUI desktop environment and Ubuntu Kylin to help grow the Ubuntu Kylin community. Also increase the activity of open source projects, and promote the development of open source ecology too.

[简体中文]: ../README.md
[Open Source Promotion Plan]: https://summer.iscas.ac.cn/#/homepage

## Projects in the Plan

* [Implementation of the Peony File Manager preview feature](./Implementation of the Peony File Manager preview feature.md)
* [Search services cluster of the UKUI Search](./Search services cluster of the UKUI Search.md)
* [Implementation of the Peony File Manager preview feature]
* [UKUI porting for Gentoo]
* [Search services cluster of the UKUI Search]
* [Raspberry Pi automatic build tool for Ubuntu Kylin]
* [User document writing for Ubuntu Kylin]

[Implementation of the Peony File Manager preview feature]: ./Implementation of the Peony File Manager preview feature.md
[UKUI porting for Gentoo]: ./UKUI porting for Gentoo.md
[Search services cluster of the UKUI Search]: ./Search services cluster of the UKUI Search.md
[Raspberry Pi automatic build tool for Ubuntu Kylin]: ./Raspberry Pi automatic build tool for Ubuntu Kylin.md
[User document writing for Ubuntu Kylin]: ./User document writing for Ubuntu Kylin.md

## License

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License].

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
125 changes: 125 additions & 0 deletions en_US/Raspberry Pi automatic build tool for Ubuntu Kylin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Raspberry Pi automatic build tool for Ubuntu Kylin

English | [简体中文]

[简体中文]: ../zh_CN/优麒麟树莓派版本自动构建工具.md

## Origin Project

[Ubuntu Kylin for Raspberry Pi] is a custom distribution for Raspberry Pi. The [old project] was built using bash script, now it is moved to [docker]/[qemu] toolchain for automated installation.

[Ubuntu Kylin for Raspberry Pi]: https://github.com/UbuntuKylin/pi
[old project]: https://github.com/vhtq18w/ukarmimg
[docker]: https://www.docker.com
[qemu]: https://www.qemu.org

## Project Description

This project hopes to provide automated support for image building of Ubuntu Kylin for Raspberry Pi through docker/qemu toolchain.

* Support all models after Raspberry Pi 3.
* Enabling lower performance usage default settings for [ukui-kwin].
* Target image support for build jobs on x86, aarch64.

[ukui-kwin]: https://github.com/ukui/ukui-kwin

## Technical Requirements

**Required**

* docker
* bash

**Optional**

No

## Technical Keywords

**Docker**, **Raspberry Pi**

## Technical Details

The work on the final release build tool provided by this project is divided into the following main phases.

* Build environment preparation
* Pre-build kernel
* Stage file system generation
* Image export, partition and uboot setup
* Integration testing

### Build environment

Depending on the host architecture, the build environment will need to explore whether qemu needs to be introduced separately for emulation of the Raspberry Pi, another thing is that docker use buildx provides built-in qemu support. If qemu is to be introduced separately, then aarch64 emulation on x86 and x86 emulation on aarch64 will need to be considered. In addition, the environment should also provide support for the most basic tools, such as `apt`, `dpkg`, `debootstrap`, etc.

### Pre-build Kernel

In particular, a pre-build kernel is not required for the final build image, it is a minimized kernel provided to verify that the release version works properly, and is mainly used to provide an initial contextual environment for integration testing.

### Stage File System

Once we have the build environment, we need to build a stage filesystem of Ubuntu Kylin for Raspberry Pi, which will be used to export the final image. This file system contains the full UKUI desktop environment, as well as some third-party software that we expect to integrate.

### Image Export

Exporting the image from the stage filesystem is straightforward, it is worth noting the design of the partition table writes, how uboot is preconfigured for general use, etc.

### Integration testing

Integration testing here is not integration testing in the usual sense, but rather testing of the UKUI desktop environment after it has been integrated with the Ubuntu Kylin default application. This step verifies that the build will work without dependent hardware.

## Features CheckList

* [ ] Hardware Support

| Hardware Model | Support |
|----------------------|---------|
| Raspberry Pi 3B | ☐ |
| Raspberry Pi 3B+ | ☐ |
| Raspberry Pi 4B(4GB) | ☐ |
| Raspberry Pi(8GB) | ☐ |

* [ ] Architecture Support

| Architecture | Support |
|--------------|---------|
| amd64 | ☐ |
| aarch64 | ☐ |

* [ ] Pre-build Kernel

| Kernel Version | Support |
|----------------|---------|
| 5.4 | ☐ |
| 5.10 | ☐ |

## Development Plan

The current implementation of the build tool is divided into several phases.

### Phase 1

One to two weeks to investigate whether the buildx provided by docker is suitable for cross-architecture emulation of Raspberry Pi.

### Phase 2

The build tool is implemented to generate the stage file system and export the build image from it. This build image should work on the real hardware.

### Phase 3

Make the build tool support pre-build of the kernel and verify that the resulting kernel can boot the image from the previous phase using docker or qemu.

## Contact

* Mentor: [Burgess Chang], [Mail to him].

[Burgess Chang]: https://github.com/brsvh
[Mail to him]: mailto:[email protected]

## License

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License].

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
4 changes: 3 additions & 1 deletion en_US/Search services cluster of the UKUI Search.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@ English | [简体中文]

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/).
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License].

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
Empty file.
Empty file.
4 changes: 3 additions & 1 deletion zh_CN/Peony 文件管理器预览特性的实现.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,4 +138,6 @@

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

本文使用授权协议 [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/)
本文使用授权协议 [Creative Commons Attribution-ShareAlike 4.0 International License]

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
Empty file added zh_CN/UKUI Gentoo 移植.md
Empty file.
4 changes: 3 additions & 1 deletion zh_CN/ukui-search 聚合搜索插件.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

本文使用授权协议 [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/)
本文使用授权协议 [Creative Commons Attribution-ShareAlike 4.0 International License]

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
127 changes: 127 additions & 0 deletions zh_CN/优麒麟树莓派版本自动构建工具.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# 优麒麟树莓派版本自动构建工具

[English] | 简体中文

[English]: ../en_US/Raspberry Pi automatic build tool for Ubuntu Kylin.md


## 源项目介绍

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

[优麒麟树莓派版本]: https://github.com/UbuntuKylin/pi
[旧有项目]: https://github.com/vhtq18w/ukarmimg
[docker]: https://www.docker.com
[qemu]: https://www.qemu.org

## 项目介绍

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

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

[ukui-kwin]: https://github.com/ukui/ukui-kwin

## 技术要求

**必要**

- 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 验证所得内核能否正常引导前一阶段所得的镜像

## 联系

* 导师:[常秉善][邮件联系他]

[常秉善]: https://github.com/brsvh
[邮件联系他]: mailto:[email protected]

## 授权条款

[![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/)

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

[Creative Commons Attribution-ShareAlike 4.0 International License]: http://creativecommons.org/licenses/by-sa/4.0/
Empty file.

0 comments on commit 27361fc

Please sign in to comment.