0

假设我有一个新的 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,我不确定谷歌需要什么以及我需要更改的文件是什么。

4

2 回答 2

1

conf/conf-notes.txt在你的层。

OECORENOTESCONF应该指向文件。

于 2022-02-20T12:52:57.550 回答
1

让我解释一下如何向 OpenEmbedded 构建过程添加自定义配置。

首先,这是运行时完成的过程:

source poky/oe-init-build-env
  1. oe-init-build-env脚本初始化OEROOT变量以指向脚本本身的位置。

  2. oe-init-build-env脚本获取另一个文件$OEROOT/scripts/oe-buildenv-internal,该文件将:

  • 检查是否OEROOT设置
  • 设置BUILDDIR为您的自定义构建目录名称$1,或者build如果您不提供一个
  • 设置BBPATHpoky/bitbake文件夹
  • 添加$BBPATH/binOEROOT/scriptsPATH(这将启用bitbakebitbake-layers...之类的命令)
  • 导出BUILDDIRPATH到下一个文件
  1. oe-init-build-env脚本继续运行最终的构建脚本:
TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir
  1. oe-setup-builddir脚本将:
  • 检查是否BUILDDIR设置
  • 在下面创建conf目录$BUILDDIR
  • 获取一个模板文件,该文件将检查是否TEMPLATECONF设置了变量:
. $OEROOT/.templateconf

该文件包含:

# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}

这意味着如果TEMPLATECONF未设置变量,请将其设置为meta-poky/conf,这就是默认值local.confbblayers.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.samplebblayers.conf.sampleTEMPLATECONF目录到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

因此,现在,在了解所有这些之后,您可以执行以下操作:

  1. 为您的项目创建一个自定义模板目录,其中包含:
  • local.conf.sample
  • bblayers.conf.sample
  • conf-notes.txt
  1. 不要忘记将路径设置为pokyin bblayers.confto ##OEROOT##,因为它将由构建脚本自动设置。

  2. 设置您的自定义消息conf-notes.txt

  3. 在任何新构建之前,只需设置TEMPLATECONF

TEMPLATECONF="<path/to/template-directory>" source poky/oe-init-build-env <build_name>

然后,您将找到一个包含您的自定义local.conf和包含路径的bblayers.conf附加文件的构建conf/templateconf.cfgTEMPLATECONF

于 2022-02-20T14:17:51.393 回答