如何解决yocto do_unpack() - 不同层中的相同目录名称
在使用 Yocto 的 Advanced Kernel Metadata 进行实验期间,我遇到了一种情况,我希望将 .scc
、.patch
和 .cfg
文件组织到一个目录结构中,如中所述syntax 部分,并在所有层中保持该结构(考虑这里的 2 个层 - meta-main_layer
和 meta-bsp_layer
):
meta-main_layer
└── recipes-kernel
└── linux
└── linux-yocto.bb
└── linux-yocto
├── cfg
│ ├── main_frag_1.cfg
│ └── main_frag_1.scc
├── features
│ ├── main_feature_1.cfg
│ ├── main_feature_1.patch
│ └── main_feature_1.scc
└── patches
├── main_patch_1.patch
└── main_patch_1.scc
meta-bsp_layer
└── recipes-kernel
└── linux
└── linux-yocto.bbappend
└── linux-yocto
├── bsp
│ └── bsp_definition.scc
├── cfg
│ ├── bsp_frag_1.cfg
│ └── bsp_frag_1.scc
├── features
│ ├── bsp_feature_1.cfg
│ ├── bsp_feature_1.patch
│ └── bsp_feature_1.scc
└── patches
├── bsp_patch_1.patch
└── bsp_patch_1.scc
meta-main_layer/recipes-kernel/linux/linux-yocto.bb
包含:
FILESEXTRAPATHS_prepend := "${THISDIR}:"
...
SRC_URI = "file://linux-yocto;type=kmeta \
"
编辑:
还有meta-bsp_layer/recipes-kernel/linux/linux-yocto.bbappend
:
FILESEXTRAPATHS_prepend := "${THISDIR}:"
...
SRC_URI += " file://linux-yocto;type=kmeta \
"
...编辑结束
这意味着在解析配方后,SRC_URI
将包含 file://linux-yocto;type=kmeta
两次,以及 FILESEXTRAPATHS=meta-bsp_layer/recipes-kernel/linux:meta-main_layer/recipes-kernel/linux:
。按照我的理解,do_unpack()
任务遍历 SRC_URI
中的文件,对于每个文件,它搜索 FILESEXTRAPATHS
以查找该文件,并采用它找到的第一个文件。这意味着在我的情况下,只采用 meta-bsp_layer
中的文件,因为它的路径是 FILESEXTRAPATHS
中的第一个,而 meta-main_layer
中的文件将被忽略。
我想要实现的是,不是仅从 FILESEXTRAPATHS
中找到的第一个路径中获取文件,do_unpack()
将遍历 FILESEXTRAPATHS
中的所有路径并合并来自两个层的相同名称的目录(cfg
、features
和 patches
)。没有它,我看不到使用高级内核元数据机制的任何大好处。谁能建议如何完成这项工作?
PS:我使用的是 Yocto Zeus。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。