【问题标题】:Bitbake/Yocto simple script tasksBitbake/Yocto 简单脚本任务
【发布时间】:2020-04-22 23:22:40
【问题描述】:

我想设置一个运行 bash 脚本将工件上传到 aws 的 bitbake 配方。食谱很小,看起来像这样:

DESCRIPTION = "Task for uploading build artifacts to aws"
LICENSE = "CLOSED"
SECTION = "utils"

DEPENDS += "XXXXX-bundle-${AWS_DEPLOY_IMG_TYPE}"

UPLOAD_SCRIPT := "${THISDIR}/files/dev/aws-upload.sh"

do_build() {
        ${UPLOAD_SCRIPT}
}

但是在尝试运行配方时:

bitbake bundle-aws-upload

我没有看到任何事情发生。没有错误,什么都没有。依赖包已构建,但脚本并未像看起来那样执行。

【问题讨论】:

    标签: bash yocto bitbake


    【解决方案1】:

    查看tmp/work/.../temp/log.do_build 中的任务日志。

    问题可能是因为您没有在 SRC_URI 或任何其他依赖项中引用 aws_upload.sh,所以 bitbake 不知道您要重新运行该任务。将aws_upload.sh 放入SRC_URI 并直接从WORKDIR 调用。

    仅供参考,可能更好的实现方式是让您继承(在IMAGE_CLASSES 中)添加一个新任务aws_upload 的图像类。

    【讨论】:

    • 事实证明,像“$MACHINE”和“$TMPDIR”这样的 bitbake 变量没有传递给子进程 $UPLOAD_SCRIPT,这不是问题所在。有没有更优雅的方法来传递它们,然后修改 bash 脚本以接收 12 个参数?
    • 在调用脚本之前导出它们。
    猜你喜欢
    • 1970-01-01
    • 2016-07-13
    • 2017-07-26
    • 2020-07-05
    • 1970-01-01
    • 2014-10-19
    • 2020-03-12
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多