【问题标题】:Yocto/Bitbake Path Variable for Append File Directory用于附加文件目录的 Yocto/Bitbake 路径变量
【发布时间】:2018-06-07 13:56:35
【问题描述】:

所以我在我创建的层中使用 .bbappend 文件,并且在该层中我还有一些要安装的其他本地文件。

问题是我不确定 Yocto 变量是什么,它正确地代表了我的 bbappend 文件所在的目录。像“THISDIR”这样的变量最终指向原始配方目录 - 而不是我层中的附加目录。在不放置某种绝对路径的情况下如何才能最好地做到这一点?

【问题讨论】:

    标签: linux embedded-linux yocto bitbake


    【解决方案1】:

    将您的文件复制到存在.bb.bbappend 文件的目录。并添加跟随线 hello.bbappend

    FILESEXTRAPATHS_prepend := "${THISDIR}:"    
    SRC_URI += "file://yourfile"
    do_install_append(){
          install -d ${D}/some-dest-dir
          install -m 0644 ${S}/yourfile ${D}/some-dest-dir/
    }
    

    这里的THIS dir 表示您告诉bitbake 文件存在于.bb.bbappend 文件所在的目录中。

    例如:meta-hellolayer 例子/
    |_ 你好.c
    |_ hello.bbappend

    现在示例目录是 .bbappend 文件中的THIS 目录。

    Note:确保您需要将您的layer path(meta-helolayer) 添加到build/conf/bblayer.conf

    【讨论】:

    • 这是我已经尝试过的,它不起作用。我遇到的问题是,如果我在 .bbappend 中使用“${THISDIR}:”,它不会反映我的层中 bbappend 的目录,而是原始配方的目录。 e.g. meta-mycustom-layer ... |_ some-recipe.bbappend |_ myfile meta-original-layer ... |_ some-recipe.bb Bitbake 正在“meta-original-layer”树中搜索“myfile”,因为 THISDIR 反映的是该路径,而不是 bbappend 所在的路径。仅供参考,我正在运行 Morty。
    • 所以我发现了部分问题——我没有使用 YOCTO 手册建议的“立即扩展”运算符(“:=”与“=”)。所以现在路径是正确的,但是它仍然找不到我的文件。请注意,我试图直接在任务函数中复制文件(即install -m 0644 myfile ${D}/someinstalldir)。如果我改为设置“URI”然后从工作目录复制,我可以完成这项工作。使用我的原始方法执行此操作的正确方法是什么?
    • 发布你的食谱,我们就可以正确修改
    • 确保您需要在 build/conf/bblayer.conf 文件中添加您的配方 .bb 路径。
    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2019-10-19
    • 2012-07-12
    相关资源
    最近更新 更多