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

审核编辑:郭婷

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

    关注

    4981

    文章

    18274

    浏览量

    288338
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206724
  • 微处理器
    +关注

    关注

    11

    文章

    2131

    浏览量

    81399
收藏 人收藏

    评论

    相关推荐

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

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

    什么是LInux 操作系统中断

    LInux 操作系统中断 什么是系统中断 这个没啥可说的,大家都知道; CPU 在执行任务途中接收到中断请求,需要保存现场后去处理中断请求!保存现场称为中断处理程序!处理中断请求也就是唤醒对应的任务
    的头像 发表于 11-10 11:29 269次阅读
    什么是<b class='flag-5'>LInux</b> <b class='flag-5'>操作系统</b>中断

    linux属于什么操作系统

    Linux属于一种类UNIX操作系统Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX
    的头像 发表于 11-08 11:01 1726次阅读

    有无操作系统的嵌入式Linux驱动设备有何区别?

    是将系统的软件与硬件连接起来,使它们能够相互交互。 嵌入式系统常使用Linux系统作为开发平台,它具有开源、可移植、灵活的特点。而在嵌入式
    的头像 发表于 10-29 17:29 444次阅读

    开源操作系统大全

    系统,现对 Linux 以外的开源操作系统进行一次搜集和整理,详细内容如下: 1、KnightOS KnightOS 是一个专为 TI Z80 计算器编写的开源
    发表于 10-27 15:13

    STemWin无操作系统移植例程

    原子提供了很多的例程,真的非常棒emwin测试也是找的例程,阿波罗stm32f767 资料盘(a盘)4,程序源码3,扩展例程3,emwin扩展例程emwin实验1 stemwin无操作系统移植,新建了application文件夹,添加了自己的显示代码以上
    发表于 10-09 08:57

    EMWIN实验之STemWin无操作系统移植-T

    电子发烧友网站提供《EMWIN实验之STemWin无操作系统移植-T.rar》资料免费下载
    发表于 09-15 16:16 0次下载
    EMWIN实验之STemWin无<b class='flag-5'>操作系统</b><b class='flag-5'>移植</b>-T

    《铜豌豆 Linux》-- 中文 Linux 桌面操作系统

    《铜豌豆 Linux》-- 中文 Linux 桌面操作系统 https://www.atzlinux.com/ 简介 《铜豌豆 Linux》 是一款基于 Debian 的
    发表于 08-18 15:41

    云数据中心的linux操作系统有何好处?

    可以在商用服务器上实现低延迟事务和高吞吐量计算。那么云数据中心的linux操作系统有何好处? 在云数据中心使用Linux的一些主要好处如下: 1、灵活的运营模式:Linux的适应性使I
    的头像 发表于 08-02 17:54 336次阅读

    Linux驱动移植 Linux系统架构优点

    系统移植 linux 驱动移植 移植是说同样的一个 linux
    的头像 发表于 07-27 17:06 563次阅读
    <b class='flag-5'>Linux</b>驱动<b class='flag-5'>移植</b> <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>架构优点

    浅谈Linux操作系统的三大部分

    Linux操作系统是一种基于Unix的操作系统,它是由Linus Torvalds在1991年开发的。它是一个自由和开放源代码的操作系统,因此任何人都可以自由地使用、修改和发布它。
    发表于 07-23 12:59 1715次阅读
    浅谈<b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>的三大部分

    求分享N76E003移植NUC029LAN 的移植操作系统

    求N76E003移植NUC029LAN 的移植操作系统
    发表于 06-15 08:07

    Linux与Windows服务器操作系统有什么区别?

    服务器管理员经常接触两种主要的操作系统,即Linux和Windows,那么,我们如何选择适合我们服务器的操作系统呢?当然,首先这两个操作系统的区别!
    的头像 发表于 06-01 15:52 989次阅读

    什么是ARM-Linux嵌入式操作系统移植呢?

    什么是ARM-Linux嵌入式操作系统移植呢?
    发表于 05-16 10:22

    聊聊操作系统

    信息通信行业,还经常会和ubuntu、CentOS、Fedora这样的Linux系统打交道。 其实,操作系统的种类极多,远远不止我们知道的这些。 从使用场景来看,操作系统
    的头像 发表于 05-12 11:13 1025次阅读
    聊聊<b class='flag-5'>操作系统</b>