Yocto Project Quick Build 翻译

Yocto Project Quick Build 翻译,第1张

版权所有©2010-2019 Linux基金会

欢迎!这个简短的文档通过Yocto Project帮助您一步步构建一个典型镜像文件,该文件还介绍了如何配置特定的硬件构建环境。您将使用Yocto Project构建一个名为Poky的嵌入式OS。

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

您必须在主机上安装必要的安装包。下面的命令基于Ubuntu环境:

完成上述安装后,您需要从Poky的仓库中克隆到本地,执行下面的命令:

移动到poky目录,并看看标签:

在这个例子中,检查出的分支是基于yocto-2.7版本:

以前的Git的checkout命令创建一个本地分支名为my-yocto-2.7。在该分支提供给您的文件正是在Yocto计划yocto-2.7版本发布时的资料库中的文件相匹配的“warrior”的开发分支。

使用下面的步骤来建立软件包。构建过程创建整个Linux发行版,其中包括工具链、源文件。

初始化构建环境:

从poky目录中,运行 oe-init-build-env

除此之外,该脚本将创建build目录,脚本运行后,您的当前工作目录设置为bulid目录。之后初始化完成后,build目录包含初始化过程中创建的所有文件。

检查您的本地配置文件

当你建立构建环境,build下的子目录conf里一个名为local.conf的配置文件变为可用。对于这个例子,默认被设置为建立一个qemux86目标,这是适合于仿真。

开始构建

使用下面命令构建软件包

使用QEMU模拟您的软件包

构建这个软件包需要很长的时间,取决于计算机运行速度。一旦这个特定的软件包构建,您就可以开始使用QEMU:

退出QEMU

通过在关机图标单击或通过Ctrl-C退出QEMU。

到目前为止,所有你做的是迅速建立仅适用于模拟的软件包。本节将展示如何通过添加硬件层到Yocto Project开发环境来定制你的构建来支持特定的硬件。

请按照以下步骤添加硬件层:

查找层

已经存在的硬件层有很多。Yocto Project源仓库有许多硬件层。本示例添加 meta-altera层。

克隆层

使用git复制硬件层到本地,您可以把副本创建再Poky文件夹下:

更改配置以建立一个特定的机器

该机在local.conf档案变量指定用于构建的计算机。对于此示例,将设备设定为变量“cyclone5”。这些配置用于:https://github.com/kraj/meta-altera/blob/master/conf/machine/cyclone5.conf。

添加图层的图层配置文件

完成这些步骤后已经添加了 meta-altera 层到您的Yocto Project开发环境,配置并构建"cyclone5"。

也许您需要一个应用程序或一组特定的行为来隔离现有开发环境。您可以通过 bitbake-layers create-layer 命令创建一个通用层. 该工具通过设置带有layer.conf配置文件的子目录,包含example.bb菜谱,许可文件和自述文件的recipes-example子目录,自动创建图层。

构建时间真的是特别特别特别特别长

1.Yocto简介:

Yocto 是一个开源社区,它通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (32 &64 bit)硬件体系架构。

2.Yocto定制准备工作

(1)确保电脑能联网,并且有100G的空闲,电脑配置不低于4核

(2)获取yocto脚本:$git clone git://git.yoctoproject.org/poky

(3)获取硬件相关层:$git clone git://git.yoctoproject.org/meta-intel.git

(4)关于yocto的帮助:http://www.yoctoproject.org/documentation

3.开始搭建环境

(1)$source poky/oe-init-build-env xxx

xxx$cd conf

xxx/conf$ vim bblayers.conf

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf

# changes incompatibly

LCONF_VERSION = "4"

BBFILES ?= ""

BBLAYERS ?= " \

/hda5/hmi/x86/yocto/poky/meta \

/hda5/hmi/x86/yocto/poky/meta-yocto \

/hda5/hmi/x86/yocto/poky/meta-intel \

/hda5/hmi/x86/yocto/poky/meta-intel/meta-crownbay \

(2)修改local.conf

xxx/conf$ vim local.conf

#MACHINE ??= "qemux86"

MACHINE ??= "crownbay"

4.开始编译

注:(官方下载的只是脚本,yocto一边下载一边编译所以很慢而且还受资源下载限制和电脑配置,下载的文件在工作目录中的downloads中,第一次下载后保存好downloads以后就方便了)

(1)配置内核

xxx$ bitbake linux_yocto -c menuconfig

(2)定制微型yocto

xxx$ bitbake core-image-minimal

(3)定制桌面型yocto

xxx$ bitbake coure-image-sato

(4) hob config

xxx$ hob

可以在图形化界面中方便的定制系统。

概述

Yocto Project 是一个开源协作项目,它提供了一些模板、工具和方法来支持面向嵌入式产品的自定义 Linux 系统,不管硬件架构是什么。我想要告诉那些对 yocto 这个名称不甚理解的用户的是,术语 yocto 是最小的 SI 单元。最为一个前缀,yocto 表示 10^-24。

本文将提供一个分步指导,向您介绍如何使用 Yocto Project 的行业标准开源工具为嵌入式设备创建自定义的 Linux *** 作系统,并使用 QEMU 在一台虚拟机中启动 *** 作系统。Yocto Project 是由大型硬件公司和 *** 作系统供应商资助的、由 Linux 基金会赞助的开源项目,提供了一些行业领先的工具、方法和元数据来构建 Linux 系统。

Yocto Project 的两大主要组件由 Yocto Project 和 OpenEmbedded 项目一起维护,这两个组件是 BitBake 和 OpenEmbedded-Core,前者是构建引擎,后者是运行构建过程所使用的一套核心配方 (recipe)。下一节会介绍所有项目组件。

Yocto Project 简介

作为一个协作项目,Yocto Project 有时也称为 “umbrella” 项目,它吸纳了许多不同的开发流程部分。在整个 Yocto Project 中,这些部分被称为项目,包括构建工具、称为核心配方 的构建指令元数据、库、实用程序和图形用户界面 (GUI)。

Poky

Poky 是 Yocto Project 的一个参考构建系统。它包含 BitBake、OpenEmbedded-Core、一个板卡支持包 (BSP) 以及整合到构建过程中的其他任何程序包或层。Poky 这一名称也指使用参考构建系统得到的默认 Linux 发行版,它可能极其小 (core-image-minimal),也可能是带有 GUI 的整个 Linux 系统 (core-image-sato)。

您可以将 Poky 构建系统看作是整个项目的一个参考系统,即运行中进程的一个工作示例。在下载 Yocto Project 时,实际上也下载了可用于构建默认系统的这些工具、实用程序、库、工具链和元数据的实例。这一参考系统以及它创建的参考发行版都被命名为 Poky。您还可以将此作为一个起点来创建您自己的发行版,当然,您可以对此发行版随意命名。

所有构建系统都需要的一个项目是工具链:一个编译器、汇编程序、链接器以及为给定架构创建二进制可执行文件所需的其他二进制实用程序。Poky 使用了 GNU Compiler Collection (GCC),不过您也可以指定其他工具链。Poky 使用了一种名为交叉编译 的技术:在一个架构上使用工具链为另一个架构构建二进制可执行文件(例如,在基于 x86 的系统上构建 ARM 发行版)。开发人员常常在嵌入式系统开发中使用交叉编译来利用主机系统的高性能。

元数据集

元数据集按层 进行排列,这样一来每一层都可以为下面的层提供单独的功能。基层是 OpenEmbedded-Core 或 oe-core,提供了所有构建项目所必需的常见配方、类和相关功能。然后您可以通过在 oe-core 之上添加新层来定制构建。

OpenEmbedded-Core 由 Yocto Project 和 OpenEmbedded 项目共同维护。将 Yocto Project 与 OpenEmbedded 分开的层是 meta-yocto 层,该层提供了 Poky 发行版配置和一组核心的参考 BSP。

OpenEmbedded 项目本身是一个独立的开源项目,具有可与 Yocto Project 交换的配方(大部分)以及与 Yocto Project 类似的目标,但是两者具有不同的治理和范围。

板卡支持包

BSP 包含为特定板卡或架构构建 Linux 必备的基本程序包和驱动程序。这通常由生产板卡的硬件制造商加以维护。BSP 是 Linux *** 作系统与运行它的硬件之间的接口。注意,您也可以为虚拟机创建 BSP。

BitBake

BitBake 是一个构建引擎。它读取配方并通过获取程序包来密切关注它们、构建它们并将结果纳入可引导映像。BitBake 由 Yocto Project 和 OpenEmbedded 项目共同维护。

Hob

为了让嵌入式 Linux 开发更容易,Yocto Project 提供了几种不同的图形工作方法。项目的一个较新的添加项叫作 Hob,它向 BitBake 和构建过程提供一个图像前端。两者的开发工作仍在继续,包含社区用户研究。

开源许可证合规性

遵守开源许可证是任何 Linux 开发工作的一个极其重要的部分。Yocto Project 的一个目标是尽可能容易地实现合规性。可以极为轻松地使用 Yocto Project 工具来创建清单(甚至构建整个源存储库)和过滤构建过程,用它们排除使用特定许可证的程序包。该项目使用了 Linux 基金会的 “开放遵守计划” (Open Compliance Program),该计划包含一个 Software Package Data Exchange® (SPDX™) 规范。

EGLIBC

嵌入式 GLIBC (EGLIBC) 是 GNU C Library (GLIBC) 的一个变体,旨在能够在嵌入式系统上运行。EGLIBC 的目标包括减少内存占用、让组件可配置、更好地支持交叉编译和交叉测试。EGLIBC 是 Yocto Project 的一部分,但在它自己的治理结构内加以维护。

应用程序开发工具包

应用程序开发工具包 (ADT) 能够让系统开发人员为他们使用 Yocto Project 工具创建的发行版提供软件开发工具包 (SDK),为应用程序开发人员提供了一种针对系统开发人员提供的软件栈进行开发的方法。ADT 包含一个交叉编译工具链、调试和分析工具,以及 QEMU 仿真和支持脚本。ADT 还为那些喜欢使用集成开发环境 (IDE) 的人提供了一个 Eclipse 插件。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11324859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存