如何在Yocto中编译配方时运行Shell脚本

时间:2019-04-08 11:36:57

标签: yocto bitbake

我已经创建了一个bash shell脚本,并希望在我创建配方时(在该脚本下创建)执行该脚本。因此,我希望bitbake在构建配方时运行此脚本。我应该在.bb文件中添加些什么?

我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果要在配方中运行脚本,则可以定义任务并为其添加依赖项

这是在我的uboot .bb文件中。这样,每次编译uboot时,uboot映像都会复制到目录中

before do_build意味着每次运行bitbake <recipe>时都会执行此脚本

after do deploy意味着每次编译uboot时都会执行此脚本。

PACKET_OUTDIR ?= "${DEPLOY_DIR_IMAGE}/out"
UBOOT_OUTFILE ?= "${MACHINE}.uboot"

# Copy bin after compile
addtask bin after do_deploy before do_build
# redo task if vardeps variables changed from last execution
do_bin[vardeps] = "UBOOT_OUTFILE PACKET_OUTDIR"
do_bin() {
  # create directory
  install -d ${PACKET_OUTDIR}

  # copy uboot bin to the out directory and print output on display  
  bbplain $(cp -vH ${DEPLOY_DIR_IMAGE}/${UBOOT_MAKE_TARGET}-${UBOOT_CONFIG} ${PACKET_OUTDIR}/${UBOOT_OUTFILE})  

  # run an external script in home
  ~/external_script.sh
}

如果要在编译之前运行脚本,只需使用before do_compile