如何在源 poky/oe-init-env 之后显示新的 Yocto 图像选项
How to display new Yocto image option after source poky/oe-init-env
假设我有一个新的 yocto 图像调用 stargazer-cmd
我应该编辑什么文件以便每次我获取 poky/oe-init-env
它显示为用户的构建选项?
kj@kj-Aspire-V3-471G:~/stm32Yoctominimal$ source poky/oe-init-build-env build-mp1/
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support
我想在 core-image-minimal 之上添加 stargazer-cmd,我不确定 google 以及我需要更改的文件是什么。
conf/conf-notes.txt
在你的图层中。
OECORENOTESCONF
应该指向文件。
让我解释一下如何将自定义配置添加到 OpenEmbedded 构建过程。
首先,这里是运行时完成的过程:
source poky/oe-init-build-env
oe-init-build-env
脚本初始化 OEROOT
变量以指向脚本本身的位置。
oe-init-build-env
脚本获取另一个文件 $OEROOT/scripts/oe-buildenv-internal
,它将:
- 检查是否设置了
OEROOT
- 将
BUILDDIR
设置为您的自定义构建目录名称 </code>,或者如果您不提供 <code>build
- 将
BBPATH
设置为 poky/bitbake
文件夹
- 将
$BBPATH/bin
和 OEROOT/scripts
添加到 PATH
(这将启用 bitbake
和 bitbake-layers
等命令 ...)
- 导出
BUILDDIR
和PATH
到下一个文件
oe-init-build-env
脚本通过 运行 最终构建脚本继续:
TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir
oe-setup-builddir
脚本将:
- 检查是否设置了
BUILDDIR
- 在
$BUILDDIR
下创建conf
目录
- 获取一个模板文件,该文件将检查是否设置了
TEMPLATECONF
变量:
. $OEROOT/.templateconf
该文件包含:
# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}
表示如果没有设置TEMPLATECONF
变量,则设置为meta-poky/conf
,这就是默认的local.conf
和bblayers.conf
的来源。
- 复制
$TEMPLATECONF
到$BUILDDIR/conf/templateconf.cfg
- 设置一些变量指向自定义
local.conf
和 bblayers.conf
:
OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample"
OECORELOCALCONF="$TEMPLATECONF/local.conf.sample"
OECORENOTESCONF="$TEMPLATECONF/conf-notes.txt"
在oe-setup-builddir
里面有评论说TEMPLATECONF
可以指向一个目录:
#
# $TEMPLATECONF can point to a directory for the template local.conf & bblayers.conf
#
- 将
local.conf.sample
和 bblayers.conf.sample
从 TEMPLATECONF
目录复制到 BUIDDIR/conf
:
cp -f $OECORELOCALCONF "$BUILDDIR/conf/local.conf"
sed -e "s|##OEROOT##|$OEROOT|g" \
-e "s|##COREBASE##|$OEROOT|g" \
$OECORELAYERCONF > "$BUILDDIR/conf/bblayers.conf"
最后它会打印出 OECORENOTESCONF
里面指向 TEMPLATECONF/conf-notes.txt
:
的内容
[ ! -r "$OECORENOTESCONF" ] || cat $OECORENOTESCONF
并且默认位于 meta-poky/conf/conf-notes.txt
下:
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86'
Other commonly useful commands are:
- 'devtool' and 'recipetool' handle common recipe tasks
- 'bitbake-layers' handles common layer tasks
- 'oe-pkgdata-util' handles common target package tasks
所以,现在,在了解所有这些之后,您可以执行以下操作:
- 为您的项目创建自定义模板目录,其中包含:
- local.conf.sample
- bblayers.conf.sample
- conf-notes.txt
不要忘记将 bblayers.conf
中的 poky
路径设置为 ##OEROOT##
,因为它将由构建脚本自动设置。
在 conf-notes.txt
中设置您的自定义消息
在任何新构建之前,只需设置 TEMPLATECONF
:
TEMPLATECONF="<path/to/template-directory>" source poky/oe-init-build-env <build_name>
然后,您将找到一个带有自定义 local.conf
和 bblayers.conf
的构建,其中包含包含 TEMPLATECONF
路径的附加文件 conf/templateconf.cfg
假设我有一个新的 yocto 图像调用 stargazer-cmd 我应该编辑什么文件以便每次我获取 poky/oe-init-env 它显示为用户的构建选项?
kj@kj-Aspire-V3-471G:~/stm32Yoctominimal$ source poky/oe-init-build-env build-mp1/
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support
我想在 core-image-minimal 之上添加 stargazer-cmd,我不确定 google 以及我需要更改的文件是什么。
conf/conf-notes.txt
在你的图层中。
OECORENOTESCONF
应该指向文件。
让我解释一下如何将自定义配置添加到 OpenEmbedded 构建过程。
首先,这里是运行时完成的过程:
source poky/oe-init-build-env
oe-init-build-env
脚本初始化OEROOT
变量以指向脚本本身的位置。oe-init-build-env
脚本获取另一个文件$OEROOT/scripts/oe-buildenv-internal
,它将:
- 检查是否设置了
OEROOT
- 将
BUILDDIR
设置为您的自定义构建目录名称</code>,或者如果您不提供 <code>build
- 将
BBPATH
设置为poky/bitbake
文件夹 - 将
$BBPATH/bin
和OEROOT/scripts
添加到PATH
(这将启用bitbake
和bitbake-layers
等命令 ...) - 导出
BUILDDIR
和PATH
到下一个文件
oe-init-build-env
脚本通过 运行 最终构建脚本继续:
TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir
oe-setup-builddir
脚本将:
- 检查是否设置了
BUILDDIR
- 在
$BUILDDIR
下创建 - 获取一个模板文件,该文件将检查是否设置了
TEMPLATECONF
变量:
conf
目录
. $OEROOT/.templateconf
该文件包含:
# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}
表示如果没有设置TEMPLATECONF
变量,则设置为meta-poky/conf
,这就是默认的local.conf
和bblayers.conf
的来源。
- 复制
$TEMPLATECONF
到$BUILDDIR/conf/templateconf.cfg
- 设置一些变量指向自定义
local.conf
和bblayers.conf
:
OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample"
OECORELOCALCONF="$TEMPLATECONF/local.conf.sample"
OECORENOTESCONF="$TEMPLATECONF/conf-notes.txt"
在oe-setup-builddir
里面有评论说TEMPLATECONF
可以指向一个目录:
#
# $TEMPLATECONF can point to a directory for the template local.conf & bblayers.conf
#
- 将
local.conf.sample
和bblayers.conf.sample
从TEMPLATECONF
目录复制到BUIDDIR/conf
:
cp -f $OECORELOCALCONF "$BUILDDIR/conf/local.conf"
sed -e "s|##OEROOT##|$OEROOT|g" \
-e "s|##COREBASE##|$OEROOT|g" \
$OECORELAYERCONF > "$BUILDDIR/conf/bblayers.conf"
最后它会打印出 OECORENOTESCONF
里面指向 TEMPLATECONF/conf-notes.txt
:
[ ! -r "$OECORENOTESCONF" ] || cat $OECORENOTESCONF
并且默认位于 meta-poky/conf/conf-notes.txt
下:
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86'
Other commonly useful commands are:
- 'devtool' and 'recipetool' handle common recipe tasks
- 'bitbake-layers' handles common layer tasks
- 'oe-pkgdata-util' handles common target package tasks
所以,现在,在了解所有这些之后,您可以执行以下操作:
- 为您的项目创建自定义模板目录,其中包含:
- local.conf.sample
- bblayers.conf.sample
- conf-notes.txt
不要忘记将
bblayers.conf
中的poky
路径设置为##OEROOT##
,因为它将由构建脚本自动设置。在
中设置您的自定义消息conf-notes.txt
在任何新构建之前,只需设置
TEMPLATECONF
:
TEMPLATECONF="<path/to/template-directory>" source poky/oe-init-build-env <build_name>
然后,您将找到一个带有自定义 local.conf
和 bblayers.conf
的构建,其中包含包含 TEMPLATECONF
conf/templateconf.cfg