在 yocto (poky) 中,为什么 build/ 文件夹中的层配置?
In yocto (poky) why is the layers config in the build/ folder?
我是 yocto 的新手。我正在尝试了解如何添加包、如何创建新图层等等……只是四处寻找。从克隆 poky 开始玩。
据我了解,bblayers.conf
文件对于项目配置和最终构建的内容(最终图像中包含哪些层和包)至关重要。
这可能是错误的假设,但我也觉得 build/ 文件夹是您构建 (bitbake) 的地方。图像,构建它们所需的许多东西,大量的东西......如果你以某种方式破坏它,你可以删除它并重建它。或者您可以只复制没有 build/ 文件夹的所有内容,然后在另一台计算机上继续工作。
显然情况并非如此。 build/conf/
文件夹包含重要的 .conf
文件,例如 bblayers.conf
.
有人可以解释为什么会这样吗?有没有一种优雅的方式来分离项目配置和构建文件夹?
您可能已经关注了 Yocto Project Quick Start Guide。
yocto 安装(克隆 git 存储库和安装包)后最早的步骤是创建 OE (OpenEmbedded) 环境,这是通过以下方式完成的:
source oe-init-build-env
这会自动创建并引导您进入构建文件夹。
您可以将系统的任何目录作为此调用的参数 (Reference Manual - Build Overview):
source oe-init-build-env [build_dir]
⑤ 这也是您的 'project config' 与实际构建文件夹分开的步骤。
⑤ 正如您假设的那样,实际上您最多会复制图层而不是构建文件夹。更好的办法是将其他人的资源留在他们的 git 存储库中,只复制和维护您自己的图层。
Yocto 项目有几个层次,主要是:
-BSPDIR
: TOPDIR
(build),sources,setup-environment
-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
: path double check以确保上次编译中使用的所有路径与当前编译匹配;
-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"
TOPDIR
是你在运行setup-environment
或oe-init-build-env
时初始化的地方;所有其他 bitbake 配置环境变量都可以根据您的需要在 conf/local.conf
中更改;
例如修改 conf/local.conf
以更改下载目录 TOPDIR/downloads
;
DL_DIR ?= "/home/downloads/"
要创建新图层,请观看此视频:https://www.youtube.com/watch?v=3HsaoVqX7dg
这确实是现代 Yocto 构建系统中的一个问题。
文件bblayers.conf必须基于MACHINE和DISTRO合成使用所有提供的信息(通常在 repo 清单文件的帮助下)层:从每个可用层文件 layer.conf 收集数据作为以及 conf/machine, conf/distro, images.
而不是bblayers.conf通常是从基础层conf/bblayers.conf位置复制过来的帮助设置环境脚本。
此方法不提供“一键式”构建环境,但需要maintainer/developer查看自述文件以确定缺少哪些层要添加到build/conf/bblayers.conf.
我是 yocto 的新手。我正在尝试了解如何添加包、如何创建新图层等等……只是四处寻找。从克隆 poky 开始玩。
据我了解,bblayers.conf
文件对于项目配置和最终构建的内容(最终图像中包含哪些层和包)至关重要。
这可能是错误的假设,但我也觉得 build/ 文件夹是您构建 (bitbake) 的地方。图像,构建它们所需的许多东西,大量的东西......如果你以某种方式破坏它,你可以删除它并重建它。或者您可以只复制没有 build/ 文件夹的所有内容,然后在另一台计算机上继续工作。
显然情况并非如此。 build/conf/
文件夹包含重要的 .conf
文件,例如 bblayers.conf
.
有人可以解释为什么会这样吗?有没有一种优雅的方式来分离项目配置和构建文件夹?
您可能已经关注了 Yocto Project Quick Start Guide。
yocto 安装(克隆 git 存储库和安装包)后最早的步骤是创建 OE (OpenEmbedded) 环境,这是通过以下方式完成的:
source oe-init-build-env
这会自动创建并引导您进入构建文件夹。 您可以将系统的任何目录作为此调用的参数 (Reference Manual - Build Overview):
source oe-init-build-env [build_dir]
⑤ 这也是您的 'project config' 与实际构建文件夹分开的步骤。
⑤ 正如您假设的那样,实际上您最多会复制图层而不是构建文件夹。更好的办法是将其他人的资源留在他们的 git 存储库中,只复制和维护您自己的图层。
Yocto 项目有几个层次,主要是:
-BSPDIR
: TOPDIR
(build),sources,setup-environment
-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
: path double check以确保上次编译中使用的所有路径与当前编译匹配;
-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"
TOPDIR
是你在运行setup-environment
或oe-init-build-env
时初始化的地方;所有其他 bitbake 配置环境变量都可以根据您的需要在 conf/local.conf
中更改;
例如修改 conf/local.conf
以更改下载目录 TOPDIR/downloads
;
DL_DIR ?= "/home/downloads/"
要创建新图层,请观看此视频:https://www.youtube.com/watch?v=3HsaoVqX7dg
这确实是现代 Yocto 构建系统中的一个问题。
文件bblayers.conf必须基于MACHINE和DISTRO合成使用所有提供的信息(通常在 repo 清单文件的帮助下)层:从每个可用层文件 layer.conf 收集数据作为以及 conf/machine, conf/distro, images.
而不是bblayers.conf通常是从基础层conf/bblayers.conf位置复制过来的帮助设置环境脚本。
此方法不提供“一键式”构建环境,但需要maintainer/developer查看自述文件以确定缺少哪些层要添加到build/conf/bblayers.conf.