在yocto中从机器上配置自定义配方选项。

问题描述 投票:1回答:1

我们正在构建一个基于pokyoe的系统,以在几个不同版本的板子上运行,这些板子有一些小的差异。其中一个例子是不同板子的SWDJTAG IO引脚不同。

我希望能够对每台机器的这些引脚进行配置,这就是我们的答案。这个问题 基本上都能回答。

但是,我更希望能够设置这些选项。从机 而不是在配方中对每台机器进行配置。即,我希望能够做这样的事情。

# /conf/machine/my_machine_v1.conf
OPENOCD_SWCLK_PIN = "25"
OPENOCD_SWDIO_PIN = "24"
OPENOCD_SRST_PIN  = "23"

然后在我的配方中这样安装openocd配置文件:

SWCLK_PIN = ".... get machine config SWCLK_PIN ..."

等等

这将使我不必为每台新机器修改配方。这可能吗?

yocto bitbake openembedded
1个回答
0
投票

任何变量的设置 .conf 文件是全局的,即在所有配方中都可以使用。因此,变量可以简单地从配方中使用 ${OPENOCD_SWCLK_PIN}

让我措手不及的是,bitbake会在内联shell脚本中展开变量,而不是在环境中设置变量,而且bitbake需要在 ${XXX}.

do_install() {
  # echo "$OPENOCD_SWCLK_PIN" >> ${D}/some_file.cfg # WONT WORK
  echo "${OPENOCD_SWCLK_PIN}" >> ${D}/some_file.cfg # Works,
  # OPENOCD_CWCLK_PIN can be set in the recipe file, distro.conf or machine.conf etc.
}

感谢irc上paulbarker对这个问题的解释。

© www.soinside.com 2019 - 2024. All rights reserved.