Skip to content

whyprogrammer/yocto-meta-openeuler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yocto-meta-openeuler

介绍

yocto-meta-openeuler是用于构建openEuler Embedded所需要的一系列工具、构建配方的集合, 以及当前openEuler Embedded开发使用文档的承载仓库。

yocto-meta-openeuler核心是构建Yocto Poky之上,但针对openEuler Embedded的需求做了大 量的定制化的修改,包括但不限于:

  • 与openEuler其他场景的Linux, 共享软件包,共演进
  • 采用预先构建的工具链和libc库,以加速构建
  • 尽可能采用预先构建好的主机工具,以加速构建,同时采用容器化的构建
  • 针对嵌入式场景做相应的优化

软件架构

  • scripts 为一系列辅助工具,帮助好构建环境,如下载代码仓、创建构建环境等等

  • meta-openeuler 为构建openEuler Embedded所创建的Yocto层,包含相应的配置、构建配方等等

  • bsp 为openEuler Embedded的BSP(Board Support Package)抽象层,包含当前openEuler Embedded所支持的硬件BSP, 如QEMU、树莓派4B等

  • RTOS 为openEuler Embeddd的RTOS(Real-Time Operating System)抽象层,主要针对Linux和RTOS混合关键部署的场景,当前支持RT-Thread和Zephyr

  • docs 为openEuler Embedded使用和开发文档, CI会自动构建文档,并发布在如下地址:

    openEuler Embedded开发使用文档

快速上手

当前只支持在Linux环境下构建openEuler Embedded。

  1. 创建目录,推荐布局如下:
<openEuler Embedded构建顶层目录>
├── build  实际构建目录
├── tools  交叉工具链所在目录
├── src    openEuler Embedded所有代码包目录
  1. 在src目录下,git clone本仓库,并切换到最新开发分支,当前为openEuler-22.03-LTS
  2. 通过工具脚本下载当前所支持的软件包仓库,如下所示,该工具会git clone所有软件包仓库
    cd src
    source yocto-meta-openeuler/scripts/download.sh <path-to-src>
  1. 从如下地址下载交叉编译工具链,并解压在tools目录下

    openEuler Embedded交叉编译工具链

    解压后的目录如下:

<openEuler Embedded构建顶层目录>
├── tools  交叉工具链所在目录
    ├── openeuler_gcc_arm64le
  1. 在build目录下调用工具脚本准备好Yocto构建环境,如下所示:
    cd build
    source ../src/yocto-meta-openeuler/scripts/compile.sh <平台名称> <build目录路径> <交叉编译工具链路径>

之后便可以运行 bitbake <目标,例如openeuler-image-tiny> 开始构建

  1. 由于openEuler Embedded采取了尽可能不构建主机工具的策略,因此在构建主机上需要事先准备好相应的工具,具体所需要的工具可以从src/yocto-meta-openeuler/meta-openeuler/conf/local.conf.sample中的HOSTTOOLS_XXX相关变量中获得,另一种推荐的方法是采用容器构建,具体如下:

    openEuler Embedded容器构建

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码

一个合格的git提交信息如下所示,请尽可能在提交信息中描述相关信息,例如修改的原因,改动的地方,如何验证等等:

  module: this is git commit msg titile

   this is git commit msg body

   Signed-off-by: xxxx <[email protected]>

本仓库采用了gitlint检查每次git提交, 建议提交前使用 gitlint 检查您的提交,以避免CI门禁检查失败.

  1. 新建 Pull Request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published