本文档是为从事嵌入式 Linux 应用程序的开发人员社区创建的。本文档的目的是指导您完成使用Yocto 框架为 Linux 发行版构建映像的步骤。
PS – 为了最好地利用本文档中的信息,必须具备以下专业知识:
熟悉基本的 Linux 操作系统操作和管理任务
Yocto项目和OpenEmbedded项目的理解
了解构建系统的基础知识
了解系统要求和 OpenEmbedded (OE) 构建系统:
在我们讨论工作流程之前,必须对系统要求和 OE 构建系统有一个基本的了解。以下是必要的细节。
一个。系统要求:
1.主机系统:理想情况下,至少有 50 GB 可用磁盘空间的系统可以在任何 Linux 发行版(即 Ubuntu、Fedora、CentOS、openSUSE 或 Debian)上运行。大多数情况下,本机 Linux 机器功能用作开发主机。
2 。 构建包:确保您的主机开发系统具有以下包(关于 Linux 发行版 - Ubuntu、Fedora、CentOS 等)
在无头系统上构建映像的要点
图形和 Eclipse 插件附加功能
文档
OpenEmbedded 自检
3. Yocto 项目的任何版本
湾。OpenEmbedded 构建系统和 BitBake 工具
OpenEmbedded (OE)是 Yocto 项目的构建系统。这个构建系统的核心组件是BitBake。
BitBake 执行解析元数据、从元数据创建任务列表等任务。
图 2:Yocto IDE
BitBake 工具由以下功能块组成:
用户配置:这包括用于管理 YOCTO 构建过程的元数据。作为开发人员,您可以通过指定目标架构、存储下载源的位置以及使用用户配置文件的其他构建属性来定义构建环境。
元数据、机器和策略配置层:这些层包含对构建过程管理至关重要的数据。
元数据:这一层由用户提供的配方文件、补丁和附加文件组成。
机器配置 (BSP):这一层包含特定于构建映像的目标架构的信息。特定于机器配置的信息由 Yocto 分层架构模型的 BSP 层提供。
Distro Layer/Policy Configuration:该层由指定特定分发的策略配置的数据组成。该层包括类文件、配置文件和配方。这些配方将包括自定义图像配方、特定于发行版的配置、初始化脚本。
源文件:包括上游版本、本地项目和源代码控制管理器 (SCM) 等源文件,构建系统从中下载源文件以构建映像。
构建系统:该块指定 BitBake 获取源、应用补丁、执行编译、分析输出以生成包、生成和测试这些包、生成图像和交叉开发工具的过程。
Package Feeds:此模块由目录组成,其中包含 RPM、DEB 或 IPK 格式的各种类型的输出包。在构建由构建系统生成的映像或 SDK 时使用包提要。它们还用于在运行时通过在 Web 服务器上复制和共享它们来扩展或更新设备上的现有图像。
图像:这是一个输出模块,用于管理由构建系统创建的 Linux 图像。
应用开发SDK:该模块由各种交叉开发工具组成,可以与镜像一起构建,也可以与BitBake分开构建。
使用 Yocto 项目作为嵌入式 Linux 构建系统的工作流程:
图 1:工作流程:使用 Yocto 构建 Linux 映像
为 YOCTO 构建系统设置主机系统:主机系统应符合最低系统要求,如前所述。此外,您应该测试主机构建系统的以下内容:
一个。所需的包
湾。构建系统满足 Git、tar 和 Python 的最低版本要求
C。如果没有,请安装预构建的构建工具,例如 Tarball,或者
d。构建您自己的构建工具,类似于 Tarball,前提是您的构建主机可以运行 BitBake。
下载 所需版本的 YOCTO 版本:通过克隆 Poky Git 存储库的本地副本,在主机开发系统上设置最新的 Yocto 项目文件。
下载供应商为 BSP 提供的元数据:根据处理器平台(ARM、MIPS、PowerPC 和 x86),您可以下载特定供应商提供的 BSP 元数据。
将供应商元数据添加到 Yocto 构建系统:通过创建存储库的本地副本将供应商元数据添加到您的构建主机环境。例如,meta-intel 是 Intel 特定目标架构的元数据。
进行构建配置更改:检查本地配置文件并通过编辑 bblayers.conf 和 local.conf 文件进行构建配置更改。这应该在调用 BitBake 命令初始化构建之前完成。
初始化构建环境:要定义 OpenEmbedded 构建环境,需要执行构建主机上的特定设置脚本。
该脚本创建一个构建目录,该目录位于源目录中。之后,当前工作目录设置为构建目录。构建完成后,构建目录将包含构建期间创建的所有文件。
开始构建镜像:现在 YOCTO IDE/ 框架已经收到了构建 Linux 镜像所需的所有命令。接下来通过一系列操作 Yocto (IDE) 将根据元数据中的信息/规范构建图像。
使用 QEMU 模拟和测试 Linux 映像:QEMU 作为模拟器和虚拟化机器,支持使用 Yocto Project 架构构建的 Linux 映像和应用程序的测试,而无需在实际硬件上运行它。
要在 QEMU Emulator 上运行 Linux 映像,请使用 runqemu 命令
编写 Linux 映像:根据 TARGET_DEVICE 命令中提供的信息,您可以借助 poky 存储库中包含的 mkefidisk.sh 脚本在任何目标设备(如 SATA 驱动器、SD 卡甚至 USB 密钥)上编写 Linux 映像。
为什么在 Linux 项目中使用 Yocto 框架?
轻松定制:Yocto 拥有一个非常健壮和强大的定制架构,它提供了许多定制选项,例如封装尺寸、启用/禁用图形子系统、可视化中间件和服务等组件。
供应商支持:Yocto Project 得到了大多数半导体和操作系统供应商以及主要电子制造公司的支持。因此,使用 Yocto,您可以利用坚实的支持生态系统并实现您的项目目标。
可重用性:Yocto 项目通过共享状态机制促进了这一点。这允许在类似的构建中重用资源。
嵌入式 Linux 应用程序的简化构建操作:Yocto 的单一通用框架帮助摆脱了对离散构建系统的依赖,其中每个 SoC 供应商都创建了自己的构建框架,仅与他们的微处理器平台兼容。
无缝添加 UI 组件:支持增强带显示设备的用户体验。Qt、Clutter 等系统组件(如 X11、GTK+ 和 SDL)促进了这一点。
仿真器支持:它支持使用 QEMU 仿真器进行硬件和设备仿真。因此,通过 Yocto Project 构建的映像可以在 QEMU 仿真器内启动,开发环境充当嵌入式软件的测试平台。
增加便利性:Yocto 凭借其用于构建系统和移植操作系统的可定制配方、工具和模板,使开发人员能够专注于其他核心开发任务。
系统管理和更新:每 6 个月发布一个新版本的 Yocto,包括内核 (LTSI)、工具链和软件包版本。
缩短 Crucial 嵌入式 Linux 应用程序的上市时间:使用 Yocto,开发人员可以在几个小时内从头开始构建整个 Linux 系统(根据项目组件,低至 1-2 小时)。
随时可用的 开发工具:作为 Yocto 用户,您可以访问各种开发工具,例如应用程序开发工具包 (ADT)、ECLIPSE IDE 插件、嵌入式设备的图形 UI (Matchbox)、QA 工具等等。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !