Yocto - 使用Yocto开发嵌入式Linux系统_01 前言

Embedded Linux Development Using Yocto Project: Leverage the power of the Yocto Project to build efficient Linux-based products, Third Edition

By: Otavio Salvador, Daiane Angolini

Overview of this book

Yocto 项目是开发可靠的嵌入式 Linux 项目的行业标准。与其他框架相比,Yocto Project 不仅开发省时,而且可靠性和健壮性更强。通过《使用 Yocto Project 进行嵌入式 Linux 开发》,你将了解 Yocto Project 工具,帮助你执行各种基于 Linux 的任务。你将深入了解 Poky 和 BitBake,探索构建 Linux 子系统项目的实际用例,使用可用于嵌入式 Linux 的 Yocto Project 工具,并揭开 SDK、配方工具和其他工具的秘密。新版与上述技术的最新长期支持版本保持一致,并引入了两个新章节,内容包括在 QEMU 中优化仿真以加快产品开发和最佳实践。在本书结束时,你将具备为真实硬件板生成和运行映像的能力。你将获得使用 Yocto 项目构建高效 Linux 系统的实践经验。

The Yocto Project is the industry standard for developing dependable embedded Linux projects. It stands out from other frameworks by offering time-efficient development with enhanced reliability and robustness. With Embedded Linux Development Using Yocto Project, you’ll acquire an understanding of Yocto Project tools, helping you perform different Linux-based tasks. You’ll gain a deep understanding of Poky and BitBake, explore practical use cases for building a Linux subsystem project, employ Yocto Project tools available for embedded Linux, and uncover the secrets of SDK, recipe tool, and others. This new edition is aligned with the latest long-term support release of the aforementioned technologies and introduces two new chapters, covering optimal emulation in QEMU for faster product development and best practices. By the end of this book, you’ll be well-equipped to generate and run an image for real hardware boards. You’ll gain hands-on experience in building efficient Linux systems using the Yocto Project.

Preface

Linux 一直被广泛应用于尖端产品中,嵌入式系统也是人类技术组合的重要组成部分。

Linux has been consistently used in cutting-edge products, and embedded systems have been wrought in the technological portfolio of humankind.

Yocto 项目是你项目的最佳选择。它提供了一套丰富的工具,可帮助你在产品开发过程中充分利用精力和资源,而不是重新发明轮子。

The Yocto Project is in an optimal position to be the choice for your projects. It provides a rich set of tools to help you use most of your energy and resources in your product development instead of reinventing the wheel.

本书的构思以基于嵌入式 Linux 的产品和开发团队的通常任务和要求为准则。然而,本书由活跃的社区成员撰写,采用了实用而直接的方法,是你学习曲线和产品项目的垫脚石。

The usual tasks and requirements of embedded Linux-based products and development teams were the guideline for this book’s conception. However, being written by active community members with a practical and straightforward approach is a stepping stone for both your learning curve and the product’s project.

在第 3 版中,除了全面更新以反映 Yocto 项目长期支持版本 4.0(代号为 Kirkstone)的变化外,本书还根据前几版读者的反馈意见进行了彻底修改,并扩展了内容,以方便读者理解与 Yocto 项目相关的复杂概念。

In this third edition, the book has been thoroughly reworked to incorporate the feedback from readers from previous editions and extended to facilitate the understanding of complex concepts related to the Yocto Project, in addition to being fully updated to reflect the changes made up to Yocto Project Long Term Support version 4.0 (codename Kirkstone).

此外,还增加了两个新章节,一个是关于使用 QEMU 通过仿真加速产品开发,另一个是关于 Yocto 项目和一般项目指南。

Furthermore, two new chapters have been added, one regarding using QEMU to speed product development through emulation and one about Yocto Project and general project guidelines.

Who this book is for

本书面向有嵌入式 Linux 经验的工程师和爱好者,他们愿意学习 Yocto 项目的工具,以便进行评估、比较或在项目中使用。本书旨在帮助你快速上手,避免陷入常见的学习曲线陷阱。

This book is intended for engineers and enthusiasts with embedded Linux experience, willing to learn about Yocto Project’s tools for evaluation, comparison, or use in a project. This book is aimed at helping you get up to speed quickly and to prevent you from getting trapped into the usual learning curve pitfalls.

What this book covers

第 1 章,认识 Yocto 项目,将介绍 Yocto 项目及其主要工具的概念和前提。

第 2 章,构建基于 Poky 的系统,介绍首次构建所需的环境。

第 3 章,使用 Toaster 来构建镜像,介绍了可用作配置包装器和构建工具的用户友好型网络界面。

第 4 章,认识 BitBake 工具,介绍 BitBake 元数据概念。

第 5 章,掌握 BitBake 工具,介绍它如何管理任务及其依赖关系。

第 6 章,详细介绍临时编译目录,详细介绍编译的临时输出文件夹。

第 7 章,相同机制的打包支持,解释作为创建和管理所有二进制包基础的打包机制。

第 8 章,深入了解 BitBake 元数据,详细介绍 BitBake 元数据语言,该语言将用于所有其他章节。

第 9 章,Yocto 项目的开发,演示获取开发环境所需的工作流程。

第 10 章,Yocto 项目调试,介绍如何使用 Poky 生成调试环境以及如何使用该环境。

第 11 章,探索外部层,探讨了 Yocto 项目最重要的概念之一  ——  使用外部层的灵活性。

第 12 章,创建自定义图层,介绍创建图层的步骤。

第 13 章,定制现有配方,举例说明如何定制现有配方。

第 14 章,实现 GPL 合规性,总结了符合版权法的产品所涉及的任务和概念。

第 15 章,启动我们的定制嵌入式 Linux,使用真实的硬件机器和 Yocto 项目的工具。

第 16 章,通过仿真加速产品开发--QEMU ,介绍了 QEMU 如何加速产品开发。

第 17 章,最佳实践,根据作者的经验讨论了一些与 Yocto 项目和一般项目相关的指导原则。

Chapter 1, Meeting the Yocto Project, presents the first concepts and premises to introduce parts of the Yocto Project and its main tools.

Chapter 2, Baking Our Poky-Based System, introduces the environment needed for the first build.

Chapter 3, Using Toaster to Bake an Image, shows the user-friendly web interface that can be used as a configuration wrapper and build tool.

Chapter 4, Meeting the BitBake Tool, presents the BitBake metadata concepts.

Chapter 5, Grasping the BitBake Tool, shows how it manages the tasks and their dependencies.

Chapter 6, Detailing the Temporary Build Directory, details the temporary output folder of a build.

Chapter 7, Assimilating Packaging Support, explains the packaging mechanism used as a base to create and manage all the binary packages.

Chapter 8, Diving into BitBake Metadata, details the BitBake metadata language, which will be used for all the other chapters.

Chapter 9, Developing with the Yocto Project, demonstrates the workflow needed to obtain a development environment.

Chapter 10, Debugging with the Yocto Project, shows how to use Poky to generate a debug environment and how to use it.

Chapter 11, Exploring External Layers, explores one of the most important concepts of the Yocto Project—the flexibility of using external layers.

Chapter 12, Creating Custom Layers, practices the steps for layer creation.

Chapter 13, Customizing Existing Recipes, presents examples of how to customize existing recipes.

Chapter 14, Achieving GPL Compliance, summarizes the tasks and concepts involved for a copyleft compliance product.

Chapter 15, Booting Our Custom Embedded Linux, uses real hardware machines and the Yocto Project’s tools.

Chapter 16, Speeding Up Product Development Through Emulation – QEMU, illustrates how QEMU can accelerate product development.

Chapter 17, Best Practices, discusses some Yocto Project and general project-related guidelines based on the author’s experience.

What you will learn

* 了解基本的 Poky 工作流概念,以及配置和准备 Poky 构建环境

* 借助最新版本 Yocto 项目中的最新示例进行学习

* 使用 Toaster 配置构建服务器并自定义镜像

* 使用 BitBake 生成镜像并将软件包安装到创建的镜像中

* 通过设置和使用软件包源支持开发过程

* 通过配置 Poky 调试 Yocto 项目

* 为 BeagleBone Black、RaspberryPi 4 和 Wandboard 构建镜像,并从 SD 卡启动

* Understand the basic Poky workflows concepts along with configuring and preparing the Poky build environment

* Learn with the help of up-to-date examples in the latest version of Yocto Project

* Configure a build server and customize images using Toaster

* Generate images and fit packages into created images using BitBake

* Support the development process by setting up and using Package feeds

* Debug Yocto Project by configuring Poky

* Build an image for the BeagleBone Black, RaspberryPi 4, and Wandboard, and boot it from an SD card

To get the most out of this book

要充分利用这本书

要更好地理解本书,关键是你要对文中没有涉及或只是简单提及的一些主题有一定的背景知识,例如 Git 和 Linux 内核及其基本编译过程的常识。

To understand this book better, it is crucial that you have some previous background about some of the topics that are not covered or are just briefly mentioned in the text, such as Git and general knowledge of Linux kernel and its basic compilation process.

在了解本书详述的技术概念之前,若想了解 Yocto 项目的全貌,我们推荐你阅读 https://git.io/vFUiI Git 仓库中的开源小册子《Yocto 项目的方向》;这本小册子的内容旨在帮助新人更好地理解 Yocto 项目的目标及其潜在用途。在深入探讨如何实现的技术细节之前,本手册提供了项目概览。

To understand the big picture of the Yocto Project before going to the technical concepts detailed in this book, we recommend the open sourced booklet, Heading for the Yocto Project, found in the Git repository at https://git.io/vFUiI ; the content of this booklet is intended to help newcomers to gain a better understanding of the goals of the Yocto Project and its potential uses. It provides an overview of the project before diving into the technical details of how things can be done.

需要对 GNU/Linux 环境和嵌入式 Linux 的使用有基本的了解,以及开发中使用的一般概念,如编译、调试、部署和安装。此外,会使用 shell 脚本和 Python 更佳,因为这些编程语言是 Yocto 项目工具广泛使用的核心技术。

A basic understanding of the use of the GNU/Linux environment and embedded Linux is required, as well as the general concepts used in development, such as compilation, debugging, deployment, and installation. In addition, some experience with shell script and Python is a bonus because these programming languages are core technologies used extensively by the Yocto Project’s tools.

不过,你可能更喜欢了解这些主题。在这种情况下,我们推荐 Chris Simmonds 所著的《精通嵌入式 Linux 编程》(Mastering Embedded Linux Programming - Third Edition)一书,ISBN-13 978-1789530384。

However, you may prefer to learn more about those topics. In that case, we recommend the book Mastering Embedded Linux Programming - Third Edition, ISBN-13 978-1789530384, by Chris Simmonds.

你不应该把我们上面列举的那些概念中的任何缺失视为一种阻碍,而应该把它们视为你可以学习的东西,同时,你还可以通过这本书练习使用它们。

You shouldn’t take any missing concepts – of those we enumerated above – as a deterrent but as something you can learn and, at the same time, practice their use with this book.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427281.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络安全】-文件包含漏洞-pikachu

文件操作漏洞包括文件上传漏洞,文件包含漏洞,文件下载漏洞。 文章目录 前言 : 什么是文件包含漏洞? 1.文件包含漏洞的分类: 本地文件包含漏洞: 远程文件包含漏洞: 2.两种文件包含漏洞的区别: 3.…

【资料分析】刷题日记2

第一套 √ 2013-2016一共有13,14,15,16四年,亦即16 - 13 1 4年 √ 是多少倍 ③vs④:都是只给出了年均增速,③求的是其中一年的,无法确定;④求的是这个时段总共的,可…

Leetcode 93-复原 IP 地址

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.…

O1-preview:智能预测与预取驱动的性能优化处理器设计OPEN AI

# 创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力! O1-preview 是一种用于性能优化的处理器设计原理,主要通过智能预测和数据预取来提升处理器的执行效率。以下是对 O1-preview 原理的详细介绍,以及它相对于以往的…

腾讯音乐 2024乐圃音乐空间夏令营:以音乐传递爱,点亮公益之光

8 月 25 日晚,在四川北川,一场充满无尽 “乐” 趣的结营音乐会,为 2024 年乐圃音乐空间夏令营画上了完美的句号。这个由腾讯音乐娱乐集团(Tencent Music Entertainment Group,以下简称 “TME”)旗下腾讯音乐…

上架谷歌安卓APP完整图文流程

本节包含以下内容: 第一步:登录Google play开发者后台第二步:创建应用第三步:设置应用第四步:开启通知第五步:发布应用第六步:查看审核结果第七步:配置app支付参数第八步&#xff1…

论文速递!时序预测!DCSDNet:双卷积季节性分解网络,应用于天然气消费预测过程

本期推文将介绍一种新的时序预测方法:双卷积季节性分解网络(Dual Convolution withSeasonal Decomposition Network, DCSDNet)在天然气消费预测的应用,这项研究发表于《Applied Energy》期刊。 针对天然气消费的多重季节性和非规律性&#x…

C++ —— 关于vector

目录 链接 1. vector的定义 2. vector的构造 3. vector 的遍历 4. vector 的扩容机制 5. vector 的空间接口 5.1 resize 接口 5.2 push_back 5.3 insert 5.4 erase 5.5 流插入与流提取 vector 并不支持流插入与流提取,但是可以自己设计,更…

二进制补码及与原码的互相转换方法-成都仪器定制

大沙把一些基础的知识说清楚,本文介绍二进制补码及与原码的转换方法。 先说原码,原码‌是一种计算机中对数字的二进制定点表示方法。在原码表示法中,数值前面增加了一位符号位,最高位为符号位,0表示正数,1表…

SPI接口通信协议浅谈成都自动化开发

沙鸥-成都 1 什么是SPI SPI是串口外设接口的缩写,是一种高速的、全双工、同步的通信协议,是微处理器与外围IC之间常用的一种通讯方式。 SPI是主从式的通信协议,可以一主机一从机通信,也可以一主机多从机通信。 2 SPI的优缺点 SPI接…

模版进阶(template)

1.非类型模版参数 模版参数分类类型形参与非类型形参。 ① 类型形参:出现在在模板参数列表中,跟在class或者typename之类的参数类型名称。 ② 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当…

Leetcode Hot 100刷题记录 -Day14(矩阵置0)

矩阵置0 问题描述: 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:…

sqli-labs靶场搭建

下载了一个phpstudy进行搭靶场搭建 然后打开phpstudy安装好php,mysql等环境 正式sqli-labs靶场搭建 第一步:下载源码:https://codeload.github.com/Audi-1/sqli-labs/zip/master 解压后放进网站根目录,进到 sqli-labs的文件夹下&#xff0…

[2025]医院健康陪诊系统(源码+定制+服务)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

二叉树的链式结构和递归程序的递归流程图

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。链式结构又分…

基于Linux系统离线安装oracle数据库

注意事项: 在安装的时候多次涉及root用户和oracle用户的切换,请注意区分,本文已明显 一、环境准备 1、关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld2、 禁用NetworkManager服务(非必须) [rootlocalhost …

STM32—I2C通信外设

1.I2C外设简介 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担支持多主机模型(可变多主机)支持7位/10位地址模式(11110......)支持不同的通…

C++:布尔类型,引用,堆区空间

1.布尔类型 #include <iostream>using namespace std;int main() {bool b13;bool b20;cout << "b1" <<b1<< endl;cout << "b2" <<b2<< endl;cout <<boolalpha<< "b1" <<b1<<…

Java语言程序设计基础篇_编程练习题*18.29(某个目录下的文件数目)

题目&#xff1a;*18.29(某个目录下的文件数目) 编写一个程序&#xff0c;提示用户输入一个目录&#xff0c;然后显示该目录下的文件数。 和上一题(18.28)的思路差不多&#xff0c;把找到文件后累加大小到变量变成计数1即可。 Java语言程序设计基础篇_编程练习题*18.28 (非递…

3D点云目标检测数据集标注工具 保姆级教程——CVAT (附json转kitti代码)

前言&#xff1a; 笔者尝试过很多3D标注软件都遇到很多问题&#xff0c;例如CloudCompare不适合做3D目标检测的数据集而且分割地面的时很繁琐&#xff1b;labelCloud没有三视图&#xff0c;视角难以调整标得不够精确&#xff1b;SUSTechPOINTS换帧麻烦、输出时存储在docker里面…