0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用YOCTO的力量进行Linux操作系统移植项目

星星科技指导员 来源:嵌入式计算设计 作者:Sreedevi Vamanan 2022-06-30 09:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文档是为从事嵌入式 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 执行解析元数据、从元数据创建任务列表等任务。

poYBAGK89wOABNiHAALcO1RFjkI627.png

图 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 构建系统的工作流程:

poYBAGK89xCAXfX3AAHS2CdTC38618.png

图 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 工具等等。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20145

    浏览量

    328736
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217934
  • 微处理器
    +关注

    关注

    11

    文章

    2416

    浏览量

    85326
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机的操作系统

    Linux网络协议栈和文件系统(如JFFS2),但实时性较弱,需外扩存储器。 ‌ ‌ VxWorks ‌:高效实时操作系统,广泛应用于通信、军事等领域,支持自定义硬件模块。 ‌ 其他选择 ‌ Keil
    发表于 11-14 06:18

    移植蜂鸟需要在Linux环境下吗?

    《手把手教你设计CPU》书上运行Verilog仿真测试那章说为了重现仿真环境,最好在Linux环境下。不知道移植蜂鸟是否需要在Linux环境下,直接在Windows操作系统可否
    发表于 11-10 07:42

    Jtti Linux操作系统最常见的10大优势

    。以下是Linux操作系统最常见的十大优势: 1. 开源自由 ? Linux的开源性质是其最大的优势之一。任何人都可以自由地查看、修改和分发其源代码。这意味着用户不仅可以根据自己的需求进行
    的头像 发表于 11-06 15:32 127次阅读

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】+基础概念学习理解

    。为了对珠峰更了解些,开始接触 Linux 系统开发,并逐渐认识到 Yocto 项目在定制嵌入式 Linux
    发表于 08-04 22:29

    树莓派操作系统:版本、特性及设置完整指南!

    树莓派操作系统是什么?树莓派操作系统是由树莓派基金会专为树莓派开发的官方操作系统。它基于DebianLinux发行版,并针对树莓派的ARM架构进行了专门优化。树莓派
    的头像 发表于 07-28 18:26 817次阅读
    树莓派<b class='flag-5'>操作系统</b>:版本、特性及设置完整指南!

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】01初读体验

    顺序为从基础到进阶,从进阶到实战,也就是说前面的部分偏理论知识学习,后端知识偏向于项目应用 Yocto可能能解决目前linux源码中的无用代码过多的问题(我一直觉得linux,zepy
    发表于 06-30 21:49

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】01总结与实践记录

    还是比较合理的,分为了基础普及和项目实战环节,基础普及里也有跟linux嵌入式构建相关的基础,也有Yocto的基础内容,对这块感兴趣的也可以了解了解。 个人比较感兴趣的是从树莓派那里的实战内容,对于
    发表于 06-30 11:38

    【新书速递】Yocto项目实战教程:高效定制嵌入式Linux系统

    论坛>>社区活动专版标题名称必须包含【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】+自拟标题立即扫码参与活动注意事项
    的头像 发表于 05-27 08:05 1419次阅读
    【新书速递】<b class='flag-5'>Yocto</b><b class='flag-5'>项目</b>实战教程:高效定制嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>

    【书籍评测活动NO.61】Yocto项目实战教程:高效定制嵌入式Linux系统

    扩展、自动化的构建工具集 。它采用模块化架构、分层构建体系和软件栈管理机制,使开发者能够高效定制、优化和维护嵌入式 Linux 系统,可提高开发效率并降低适配成本。 Yocto 项目
    发表于 05-21 10:00

    普华基础软件开源车用操作系统迎来全新版本

    近日,普华基础软件开源车用操作系统媒体发布会在上海中国汽车会客厅召开——全球首个开源智能驾驶操作系统微内核龘EasyAda、开源安全车控操作系统小满EasyXMen全新版本正式发布。现场,普华基础软件开源
    的头像 发表于 04-25 16:18 796次阅读

    鸿道Intewell操作系统Linux实时拓展方案

    鸿道Intewell操作系统是科东软件自主研发的新型工业实时操作系统,历经30多年研发积累,采用业界领先的微内核架构,具备高实时、高安全及强扩展的特性,是目前国内唯一通过汽车、工业控制、医疗仪器、轨道交通四项功能安全认证的操作系统
    的头像 发表于 02-27 10:08 616次阅读
    鸿道Intewell<b class='flag-5'>操作系统</b>的<b class='flag-5'>Linux</b>实时拓展方案

    am335x开发板能否支持Vxworks操作系统移植

    请问在TI官网购买的am335x开发板能否支持Vxworks操作系统移植,并进行内核裁剪和BSP开发,是否提供开源的BSP开发源码
    发表于 02-18 07:02

    国产银河麒麟操作系统V10和星光麒麟V1.0操作系统如何选择?

    国产银河麒麟操作系统和星光麒麟操作系统都是由中国电子旗下科技企业麒麟软件有限公司(简称“麒麟软件”)开发的国产自主可控的操作系统。麒麟软件介绍:麒麟软件以安全可信操作系统技术为核心,面
    的头像 发表于 01-24 09:14 4210次阅读
    国产银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    云服务器选择什么操作系统好?

    云服务器选择什么操作系统好?选择云服务器操作系统需考虑业务需求、兼容性、安全性、易用性及成本。Linux系统如CentOS、Ubuntu和Debian因稳定、免费且社区支持强大而受欢迎
    的头像 发表于 01-21 10:56 734次阅读

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说
    的头像 发表于 12-23 09:08 3220次阅读
    deepin<b class='flag-5'>操作系统</b>介绍