书籍详情
Yocto项目实战教程:高效定制嵌入式Linux系统

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



