长期支持版本

    社区创新版本

      容器构建指导

      由于openEuler Embedded构建过程需要基于openEuler操作系统,且需要安装较多系统工具和构建工具。为方便开发人员快速搭建构建环境,我们将构建过程所依赖的操作系统和工具封装到一个容器中,这就使得开发人员可以快速搭建一个构建环境,进而投入到代码开发中去,避免在准备环境阶段消耗大量时间。

      环境准备

      需要使用docker创建容器环境,为了确保docker成功安装,需满足以下软件硬件要求:

      • 操作系统: 推荐使用openEuler 20.03/22.03、Ubuntu 20.04/22.04、Debian 11、Suse 12.05
      • 内核: 推荐3.8及以上的内核
      • 驱动: 内核必须支持一种合适的存储驱动,例如: Device Mapper、AUFS、vfs、btrfs、ZFS
      • 架构: 运行64位架构的计算机(目前只支持x86_64和amd64)

      安装docker


      1. 检查当前环境是否已安装docker工具

      运行如下命令,可以看到当前docker版本信息,则说明当前环境已安装docker,无需再次安装。

      docker version
      
      1. 如果没有安装,可参考官方链接安装

      官网地址: http://www.dockerinfo.net/document,openEuler环境可参考Centos安装Docker。

      例如openEuler环境docker安装命令如下:

      sudo yum install docker
      

      获取容器镜像


      通过docker pull命令拉取华为云中的镜像到宿主机。命令如下:

      docker pull swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/openeuler-container:22.03-lts
      

      准备容器构建环境


      1.启动容器

      可通过docker run命令启动容器,为了保证容器启动后可以在后台运行,且可以正常访问网络,建议使用如下命令启动:

      docker run -idt --network host swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/openeuler-container:22.03-lts bash
      

      参数说明:

      • -i 让容器的标准输入保持打开
      • -d 让 Docker 容器在后台以守护态(Daemonized)形式运行
      • -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
      • --network 将容器连接到(host)网络
      • swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/openeuler-container 指定镜像名称
      • bash 进入容器的方式

      2.查看已启动的容器id

      docker ps
      

      3.进入容器

      docker exec -it 容器id bash
      

      构建环境已准备完成,下面就可以在容器中进行构建了。

      版本构建

      下载源码

      1. 获取源码下载脚本
      git clone https://gitee.com/openeuler/yocto-meta-openeuler.git -b openEuler-22.03-LTS -v /usr1/openeuler/src/yocto-meta-openeuler
      
      1. 通过脚本下载源码
      cd /usr1/openeuler/src/yocto-meta-openeuler/scripts
      sh download_code.sh /usr1/openeuler/src
      

      编译构建

      • 编译架构: aarch64-std、aarch64-pro、arm-std、raspberrypi4-64
      • 构建目录: /usr1/build
      • 源码目录: /usr1/openeuler/src
      • 编译器所在路径: /usr1/openeuler/gcc/openeuler_gcc_arm64le

      说明:

      • 不同的编译架构使用不同的编译器,aarch64-std、aarch64-pro、raspberrypi4-64使用openeuler_gcc_arm64le编译器,arm-std使用openeuler_gcc_arm32le编译器。
      • 下面以以aarch64-std目标架构编译为例。
      1. 将/usr1目录所属群组改为openeuler,否则切换至openeuler用户构建会存在权限问题。
      chown -R openeuler:users /usr1
      
      1. 切换至openeuler用户。
      su openeuler
      
      1. 进入构建脚本所在路径,运行编译脚本。
      cd /usr1/openeuler/src/yocto-meta-openeuler/scripts
      source compile.sh aarch64-std /usr1/build /usr1/openeuler/gcc/openeuler_gcc_arm64le
      bitbake openeuler-image
      

      构建结果说明

      结果件默认生成在构建目录下的output目录下,例如上面aarch64-std的构建结果件生成在/usr1/build/output目录下,如下表:

      filenamedescription
      Image-*openEuler Embedded image
      openeuler-glibc-x86_64-openeuler-image-*-toolchain-*.shopenEuler Embedded sdk toolchain
      openeuler-image-qemu-aarch64-*.rootfs.cpio.gzopenEuler Embedded file system
      zImageopenEuler Embedded compressed image

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份