各个嵌入式开发团队出于不同的原因,都希望构建适合自己开发需求的嵌入式系统。Yocto正是这样一个工具,任何一个厂商都可以根据Yocto定制属于自己的系统。
Yocto 是什么
Yocto 是一种伞式项目,侧重于通过开放式嵌入内核,打造嵌入式系统 Linux 发行版,而不受硬件架构的限制。Yocto 本身并非发行版,而是帮助您构建Linux发行版的框架。Yocto 已然成为必可不少的首选工具。开发人员和嵌入式系统制造商可以根据其自身硬件和软件限制以及实际应用程序,量身打造最适合自己的 Linux 版本。
更重要的是,Yocto 内置各种现有工具,拥有大量的开源支持,以灵活多变的特点而闻名。丰富的工具、维护、模板和社区产品,可以帮助您完成各种无与伦比的特殊构建任务。
可复制此链接详细了解Yocto :https://www.yoctoproject.org/
Yocto 三大关键组件
BitBake ——实质上就是 Yocto 的构建系统引擎。它负责创建配方——构建特定系统所需的任务列表——以及解析元数据和执行配方。
对如何分解并加速BitBake构建进程感兴趣的开发者,可预约Incredibuild最新活动(文章底部扫码获取报名入口)
OpenEmbedded-Core ——元数据。它保存了创建系统所需的基本配方、相关文件和类。构建时设定为通用,以便适用于各种基于 OpenEmbedded 的系统。
Poky ——包含一个基于 Linux 的全平台构建工具和各种其他技术,帮助各大团队以可靠的方式快速地开发新系统。Poky 基于各种架构生成文件系统镜像。其中的典型示例就是 QEMU全系统仿真,一种极其出色的嵌入式软件测试平台。
Yocto 构建工作流程
Yocto 也支持其他关键组件(例如 QT、Chromium、LLVM 等)内置到嵌入式发行版中,这也是它极受欢迎的原因之一。
为什么选择 Yocto
尽管 Yocto 操作有点复杂,但它有很明显的优势:
用户群体广泛,开发社区活跃,由Linux基金会出资扶持
可以实现曾层级,用于各种任务,高度定制化,可添加特殊功能,自定义浏览器等
在同类项目中,可以兼容的设备最多,可以添加大量的 SDK、工具和功能。
正是有了这些要素,Yocto 实现了高度可定制,同时还拥有强劲的支持,对于希望定制构建嵌入式系统的开发人员来说非常友好。
Yocto的缺点
Yocto 也有一些缺点。一方面,入门时的学习曲线稍微有点陡峭。对于时间有限的小型单个项目或小型团队来说,使用这个工具可能意义不大。另一方面,Yocto 的构建时间很长。这就降低了迭代频率,如用在时间紧迫的项目中,效果可能会不太理想,但借助类似 Incredibuild这样的加速工具便可大幅提速开发进程。
在Yocto体系中BitBake是非要重要的概念,另外由于Yocto项目构建且复杂,如何正确运用sstate缓存尤为重要。Incredibuild旗下技术社区IncrediClub将在7月14日发布嵌入式开发Yocto专题线上研讨会,正在使用Yocto或者计划使用Yocto的开发者可以报名参与(技术分享无收费),会议详情见下图海报
报名者联系Penny,可领取:
《Yocto全景》(英文版)
《BitBake手册》(中文版)
《BitBake复杂构建分解与加速》(中英文对照)
《使用Ccache加强sstate缓存》(中英文对照)