Yocto bitbake 脚本不显示 echo 语句

Yocto bitbake script not displaying echo statement

我目前有一个看起来像这样的 bitbake .bb 脚本

DESCRIPTION = "Hello World"
SECTION = "TESTING"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r0"

SRC_URI = "file://fileA \
           file://fileB"

S = "${WORKDIR}"

inherit allarch


do_install() {
        echo "--------HELLO WORLD------------------------"
}

现在,当我转到构建目录并运行 bitbake 这个食谱时,我在任何地方都看不到输出"Hello world"。有什么关于为什么我看不到的建议吗?

您可以使用 bitbake -e myRecipe > ./myRecipe.log 深入了解正在发生的事情。当您 运行 bitbake 时,do_install 不会 echo 生成任何内容。

相反,它们都存储在 /build/${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}/temp

的日志文件中

log.do_install中,你应该可以看到这样的东西

DEBUG: Executing shell function do_install
--------HELLO WORLD------------------------
DEBUG: Shell function do_install finished

为了更快(并且有点嘈杂)调试,您还可以在 shell 任务中使用 bbnote/bbwarn。对于 python 个任务,有 bb.note/bb.warn.

看这里:http://patchwork.openembedded.org/patch/59021/

有关执行了哪些任务的更多可读性来自管道 bitbake 通过某些东西,因此它知道不要使用花哨的屏幕更新:

bitbake $recipe | cat

这为您提供了一个很好的顺序任务流,中间有 bbnote/bbwarn。

你可以像下面那样做 (full source)

do_install() {
    bbplain "--------HELLO WORLD------------------------"
    printf "%b[=10=]" "bbplain --------HELLO WORLD------------------------" > ${LOGFIFO}
}