在 yocto (poky) 中,为什么 build/ 文件夹中的图层配置是?

Vla*_*d V 5 bitbake yocto

我是 yocto 的新手。我正在尝试学习如何添加包,如何创建新层等等......只是四处看看。从克隆 poky 开始并四处玩耍。

据我了解,该bblayers.conf文件对于项目配置和您最终构建的内容(哪些层和包进入您的最终图像)至关重要。

这可能是错误的假设,但我也有一种感觉,即 build/ 文件夹是您构建 (bitbake) 的地方。图像,构建它们所需的很多东西,大量的东西......如果你以某种方式破坏了它,你可以删除它并重建它。或者您可以只复制没有 build/ 文件夹的所有内容并继续在另一台计算机上工作。

显然情况并非如此。该build/conf/文件夹包含重要.conf文件,例如bblayers.conf.

有人可以解释为什么会这样吗?有没有一种优雅的方法来分离项目配置和构建文件夹?

Cha*_* C. 3

Yocto 项目有几个层次,主要是:

- BSPDIR:(TOPDIR构建)、源、设置环境
- BSPDIR/setup-environment:将所有变量初始化为 bitbake;
- BSPDIR/sources: 元数据/
- TOPDIR: conf/ sstate-cache/ cache/ tmp/ downloads/
- TOPDIR/downloads: 配方获取的包;

- TOPDIR/conf/:存储所有配置。主要是bblayers.conf、local.conf、sanity_info;
- TOPDIR/conf/bblayers.conf:存储将要加载的元数据的所有路径;
- TOPDIR/conf/local.conf:构建的配置
- TOPDIR/conf/sanity_info:路径双重检查以确保上次编译中使用的所有路径与当前编译匹配;
- TOPDIR/tmp/:所有编译和构建工作发生的地方

BSPDIR/sources/poky/meta/conf/bitbake.conf

sources/poky/meta/conf/bitbake.conf:TMPDIR ?= "${TOPDIR}/tmp"
sources/poky/meta/conf/bitbake.conf:PERSISTENT_DIR = "${TOPDIR}/cache"
sources/poky/meta/conf/bitbake.conf:DL_DIR ?= "${TOPDIR}/downloads"
sources/poky/meta/conf/bitbake.conf:SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
Run Code Online (Sandbox Code Playgroud)

TOPDIR是运行时初始化的位置setup-environmentoe-init-build-env;所有其他 bitbake 配置环境变量都可以根据您的需要进行更改conf/local.conf

例如修改conf/local.conf以更改下载目录TOPDIR/downloads

DL_DIR ?= "/home/downloads/"
Run Code Online (Sandbox Code Playgroud)

要创建新图层,请观看此视频:https://www.youtube.com/watch ?v=3HsaoVqX7dg