如何在yocto中创建do_populate_sysroot_append任务

时间:2016-02-12 04:23:51

标签: yocto openembedded

我们如何在sysroot目录中添加一些额外的内核文件?我想扩展do_populate_sysroot任务,如何在do_populate_sysroot之后和do_package之前将更多文件复制到sysroot中?我尝试在配方中创建do_populate_sysroot_append(),但它正在解析错误。我们如何在populate_sysroot之后和do_package任务开始之前在sysroot中添加文件?我们如何在两者之间创建新任务?

3 个答案:

答案 0 :(得分:4)

do_populate_sysroot是一个python函数,所以如果你用shell附加它,那么就会出现解析错误。

如果您想播放更多文件,则可以附加sysroot_stage_all或编写一个调用sysroot_stage_dir的函数并将其添加到SYSROOT_PREPROCESS_FUNCS

oe-core中有这两种方法的例子。

答案 1 :(得分:2)

根据@ ross-burton的回答,我搜索了附加到sysroot_stage_all并找到例如poky/meta/recipes-core/meta/signing-keys.bb的食谱。

无论如何,如果你有一个软件包将文件打包在sys根目录的非标准目录中,并且依赖软件包需要访问这些文件,那么这很有用。

添加以下样式的内容可以完成任务。

sysroot_stage_all_append () {                                     
    sysroot_stage_dir ${D}${sysconfdir}/pki ${SYSROOT_DESTDIR}${sysconfdir}/pki
}   

答案 2 :(得分:1)

在您的内核配方中修改“ SYSROOT_DIRS”变量将很容易,

_chronology

进行上述更改后,“ var”目录也将被复制到sysroot。

https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-SYSROOT_DIRS