source oe-init-build-env <builddir>
bblayers.conf
和local.conf
local.conf
: 设置变量以影响bitbake
构建自定义的Linux操作系统local.conf:
# Machine Selection 目标机器
MACHINE ??= "qemux86-64"
#
# Where to place downloads
## DL_DIR告诉bitbake把源下载到哪里 ${TOPDIR} TOPDIR变量包含到环境变量的完整路径
DL_DIR ?= "${TOPDIR}/downloads"
#
# Where to place shared-state files
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
## 包含到共享状态缓存的路径
#
# Where to place the build output
# The default is a tmp directory under TOPDIR.
#
TMPDIR = "${TOPDIR}/tmp"
构建针对移动设备的带有用户界面的根文件系统镜像
bitbake core-image-sato
可以先下载所有源,而不编译
bitbake -c fetchall core-image-sato
append file(追加文件)
: 对现有菜谱进行扩展,追加的变量会覆盖之前的变量bitbake
: 构建引擎,是任务执行器和调度器;输入是元数据(conf
、recipe
)class
: 是提供逻辑封装和基本继承机制,多个菜谱可继承一个class
cross-development toolchain
: 交叉开发工具链layer
: 是组织文件哥目录结构的元数据(conf
、recipe
)集合metadata
: 元数据包包括所有命令bitbake如何执行构建过程的文件recipe
: 类似于makefile文件,告诉bitbake如何获取数据,如何编译打包
是将软件、二进制文件和辅助文件打包到一起,用于在目标操作系统直接安装
RPM
(RPM,最初是红帽包管理器)和dpkg
(Debian的包管理程序)安装
和打包
不一定是连续的步骤,他们都是可选的参考,https://gitee.com/lengjingzju/cbuild
TOPDIR
目录 : 输出顶层目录bitbake.conf
: 默认配置,大多数变量词汇在此定义local.conf
: 本地配置,可以覆盖默认配置和定义自定义的环境变量bblayers.conf
: 配置使用的层 提供BitBake关于什么层要包含在构建过程中以及在哪里找到文件路径的信息layer.conf
: 层配置,可以看到层下的配方文件如何找到
layer.conf
可以在层的conf子目录中找到machine/xxx.conf
配置 : 机器配置,有机器配置的层是BSP层, ${TOPDIR}/conf/local.conf
里面的MACHINE
设置的值的机器配置文件 值.conf
必须存在FILES:${PN}-dev = "${includedir}"
FILES:${PN} = "${base_libdir} ${libdir} ${bindir} ${datadir}"
buildstats
存储根据构建目标和目标被构建时的日期/时间戳组织的构建统计cache
bitbake
解析元数据所生成的缓存
bitbake
下次编译就直接从这个文件夹中获取数据信息deploy
针对部署的构建输出,例如目标文件系统镜像、包仓库和许可信息,被包含在deploy子目录中log
由cooker
进程创建的BitBake
日志信息 sstate-control
包含用于根据架构/目标和任务组织的共享状态缓存的程序清单文件stamps
BitBake
把针对每个任务、根据架构/目标组织的完成标签和签名数据以及包名放在这个子目录中sysroots
这个子目录包含根据架构/目标组织的根文件系统
work
在这个目录中,BitBake创建根据架构/目标组织的、它在这里构建实际软件包的子目录work-shared
这个子目录和work类似,但是针对共享的软件包注意
bitbake
本质上可以从共享状态缓存重新创建tmp目录
的所有内容签名
所识别的任务的中间输出
BitBake
使用来自共享状态缓存的输出而不是运行任务