最近准备研究一下bitbake,于是写了一系列文章,本系列文章参考《嵌入式Linux开发:基于Yocto Project》加上自己的理解写成的
内部项目 | 描述 |
bitbake | bitbake是openembedded构建系统的构建引擎。类似于make或者ant的构建工具,他聚焦在构建软件包和操作系统栈。 bitbake是从portage(Gentoo Linux的构建和包管理系统)派生来的,追加了类继承、追加菜谱、全局配置文件等特性。所有的portage都是用python写的。 |
poky | 可以理解为一套预先配置的嵌入式linux操作系统构建的蓝图,这些蓝图用于引导实际系统的开发 |
术语解析
术语 | 描述 |
追加文件append file | 追加文件扩展现有的菜谱。bitbake逐字追加内容到对应的菜谱中。追加文件后缀时bbappend |
bitbake | bitbake是构建系统中的引擎,是任务的执行器与调度器。将配置文件和菜谱输入到bitbake中,bitbake对其进行处理 |
BSP | 板支持包,board support package。板支持包中包含文档、二进制文件、代码等等其他数据,他们是用来实现将一个特定的操作系统运行在一个特定的硬件系统上的。有的时候板支持包还包含完整的跟文件系统和交叉开发环境。 |
class | 类。提供逻辑封装和基本继承机制,将常用的模板被定义为一种类。bitbake中类文件使用bbclass后缀 |
交叉开发工具链 | cross-development toolchain是一套软件开发工具,这玩意儿包含一个或者多个语言编译器、汇编程序工具、调试器、链接器等等工具。你可以用这个工具在一台64位PC的机器上编译出arm平台可以用的软件 |
image | 通常是个压缩的二进制文件。镜像里面包含加载程序bootloader、内核kernel、文件系统。在说镜像的时候,也可以用于仅仅表示内核镜像或者文件系统镜像。 |
layer | 层,可以理解为配置文件和菜谱的集合 |
metadata | 元数据,所有高速bitbake怎么做的文件都叫元数据 |
package | 包,其包含可执行的二进制文件、调用库、文档、配置文件等,这些文件需要遵循可以被包管理系统安装或卸载的特定格式 |
package management system | 包管理系统,知道是管理包的一种工具集合就行,书上罗里吧嗦的写一大堆,又不是考试,记下来干嘛 |
recipe | 菜谱,菜谱里面有很多指令,描述了从哪里获取原代码,应该打入什么补丁,如何编译二进制文件,如何在目标系统上安装,如何打包等等。这个不是我们进餐厅时点菜的菜单,而是厨师用来做菜的菜谱。菜谱文件后缀为bb。 |
task | 任务,执行菜谱时会引发构建任务 |
OpenEmbedded的工作流
poky架构