Yocto项目快速构建

Yocto项目快速构建

版权所有©2010-2020 Linux Foundation

根据知识共享组织发布的知识共享署名-相同方式共享2.0英国:英格兰和威尔士的条款,授予复制,分发和/或修改本文档的权限。

1 Welcome!

Welcome!这个简短的文档将指导您逐步完成使用Yocto Project构建典型镜像的过程。该文档还介绍了如何为一个特定硬件配置构建过程。您将使用Yocto Project参考发行版poky(You will use Yocto Project to build a reference embedded OS called Poky. )。

 注意:
 本文中的示例假定您使用的是运行最新Ubuntu Linux发行版的本机Linux系统。如果要使用Yocto Project生成映像的计算机(生成主机)不是本机Linux系统,您仍然可以通过使用CROss PlatformS(CROPS)并设置Poky容器来执行这些步骤。有关更多信息,请参见 《 Yocto项目开发任务手册》中的“ 设置使用CROss PlatformS(CROPS) ”部分。
 ​
 您不能使用使用Windows Linux子系统 (WSL)的构建主机 。Yocto项目与WSL不兼容。

如果您想获得有关Yocto项目的更多概念或背景信息,请参见 《Yocto Project Overview and Concepts Manual》Yocto项目概述和概念手册。

2 兼容的Linux发行版

确保您的构建主机满足以下要求:

  • 至少50 GB的可用磁盘空间,推荐大于等于150G,推荐给linux内存大于等于6G。

  • 运行受支持的Linux发行版(即Fedora,openSUSE,CentOS,Debian或Ubuntu的最新版本)。有关支持Yocto项目的Linux发行版的列表,请参见《Yocto Project Reference Manual》中的“ Supported Linux Distributions ”部分。有关准备构建主机的详细信息,请参见《Yocto Project Development Tasks Manual》中的"Preparing the Build Host"部分。

  • Git 1.8.3.1 或更高

    tar 1.28 或更高

    Python 3.4.0 或更高

    gcc 5.0 或更高

如果构建主机不满足列出的这三个版本中的任何一个,则可以采取步骤来准备系统,以便仍可以使用Yocto Project。有关信息,请参见《 Yocto Project Reference Manual for information》中的“ "Required Git, tar, Python and gcc Versions"部分。

3 构建主机软件包

您必须在构建主机上安装基本主机软件包。以下命令基于Ubuntu发行版安装主机软件包:

 注意
 有关所有受支持的Linux发行版上的主机软件包要求,请参见《Yocto Project Reference Manual》中的"Required Packages for the Build Host"部分。
 $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
  build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
  xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
  pylint3 xterm

4 使用git克隆poky

完成机器的安装说明后,您需要在构建主机上获取Poky。使用以下命令克隆Poky。

 $ git clone git://git.yoctoproject.org/poky
  Cloning into 'poky'...
  remote: Counting objects: 432160, done.
  remote: Compressing objects: 100% (102056/102056), done.
  remote: Total 432160 (delta 323116), reused 432037 (delta 323000)
  Receiving objects: 100% (432160/432160), 153.81 MiB | 8.54 MiB/s, done.
  Resolving deltas: 100% (323116/323116), done.
  Checking connectivity... done.

到poky目录并查看标签:

 $ cd poky
  $ git fetch --tags
  $ git tags
  1.1_M1.final
  1.1_M1.rc1
  1.1_M1.rc2
  1.1_M2.final
  1.1_M2.rc1
     .
     .
     .
  yocto-2.5
  yocto-2.5.1
  yocto-2.5.2
  yocto-2.6
  yocto-2.6.1
  yocto-2.6.2
  yocto-2.7
  yocto_1.5_M5.rc8

对于此示例,请检查基于yocto-3.0.2版本的分支:

 $ git checkout tags/yocto-3.1.1 -b my-yocto-3.1.1
  Switched to a new branch 'my-yocto-3.1.1'

前面的Git checkout命令创建一个名为my-yocto-3.0.2的本地分支。在Yocto Project yocto-3.0.2发布时,该分支中可供您使用的文件与“ zeus”开发分支中的存储库文件完全匹配。

有关访问Yocto Project相关存储库的更多选项和信息,请参见《Yocto Project Development Tasks Manual》中的"Locating Yocto Project Source Files"一节。

5 构建你的Image

使用以下步骤来构建您的映像。构建过程从源代码创建了整个Linux发行版,包括工具链。

 注意
 如果你打开防火墙,并且没有为代理设置构建主机,则在获取源代码时可能会遇到构建过程的问题(例如,获取程序失败或Git失败)。
 ​
 如果您不知道怎么设置,请查阅本地网络基础结构资源并获取该信息。先检查您的Web浏览器设置是您构建过程好的开始。最后,您可以在Yocto Project 维基百科上的“Working Behind a Network Proxy"页面上找到更多信息。

5.1 初始化构建环境:

在poky目录中,运行 oe-init-build-env 环境设置脚本以在构建主机上定义Yocto Project的构建环境。

 $ cd〜/ poky
  $source oe-init-build-env
  You had no conf/local.conf file. This configuration file has therefore been
  created for you with some default values. You may wish to edit it to, for
  example, select a different MACHINE (target hardware). See conf/local.conf
  for more information as common configuration options are commented.
 ​
  You had no conf/bblayers.conf file. This configuration file has therefore been
  created for you with some default values. To add additional metadata layers
  into your configuration please add entries to conf/bblayers.conf.
 ​
  The Yocto Project has extensive documentation about OE including a reference
  manual which can be found at:
      http://yoctoproject.org/documentation
 ​
  For more information about OpenEmbedded see their website:
      http://www.openembedded.org/
 ​
 ​
  ### Shell environment set up for builds. ###
 ​
  You can now run 'bitbake <target>'
 ​
  Common targets are:
      core-image-minimal
      core-image-sato
      meta-toolchain
      meta-ide-support
 ​
  You can also run generated qemu images with a command like 'runqemu qemux86-64'

脚本运行后,您当前的工作目录将被设置为Build Directory。当构建完成时,构建目录将包含在构建过程中创建的所有文件。

5.2 检查您的本地配置文件:

设置构建环境时,名为的本地配置文件在Build Directory的子目录conf中的 local.conf变为可用。对于此示例,将默认值设置为针对qemux86目标进行构建,以适合仿真。使用的软件包管理器设置为RPM软件包管理器。

 注意:
 您可以使用镜像显着加快构建速度,并防止获取程序失败。要使用镜像,请将这些行添加到 local.conf中:
      SSTATE_MIRRORS =“ \
      file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \ n \
      file://.* http://sstate.yoctoproject.org/2.7.2/PATH;downloadfilename=PATH \ n \
      file://.* http://sstate.yoctoproject.org/3.0.2/PATH;downloadfilename=PATH \ n \
      ”
                         
 前面的示例演示了如何为Yocto Project 2.7.2、3.0.2添加sstate 路径地址。有关sstate地址完整的索引,请参见 http://sstate.yoctoproject.org/。

5.3 开始构建:

在core-image-sato示例中 ,继续用以下命令为目标构建OS映像 :

$ bitbake core-image-sato

有关使用 bitbake命令的信息,请参见《Yocto Project Overview and Concepts Manual》中的“ BitBake ”部分,或参见《BitBake User Manual》中的“ BitBake Command ”部分。

5.4 使用QEMU模拟您的映像:

生成此特定映像后,您可以启动快速仿真器QEMU:

$ runqemu qemux86

如果要了解有关运行QEMU的更多信息,请参见《 Yocto Project Development Tasks Manual》中的“ Using the Quick EMUlator (QEMU) ”一章。

5.5 退出QEMU:

通过单击关闭图标或Ctrl-C在您从中唤醒QEMU的QEMU脚本窗口中键入来退出QEMU。

6 自定义特定硬件的版本

到目前为止,您所要做的就是快速构建仅适合仿真的映像。本节向您展示如何通过在Yocto Project开发环境中添加硬件层来针对特定硬件自定义构建。

通常,层是包含相关说明和配置集的存储库,这些说明和配置告诉Yocto Project该做什么。将相关的元数据隔离到功能特定的层中,有助于模块化开发,并使层元数据的重用变得更容易。

注意
按照约定,层名称以字符串“ meta-”开头。

6.1 查找层:

Yocto项目的资源仓库中存在很多hardware layers,此示例添加了 meta-altera hardware layers。

6.2 克隆层

使用Git把需要的hardware layers克隆到本地计算机。您可以将克隆的副本放在先前创建的Poky存储库文件目录的顶层:

$ cd〜/ poky
 $ git clone https://github.com/kraj/meta-altera.git
 Cloning into 'meta-altera'...
 remote: Counting objects: 25170, done.
 remote: Compressing objects: 100% (350/350), done.
 remote: Total 25170 (delta 645), reused 719 (delta 538), pack-reused 24219
 Receiving objects: 100% (25170/25170), 41.02 MiB | 1.64 MiB/s, done.
 Resolving deltas: 100% (13385/13385), done.
 Checking connectivity... done.
注意:
硬件层在构建主机上的Poky参考资料库中与其他层一起存在, meta-altera并且包含支持Intel拥有的Altera硬件所需的所有元数据。

6.3 将配置更改为针对特定计算机的构建:

配置文件local.conf中的变量MACHINE,用于构建指定的设备。对于此示例,将MACHINE 变量设置为“ cyclone5”。使用以下配置: https: //github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf。

注意
有关配置内部版本的更多信息,请参见前面的“ 检查本地配置文件 ”步骤。

6.4 将图层添加到图层配置文件:

必须先将其添加到bblayers.conf文件中,该文件位于“构建目录” conf目录中, 然后才能在构建过程中使用图层。

使用bitbake-layers add-layer 命令将图层添加到配置文件:

$ cd〜/ poky / build
 $  bitbake-layers add-layer ../meta-altera
 NOTE: Starting bitbake server...
 Parsing recipes: 100% |##################################################################| Time: 0:00:32
 Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, 123 skipped, 0 masked, 0 errors.

完成这些步骤已将meta-altera层添加 到Yocto Project开发环境中,并将其配置为“ cyclone5”机器构建。

注意
前面的步骤仅用于演示目的。如果要尝试为“ cyclone5”构建构建映像,则应阅读Altera README。

Maybe you have an application or specific set of behaviors you need to isolate. You can create your own general layer using the bitbake-layers create-layer command. The tool automates layer creation by setting up a subdirectory with a layer.conf configuration file, a recipes-example subdirectory that contains an example.bb recipe, a licensing file, and a README.

7 创建自己的通用层

也许您需要隔离某个应用程序或特定的行为。您可以使用以下bitbake-layers create-layer命令创建自己的通用层 。该工具通过设置一个带有layer.conf 配置文件的recipes-example 子目录,一个包含example.bb 配方的子目录,一个许可文件以及一个README,来自动创建layer。 用以下命令运行工具来在poky目录下创建一个名为meta-mylayer的层:

$ cd〜/ poky
 $ bitbake-layers create-layer meta-mylayer
 NOTE: Starting bitbake server...
 Add your new layer with 'bitbake-layers add-layer meta-mylayer'

想获取有关layers及其创建方法的更多信息,请参见《Yocto Project Development Tasks Manual》中的"Creating a General Layer Using the bitbake-layers Script" 章节。

猜你喜欢

转载自blog.csdn.net/u013921164/article/details/110945528