华信教育资源网
Yocto项目实战教程:高效定制嵌入式Linux系统
作   译   者:孙杰 出 版 日 期:2025-05-01
出   版   社:电子工业出版社 维   护   人:符隆美 
书   代   号:TP500750 I S B N:9787121500756

图书简介:

《Yocto项目实战教程》是一本系统化讲解Yocto项目核心技术的专业教程。全书从基础概念到高级应用,详细剖析了Yocto项目体系架构,包括Linux系统架构解析、OpenEmbedded构建系统原理、元数据组织架构、BitBake构建引擎工作机制、Poky参考系统的核心组件等关键技术。特别针对嵌入式开发实践需求,深入讲解了内核菜谱定制、BSP层开发、交叉编译工具链构建、SDK集成开发等实战内容。书中提供了丰富的开发案例,涵盖从QEMU模拟器、树莓派到NXP i.MX系列工业级平台的实际应用,通过循序渐进的教学方式,帮助读者快速掌握Yocto项目的开发方法与技巧。本书内容翔实、案例典型,既适合嵌入式Linux开发工程师作为工作参考手册,也可作为高校嵌入式系统课程的专业教材,同时还能满足技术爱好者自学Yocto项目的需求。
定价 108.0
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    《Yocto项目实战教程》是一本系统化讲解Yocto项目核心技术的专业教程。全书从基础概念到高级应用,详细剖析了Yocto项目体系架构,包括Linux系统架构解析、OpenEmbedded构建系统原理、元数据组织架构、BitBake构建引擎工作机制、Poky参考系统的核心组件等关键技术。特别针对嵌入式开发实践需求,深入讲解了内核菜谱定制、BSP层开发、交叉编译工具链构建、SDK集成开发等实战内容。书中提供了丰富的开发案例,涵盖从QEMU模拟器、树莓派到NXP i.MX系列工业级平台的实际应用,通过循序渐进的教学方式,帮助读者快速掌握Yocto项目的开发方法与技巧。本书内容翔实、案例典型,既适合嵌入式Linux开发工程师作为工作参考手册,也可作为高校嵌入式系统课程的专业教材,同时还能满足技术爱好者自学Yocto项目的需求。

    图书详情

    ISBN:9787121500756
    开 本:16(185*235)
    页 数:448
    字 数:613

    本书目录

    第1章 Yocto项目	1
    1.1 嵌入式Linux系统	1
    1.1.1 什么是嵌入式系统	2
    1.1.2 嵌入式Linux系统简介	2
    1.1.3 嵌入式Linux系统的应用领域	3
    1.1.4 嵌入式Linux系统的构建工具	4
    1.1.5 常见的嵌入式Linux系统发行版	5
    1.2 什么是Yocto项目	6
    1.2.1 Yocto项目的起源	6
    1.2.2 为什么选择Yocto项目	7
    1.2.3 社区与资源	7
    1.3 Yocto项目概览	9
    1.3.1 版本管理	10
    1.3.2 开发与生产工具	12
    1.3.3 常用术语	13
    1.4 特性与挑战	16
    1.4.1 特性与优势	16
    1.4.2 面临的挑战	17
    1.4.3 经验总结	19
    第2章 Linux系统架构	22
    2.1 GNU/Linux	22
    2.1.1 GNU/Linux概述	23
    2.1.2 Linux系统架构概述	23
    2.2 Bootloader	24
    2.2.1 Bootloader启动流程	25
    2.2.2 常用的Bootloader	25
    2.2.3 U-Boot简介	26
    2.2.4 GRUB简介	27
    2.3 内核空间	28
    2.3.1 Linux内核	28
    2.3.2 控制硬件资源	31
    2.3.3 服务用户空间	32
    2.4 用户空间	33
    2.4.1 根文件系统	34
    2.4.2 标准C库	34
    2.4.3 系统共享库	36
    2.4.4 init进程	37
    2.4.5 窗口管理系统	38
    第3章 Yocto项目基础架构	40
    3.1 快速构建指南	41
    3.1.1 搭建构建主机环境	41
    3.1.2 下载Poky源代码	42
    3.1.3 初始化OpenEmbedded构建环境	42
    3.1.4 构建镜像	44
    3.1.5 QEMU启动镜像	44
    3.2 Yocto项目架构	45
    3.2.1 层模型	45
    3.2.2 核心组件	46
    3.2.3 构建主机	47
    3.3 OpenEmbedded构建系统	48
    3.3.1 BitBake构建引擎	49
    3.3.2 OpenEmbedded-Core	49
    3.3.3 构建系统工作流	50
    3.4 OpenEmbedded构建环境	52
    3.4.1 构建环境配置脚本	53
    3.4.2 构建目录结构	54
    3.4.3 构建输出结构	55
    第4章 元数据架构	60
    4.1 元数据	60
    4.1.1 元数据的概念	61
    4.1.2 元数据文件	61
    4.1.3 元数据语法	68
    4.2 菜谱	77
    4.2.1 菜谱及追加菜谱示例	77
    4.2.2 菜谱命名与版本控制	79
    4.2.3 菜谱语法	81
    4.2.4 创建菜谱	89
    4.2.5 菜谱工作流	97
    4.3 层	108
    4.3.1 层的概念	108
    4.3.2 层的结构与功能	109
    4.3.3 层的分类	115
    4.3.4 bitbake-layers层管理工具	122
    第5章 BitBake构建引擎	130
    5.1 BitBake的起源与发展	130
    5.2 BitBake的源代码	131
    5.2.1 BitBake源代码的获取	131
    5.2.2 BitBake源代码结构及核心模块	132
    5.3 BitBake命令	137
    5.3.1 BitBake的命令语法	137
    5.3.2 执行默认任务	140
    5.3.3 执行指定任务	141
    5.3.4 强制执行任务	143
    5.4 BitBake调试与优化	144
    5.4.1 清除共享状态缓存	144
    5.4.2 查看任务列表	146
    5.4.3 查看变量值	149
    5.4.4 查看依赖关系	150
    5.4.5 查看调试信息	153
    5.5 BitBake执行流程	154
    5.5.1 基础配置解析	155
    5.5.2 菜谱解析与管理	156
    5.5.3 任务依赖与调度	158
    5.5.4 任务执行与日志记录	159
    第6章 Poky参考发行版	163
    6.1 Poky	163
    6.1.1 发行版与特性	164
    6.1.2 源代码接口与核心文件	165
    6.2 镜像菜谱	167
    6.2.1 镜像菜谱详解	167
    6.2.2 镜像菜谱语法	171
    6.2.3 镜像类	173
    6.2.4 包组菜谱	178
    6.3 机器配置文件	181
    6.3.1 Poky中的机器配置文件	181
    6.3.2 机器特性与实现	188
    6.3.3 选择目标设备	190
    6.4 发行版配置文件	191
    6.4.1 指定发行版配置文件	191
    6.4.2 Poky中的发行版配置文件	192
    6.4.3 发行版特性与实现	199
    6.5 QEMU	203
    6.5.1 QEMU简介	203
    6.5.2 设置QEMU的运行环境	204
    6.5.3 runqemu脚本	204
    第7章 定制镜像菜谱与内核菜谱	208
    7.1 定制镜像菜谱	209
    7.1.1 搭建构建环境	209
    7.1.2 创建自定义层	210
    7.1.3 定制镜像菜谱的步骤	211
    7.1.4 QEMU测试镜像	214
    7.2 定制应用程序	216
    7.2.1 HelloWorld应用程序	216
    7.2.2 Yocto项目中的HelloWorld程序	217
    7.2.3 使用QEMU测试HelloWorld程序	219
    7.3 定制内核菜谱	219
    7.3.1 Yocto项目的内核仓库	220
    7.3.2 内核元数据	225
    7.3.3 内核菜谱	234
    7.3.4 内核配置	239
    7.3.5 定制内核菜谱的步骤	242
    7.4 定制内核树外模块	245
    7.4.1 树外模块的基本原理	246
    7.4.2 树外模块的安装与加载	246
    7.4.3 定制customer.ko树外模块	248
    第8章 树莓派启动定制镜像	253
    8.1 树莓派简介	254
    8.1.1 树莓派4B	254
    8.1.2 树莓派与Yocto项目	255
    8.2 构建和部署树莓派镜像	256
    8.2.1 构建树莓派测试镜像	256
    8.2.2 将镜像部署到SD卡	261
    8.2.3 启动树莓派4B	265
    8.3 meta-raspberrypi层	266
    8.3.1 meta-raspberrypi层概述	267
    8.3.2 层配置	269
    8.3.3 硬件配置	271
    8.3.4 内核配置	274
    8.3.5 图形系统配置	278
    8.3.6 硬件测试镜像菜谱	279
    8.4 使用Wic工具创建分区镜像	280
    8.4.1 Wic工具介绍	280
    8.4.2 Kickstart文件	284
    8.4.3 Wic插件	286
    8.4.4 Wic工具的操作模式	288
    8.4.5 树莓派的镜像分区	290
    8.4.6 dd和bmaptool部署镜像	293
    第9章 实战定制树莓派BSP层	297
    9.1 创建与配置BSP层	298
    9.1.1 定制BSP层的方法	298
    9.1.2 创建meta-raspberrypi-custom层	298
    9.1.3 定制机器配置文件	300
    9.2 定制内核菜谱	300
    9.2.1 内核配置	301
    9.2.2 指定内核设备树文件	302
    9.2.3 添加内核补丁	303
    9.3 定制硬件启动配置菜谱	306
    9.3.1 指定内核设备树文件	307
    9.3.2 控制LED硬件行为	308
    9.4 定制测试镜像菜谱	310
    9.4.1 创建基础测试镜像菜谱	311
    9.4.2 添加SSH服务	311
    9.4.3 X11图形显示协议	311
    9.4.4 启用Systemd系统管理器	313
    9.5 定制分区镜像	316
    9.5.1 定制Kickstart文件	317
    9.5.2 重构并验证镜像	318
    9.5.3 meta-raspberrypi-custom层的最终结构	319
    第10章 软件开发工具包	321
    10.1 软件开发工具包概述	322
    10.1.1 SDK简介	322
    10.1.2 获取和使用SDK安装包	324
    10.1.3 SDK通用组件	328
    10.2 可扩展SDK	333
    10.2.1 可扩展SDK结构	333
    10.2.2 定制可扩展SDK安装包	336
    10.2.3 devtool命令行工具	340
    10.3 标准SDK构建应用程序	349
    10.3.1 定制应用程序	349
    10.3.2 构建应用程序	350
    10.3.3 部署与测试	353
    10.4 可扩展SDK构建与部署	355
    10.4.1 创建菜谱	355
    10.4.2 构建与部署	360
    10.4.3 测试与集成	362
    第11章 进阶项目实战	367
    11.1 搭建项目开发环境	368
    11.1.1 硬件开发环境	368
    11.1.2 软件开发环境	370
    11.2 初始化构建环境	378
    11.2.1 构建环境配置脚本	379
    11.2.2 初始化构建环境	381
    11.3 元数据结构	385
    11.3.1 元数据层结构	385
    11.3.2 镜像菜谱	388
    11.3.3 内核	392
    11.3.4 Bootloader	398
    11.4 定制层与镜像	403
    11.4.1 创建meta-imx-custom层	403
    11.4.2 创建追加菜谱文件	404
    11.4.3 集成Chromium浏览器	405
    11.4.4 添加Systemd服务	408
    11.5 构建镜像与部署验证	412
    11.5.1 构建目标镜像	412
    11.5.2 搭建部署环境	414
    11.5.3 启动硬件与验证	421
    附录A Yocto项目社区与支持渠道	427
    展开

    前     言

    推荐序一
    与作者相识多年,我们既是同学,也是志趣相投的挚友。一路走来,我们的交流始终围绕着技术。从嵌入式开发到开源生态,再到AI的融合应用,我们共同见证了技术的发展,也在各自的领域持续深入探索。在这一路上,我们最大的感触就是:技术的进步不仅仅是工具的演变,更是学习方式、实践路径和产业落地的全面升级。
    当下,嵌入式开发正迎来新的浪潮,国产芯片、AIoT(人工智能物联网)、边缘计算的快速发展,让定制化的嵌入式Linux系统成为必然选择。而在这一领域,Yocto项目无疑是一款强大的工具,能够帮助开发者精准且高效定制嵌入式系统,以及优化软硬件协同。但Yocto项目的学习曲线陡峭且生态复杂,许多开发者在入门时都会遇到不小的挑战。
    作者长期深耕Yocto项目,从技术学习到工程实践,再到社区分享,他不仅积累了丰富的经验,更具备将复杂问题系统化、结构化的能力。本书便是他这些年开发经验的凝练,不仅全面解析了Yocto项目的理论体系,还结合QEMU模拟器、树莓派教学开发板和恩智浦i.MX 8M Plus高端芯片的实战案例,为处于不同学习阶段的开发者提供了一条清晰可操作的学习路径。无论是刚入门的嵌入式工程师,还是希望深入掌握Yocto项目的资深开发者,相信你都能在书中找到值得拥有的内容。
    在开源技术的持续推动下,嵌入式开发正呈现出生态融合、全球协作与技术共享的趋势。我们正处在行业变革的关键节点,未来的嵌入式系统开发不仅要适应国产芯片的软件生态演进,还需深度融合AI推理加速与软硬件协同优化。本书的亮点不仅在于技术讲解,更在于为国内开发者提供一条系统化的学习路径,帮助大家更高效地掌握Yocto项目,在嵌入式开发的浪潮中提升竞争力。
    技术因分享而进步,产业因协作而繁荣。希望这本书能成为更多嵌入式开发者的学习指南,帮助大家少走弯路,提升效率,在国产芯片生态演进与智能计算时代抓住机遇。
    王强
    佛山市迪海网络科技有限公司董事长
    
    推荐序二
    在近二十年嵌入式产品开发和推广的过程中,我的工作一直围绕在如何让嵌入式工程师更快更好地开发产品。嵌入式技术作为电子信息产业的基础技术,近十年来在国内经历了飞速的发展。然而,当下国外已经普遍使用的Yocto项目相关技术,在国内仍然面临一些挑战:Yocto项目好用,但学习曲线陡峭;想学Yocto项目,但国内的资料和生态不成熟。这是当前国内开发者运用Yocto项目这把嵌入式领域的“瑞士军刀”时,常会面临的困境和挑战。
    本书作者,我的好友孙杰,在国外求学多年后,又在世界500强企业从事嵌入式开发多年,至今仍在该领域深耕。得益于其出色的语言能力和规范且系统的工作环境,及多年Yocto项目的实战工作经历,他充分掌握了Yocto项目的开发精髓。在作者多年的博客生涯中,众多网友对其分享的Yocto项目相关文章给予了高度关注和广泛传播。在与众多开发者交流的过程中,他意识到开发者迫切需要一本系统且实用的Yocto项目使用指南。于是出于助力国内开发者更快更好地学习和使用Yocto项目的初心,作者写下了本书,分享他的专业知识和经验。
    本书紧密结合Yocto项目的核心概念和实战案例,结构清晰、层次分明、由浅入深,将理论学习和实践应用有效结合。全书内容大体分为三个部分。
    第一部分:系统并精要地介绍了Yocto项目基础框架与核心组件,包括元数据结构,BitBake构建引擎,Poky参考发行版,镜像菜谱和内核菜谱等关键知识点。受益于作者多年的深入研究,这些章节并不是直接地搬运官方知识或进行简单翻译,而是作者对Yocto项目完整知识体系的梳理和传递。
    第二部分:以定制树莓派系统作为入门案例,讲述了BSP定制和SDK生成两个实战中常用的核心知识点,让初学者能以最低的学习成本快速学习和使用Yocto项目的核心技术。在实践中学习,结合前面章节的知识体系与树莓派广泛的应用基础,让Yocto项目实战的第一步做到了敏捷而有效。
    第三部分:以NXP公司的i.MX 8M Plus芯片开发为案例,介绍了工业场景中系统开发的完整过程。这能有效地帮助开发者实现Yocto项目从入门到精通的过程,充分地体会和发挥Yocto项目的开发优势,帮助开发者实现高效进阶。
    相信无论对于初学者还是有一定经验但需要进阶的开发者而言,通过本书各个章节的学习,都能真正敏捷且高效地使用Yocto项目实现嵌入式Linux系统的开发。
    写作本序的时候,我正好在参加纽伦堡嵌入式展会。围绕嵌入式技术的未来发展,展商众多,观众如云,热闹非凡,这也体现了全球嵌入式技术发展如火如荼。相比于13年前嵌入式展会寥寥的中国面孔,在今年的嵌入式展会上,来自中国的芯片厂家和嵌入式产品方案公司已经占据了相当大的比例。各个展台关于AI嵌入式边缘应用的广泛尝试,机器人应用的深度探索,工业场景的性能跃迁,新能源汽车等热点方向的应用展示,吸引了大批观众驻足交流。
    在嵌入式技术范围之内,世界是平的。正如本书作者的经历一样,因为他人的分享而收获,也推动他积极地回馈,帮助国内开发者应对学习Yocto项目的挑战。因为开源和分享,全球的开发者将共同推动创新,并享受来自分享的效率提升。也正因为我们有众多像作者一样卓越的开发者,相信下一个十年,我们将见证中国的开发者和企业在嵌入式开发领域经历从使用者到提供者,从跟随者到引领者,从群演到主演的“版本升级”。
    周麒 
    深圳米尔电子副总经理
    
    前言
    本书基于笔者的实践经验,系统化讲解Yocto项目的核心知识,结合丰富的实战示例,帮助读者高效掌握Yocto项目的构建方法,并深入理解其应用与实践技巧。
    嵌入式Linux系统的现状与挑战
    随着科技的快速发展,嵌入式Linux系统已广泛应用于智能家居、工业控制、智能汽车等领域,并在AIoT、边缘计算、智能医疗等方向发挥着关键作用。其开源、灵活、可定制的特性,使其成为嵌入式设备的主流操作系统;市场需求持续增长,使其在智能设备中的核心地位不断加强。
    然而,嵌入式Linux系统的开发面临诸多挑战。硬件生态碎片化导致适配和维护成本高昂,定制化需求要求针对启动速度、功耗、实时性、安全性进行深度优化,开发流程复杂,涉及内核裁剪、驱动适配、交叉编译、软件栈集成,且版本管理混乱,周期冗长。此外,软硬件协同优化难度大,不同平台资源受限,优化策略难以通用,进一步提高了开发门槛,使嵌入式Linux系统在智能设备中的核心地位面临更高的技术挑战。
    应运而生的Yocto项目
    面对嵌入式Linux系统开发中硬件适配复杂、定制化需求高、构建流程烦琐等挑战,Yocto项目提供了一套灵活、可扩展、自动化的构建工具集。它采用模块化架构、分层构建体系和软件栈管理机制,使开发者能够高效定制、优化和维护嵌入式Linux系统,可提高开发效率并降低适配成本。
    Yocto项目汇聚了全球开发者的智慧,依托活跃的开源社区,不断优化和迭代,支持多架构、多平台的嵌入式Linux系统构建与定制。它持续提升跨平台适配能力、完善长期维护机制、增强系统稳定性和可复用性。随着技术演进,Yocto项目不断拓展应用场景,为日益复杂的嵌入式Linux系统需求提供更加高效、可靠的解决方案。
    本书的定位与特点
    Yocto项目已成为定制嵌入式Linux系统的主流工具,但由于构建体系复杂、配置灵活、调试难度大,其“难学易用”的特性让许多开发者望而却步。本书在官方文档的基础上,结合笔者多年的嵌入式开发经验,提炼核心理论框架,使其易读易懂。同时辅以大量实践案例,帮助读者系统化学习Yocto项目,快速掌握Yocto项目的基础知识与实战技巧。
    本书以实践为导向,从基础到进阶、从理论到实战,循序渐进,全面剖析Yocto项目的架构与高阶应用。无论是初学者、进阶开发者,还是专注于底层技术研究的专家,本书都将成为系统学习Yocto项目的一站式指南,助您自信应对嵌入式Linux系统的定制与构建挑战。
    Yocto项目在中国的现状与机遇
    当前,Yocto项目已在全球范围内得到广泛认可和应用,但在国内的普及程度相对较低。国产芯片适配度不足、技术资料主要以英文为主、本地社区生态不成熟,使开发者在学习和应用Yocto项目时面临较高门槛。此外,尽管国产AI技术发展迅速,但AI设备的软件环境仍主要依赖厂商的专有SDK和BSP,不同平台的软件接口和适配机制存在差异,增加了系统维护和版本管理的复杂度。
    随着国产芯片生态的持续优化,Yocto项目的本地化进程正在加速推进。同时,AI技术在边缘计算、智能设备等领域中的应用需求增长,对嵌入式Linux系统的定制、构建效率和长期维护提出了更高要求。Yocto项目凭借灵活的构建机制和广泛的硬件支持,正成为国产芯片和AI应用的重要支撑,将为嵌入式Linux系统的开发和维护提供高效、稳定、可扩展的解决方案。
    总结与展望
    本书旨在促进Yocto项目在国内的应用,帮助嵌入式开发者系统掌握其核心技术。通过系统化讲解与实践结合,降低学习门槛,使Yocto项目在国产芯片研发及更多嵌入式应用中发挥更大价值。
    受限于编写周期和笔者的个人水平,书中难免存在疏漏与不足。如您在阅读过程中发现问题或有任何建议,欢迎交流探讨。相信在大家的共同努力下,Yocto项目将在国产芯片生态、AIoT和边缘计算等领域得到更广泛的应用,进一步推动嵌入式Linux系统生态的标准化与发展。
    孙杰
    jerrysundev@163.com
    展开

    作者简介

    孙杰.世界500强资深嵌入式软件工程师,专注于BSP与嵌入式系统架构,热衷技术探索与工程实践.深耕嵌入式领域十余年,成功主导多个复杂嵌入式项目,涵盖系统架构设计、BSP开发与产品落地.Yocto项目技术专家,致力于推动该技术在国内的技术实践与生态发展.爱尔兰国立大学硕士,具备丰富的海外嵌入式开发经验,熟悉国际主流开发体系.个人微信jerrydev提供技术支持,运营的“嵌入式Jerry”技术平台(B站、CSDN和公众号)深受粉丝喜爱
  • 样 章 试 读
    本书暂无样章试读!
  • 图 书 评 价 我要评论
华信教育资源网