Linux/Unix技术丛书 嵌入式Linux系统开发 基于Yocto Project
作者:(美)鲁道夫 J.,斯特雷夫著
出版时间: 2018年版
丛编项: Linux/Unix技术丛书
内容简介
通过本书,你将会学习OpenEmbedded构建系统如何工作、如何编写菜谱来构建你自己的软件组件、如何使用和创建Yocto项目板支持包来支持不同的硬件平台以及如何调试构建失败。你将学习如何为应用开发构建软件开发包以及如何为无缝的往返做开发并将它们和流行的Eclipse集成开发环境(IntegratedDevelopmentEnvironment,IDE)集成起来。
目录
Contents?目 录
译者序
序
前言
致谢
第1章 用于嵌入式系统的Linux 1
1.1 为什么为嵌入式系统选择Linux 1
1.2 嵌入式Linux形势 3
1.2.1 嵌入式Linux发行版 3
1.2.2 嵌入式Linux开发工具 4
1.3 定制Linux发行版—为什么困难 6
1.4 关于开源许可的几句话 8
1.5 组织、相关实体和标准 9
1.5.1 Linux基金会 9
1.5.2 Apache软件基金会 9
1.5.3 Eclipse基金会 9
1.5.4 Linux标准基 10
1.5.5 消费电子产品工作组 10
1.6 总结 11
1.7 参考文献 11
第2章 Yocto项目 12
2.1 启动第一个Yocto项目构建 12
2.1.1 先决条件 13
2.1.2 获取Yocto项目工具 14
2.1.3 设置构建主机 15
2.1.4 配置构建环境 16
2.1.5 启动构建 18
2.1.6 验证构建结果 19
2.1.7 Yocto项目构建器具 19
2.2 Yocto项目系列 20
2.3 历史概览 22
2.3.1 OpenEmbedded 22
2.3.2 BitBake 22
2.3.3 Poky Linux 23
2.3.4 Yocto项目 23
2.3.5 OpenEmbedded和Yocto项目的关系 23
2.4 Yocto项目术语 24
2.5 总结 25
2.6 参考文献 26
第3章 OpenEmbedded构建系统 27
3.1 构建开源软件包 27
3.1.1 获取 28
3.1.2 解压 28
3.1.3 打补丁 28
3.1.4 配置 29
3.1.5 构建 29
3.1.6 安装 29
3.1.7 打包 30
3.2 OpenEmbedded工作流 30
3.2.1 元数据文件 31
3.2.2 工作流过程步骤 33
3.3 OpenEmbedded构建系统架构 35
3.3.1 构建系统结构 36
3.3.2 构建环境结构 39
3.3.3 元数据层结构 41
3.4 总结 44
3.5 参考文献 44
第4章 BitBake构建引擎 45
4.1 获取和安装BitBake 45
4.1.1 使用发布快照 46
4.1.2 克隆BitBake开发仓库 46
4.1.3 构建和安装BitBake 46
4.2 运行BitBake 46
4.2.1 BitBake执行环境 47
4.2.2 BitBake命令行 48
4.3 BitBake元数据 54
4.4 元数据语法 55
4.4.1 注释 55
4.4.2 变量 55
4.4.3 包含 59
4.4.4 继承 60
4.4.5 可执行元数据 61
4.4.6 元数据属性 66
4.4.7 元数据名(键)扩展 66
4.5 源下载 66
4.5.1 使用Fetch类 67
4.5.2 获取器实现 68
4.5.3 镜像 72
4.6 HelloWorld—BitBake方式 74
4.7 依赖处理 77
4.7.1 配置 77
4.7.2 声明依赖 78
4.7.3 多个提供器 79
4.8 版本选择 79
4.9 变体 80
4.10 默认元数据 80
4.10.1 变量 81
4.10.2 任务 84
4.11 总结 84
4.12 参考文献 85
第5章 故障排除 86
5.1 记日志 86
5.1.1 日志文件 87
5.1.2 使用记日志语句 90
5.2 任务执行 92
5.2.1 执行特定任务 93
5.2.2 任务脚本文件 94
5.3 分析元数据 94
5.4 开发shell 95
5.5 依赖性关系图 95
5.6 调试层 97
5.7 总结 98
第6章 Linux系统架构 100
6.1 Linux或者GNU/Linux? 100
6.2 Linux系统的剖析 101
6.3 引导加载程序 102
6.3.1 引导加载程序的角色 102
6.3.2 Linux引导加载程序 103
6.4 内核 106
6.4.1 主要Linux内核子系统 107
6.4.2 Linux内核启动 111
6.5 用户空间 112
6.6 总结 113
6.7 参考文献 113
第7章 构建定制Linux发行版 114
7.1 核心镜像—?Linux发行版蓝图 114
7.1.1 通过本地配置来扩展核心镜像 117
7.1.2 用QEMU测试镜像 118
7.1.3 使用构建历史验证和比较镜像 119
7.1.4 用菜谱扩展核心镜像 120
7.1.5 镜像特性 120
7.1.6 包组 122
7.2 从头构建镜像 126
7.3 镜像选项 128
7.3.1 语言和区域 128
7.3.2 包管理 128
7.3.3 镜像大小 129
7.3.4 根文件系统类型 130
7.3.5 用户、组和密码 131
7.3.6 调整根文件系统 132
7.4 发行版配置 134
7.4.1 标准发行版策略 134
7.4.2 Poky发行版策略 135
7.4.3 发行版特性 140
7.4.4 系统管理器 142
7.4.5 默认发行版设置 143
7.5 外部层 144
7.6 Hob 145
7.7 总结 147
第8章 软件包菜谱 148
8.1 菜谱布局和惯例 148
8.1.1 菜谱文件名 149
8.1.2 菜谱布局 149
8.1.3 格式指导方针 156
8.2 写新菜谱 157
8.2.1 建立菜谱 159
8.2.2 获取源代码 159
8.2.3 解压源代码 160
8.2.4 为源代码打补丁 161
8.2.5 增加许可信息 161
8.2.6 配置源代码 162
8.2.7 编译 163
8.2.8 安装构建输出 164
8.2.9 设置系统服务 165
8.2.10 打包构建输出 166
8.2.11 定制安装脚本 168
8.2.12 变体 169
8.3 菜谱例子 170
8.3.1 C文件软件包 170
8.3.2 基于makefile的软件包 171
8.3.3 基于CMake的软件包 173
8.3.4 基于GNU Autotools的软件包 174
8.3.5 外部构建软件包 175
8.4 devtool 175
8.4.1 使用devtool的往返开发 176
8.4.2 用于现有菜谱的工作流 179
8.5 总结 180
8.6 参考文献 180
第9章 内核菜谱 181
9.1 内核配置 182
9.1.1 菜单配置 182
9.1.2 配置片段 184
9.2 内核