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

审核编辑:郭婷

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

    关注

    5087

    文章

    19148

    浏览量

    306182
  • Linux
    +关注

    关注

    87

    文章

    11322

    浏览量

    209865
  • 微处理器
    +关注

    关注

    11

    文章

    2271

    浏览量

    82571
收藏 人收藏

    评论

    相关推荐

    deepin操作系统介绍

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

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片划分的非实时
    的头像 发表于 11-11 11:43 521次阅读

    linux操作系统安装步骤 linux操作系统的特点及组成

    Linux操作系统安装步骤 Linux操作系统是一种开源的操作系统,它以其稳定性、安全性和灵活性而闻名。以下是安装
    的头像 发表于 10-21 11:24 601次阅读

    Linux操作系统份额创历史新高,逼近4.5%里程碑

    在最新的全球操作系统市场份额报告中,市调机构StatCounter于8月27日发布了令人瞩目的数据:2024年7月,Linux系统实现了历史性的飞跃,其市场份额首次逼近4.5%的关口,达到了4.44%的新高。这一成就标志着
    的头像 发表于 08-27 17:05 967次阅读

    Linux操作系统运行参数自动调整技术

    Linux操作系统运行参数的自动调整是一个复杂而关键的技术,它可以显著提高系统性能、稳定性和资源利用率。通过使用自适应算法特别是内核态的机器学习框架、性能监控工具和配置管理工具,能够在
    的头像 发表于 08-22 09:53 321次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>运行参数自动调整技术

    米尔瑞米派集聚5种操作系统,兼顾学习开发和项目产品需要的派

    BSP与系统移植 Remi Pi_Linux软件评估指南介绍使用Yocto项目安装运行Linux
    发表于 07-05 17:26

    工业实时操作系统对比:鸿道Intewell跟rt-linux有啥区别

    Intewell和RT-Linux是两种不同的实时操作系统(RTOS),它们具有各自独特的特点和优势。以下是Intewell操作系统的一些关键特性,以及与RT-Linux的比较:
    的头像 发表于 07-03 10:00 552次阅读
    工业实时<b class='flag-5'>操作系统</b>对比:鸿道Intewell跟rt-<b class='flag-5'>linux</b>有啥区别

    研华工控机用什么系统?Windows与Linux操作系统的较量

    工控机用什么系统?Windows与Linux操作系统的较量。工控机(工业控制计算机)作为工业自动化和监控系统的核心组件,其稳定性、可靠性和性能对整个
    的头像 发表于 06-14 14:38 724次阅读
    研华工控机用什么<b class='flag-5'>系统</b>?Windows与<b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>的较量

    AURIX3G可以使用Linux操作系统吗?

    即使在 AURIX3G 中,也可以使用 Linux 操作系统吗?
    发表于 05-22 07:12

    服务器操作系统有几种?

    众所周知,电脑上的一切正常运作都不可缺电脑操作系统的使用,网络服务器做为这种出示服务项目的服务器,或许都是不可 或缺的电脑操作系统。常用的网络服务器电脑操作系统有许多,比如:Windo
    发表于 03-29 16:59

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项

    瑞萨CTSU程序在向嵌入式OS操作系统移植时的注意事项
    的头像 发表于 03-29 08:05 364次阅读
    瑞萨CTSU程序在向嵌入式OS<b class='flag-5'>操作系统</b><b class='flag-5'>移植</b>时的注意事项

    瑞萨正式加入Zephyr项目,携手共建开源实时操作系统新生态

    近日,业界领先的半导体解决方案提供商瑞萨宣布正式加入Zephyr®项目,并荣升为银级会员。Zephyr作为Linux基金会的开源项目,致力于面向未来、资源受限的设备打造安全、互联且灵活的实时
    的头像 发表于 03-12 09:18 710次阅读

    Linux操作系统上的射频测试模式应用指南

    电子发烧友网站提供《Linux操作系统上的射频测试模式应用指南.pdf》资料免费下载
    发表于 02-19 09:39 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>上的射频测试模式应用指南

    全国大学生计算机系统能力大赛操作系统设计赛-LoongArch 赛道广东龙芯2K1000LA 平台资料分享

    项目是用于兰州大学的教学操作系统,兰州大学相关团队为其编写了教材《MaQueOS:基于龙芯LoongArch架构的教学版操作系统》。 Yocto.
    发表于 02-04 15:37

    Linux操作系统中如何按下PCIe的复位键

    Linux操作系统中,看如何按下PCIe的复位键
    的头像 发表于 01-20 09:31 1648次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>中如何按下PCIe的复位键