新書推薦:

《
社会情绪的传递与互动研究:以情感符号为视角 (光明社科文库·法律与社会)
》
售價:NT$
434.0

《
推荐系统核心技术与实践
》
售價:NT$
505.0

《
乌合之众:群体心理研究
》
售價:NT$
347.0

《
流浪的君子:孔子的最后二十年 王健文
》
售價:NT$
254.0

《
美国黑室(全译本 图文珍藏版)
》
售價:NT$
356.0

《
咨询的奥秘2:咨询师的百宝箱(珍藏版)
》
售價:NT$
356.0

《
中国近代思想与学术的系谱(增订版)
》
售價:NT$
500.0

《
失权者(三联生活周刊文丛)
》
售價:NT$
352.0
|
編輯推薦: |
学习Yocto项目,迈向新时代Linux系统架构:在AI、芯片和智能汽车等新时代关键领域,Linux系统必须实现深度定制与持续可维护。Yocto项目正是主流企业用来构建、集成并高效管理Linux系统的标准工具。掌握Yocto项目,是进入系统架构核心岗位的捷径,也是技术跃迁的关键一步。
理论 实战 视频三线驱动,层层破解Yocto项目技术难关:Yocto项目因高质量中文资料匮乏,常让学习者感到棘手。本书摒弃空泛讲解,聚焦实战落地,辅以作者亲录视频,循序渐进梳理核心技术链条。从QEMU、BeagleBone、树莓派到恩智浦i.MX8,覆盖主流平台,构建清晰系统化的学习路径。
破解35岁焦虑,构建稀缺型技术能力,轻松转型任何linux岗位:Yocto项目贯通上层应用、底层驱动与系统架构。学习它可快速拓宽技术路径,实现从应用到平台的跨界转型,建立系统级能力,突破传统经验的局限。
|
內容簡介: |
《Yocto项目实战教程:高效定制嵌入式Linux系统》从基础到高阶,系统化讲解Yocto项目的核心技术,涵盖Yocto项目概述、Linux系统架构、OpenEmbedded构建系统架构、元数据架构、BitBake、Poky核心组件、内核菜谱、BSP层定制、SDK开发等。结合大量实战示例,从QEMU、树莓派到NXP i.MX系列平台,循序渐进,帮助读者高效掌握Yocto项目的开发技能。
《Yocto项目实战教程:高效定制嵌入式Linux系统》可作为嵌入式Linux系统开发人员、技术爱好者的自学或参考资料,也可作为高校或培训机构相关课程的教材。
|
關於作者: |
孙杰
世界500强资深嵌入式软件工程师,专注于BSP与嵌入式系统架构,热衷技术探索与工程实践深耕嵌入式领域十余年,成功主导多个复杂嵌入式项目,涵盖系统架构设计、BSP开发与产品落地Yocto项目技术专家,致力于推动该技术在国内的技术实践与生态发展爱尔兰国立大学硕士,具备丰富的海外嵌入式开发经验,熟悉国际主流开发体系个人微信jerrydev提供技术支持,运营的“嵌入式Jerry”技术平台(B站、CSDN和公众号)深受粉丝喜爱
|
目錄:
|
第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
|
內容試閱:
|
本书基于笔者的实践经验,系统化讲解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
本书基于笔者的实践经验,系统化讲解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系统生态的标准化与发展。
孙杰
|
|