构建机器时安装错误的文件
我有 3 层:
meta-a:
meta-a
└── recipes-my
└── mypgk
├── mypgk_1.0.bb
└── mypkg_rel
├── config.conf
└── mypkg.service
- mypgk_1.0.bb:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}_rel:"
SRC_URI = "file://config.conf mypkg.service"
meta-b:
meta-b
└── recipes-my
└── mypgk
├── mypgk_1.0.bbappend
└── mypkg
└── config.conf
- mypgk_1.0.bbappend strong>:
FILESEXTRAPATHS_prepend_${MACHINE} := "${YOCTOROOT}/meta-a/recipes-my/${PN}/${PN}_rel:"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://config.conf "
我还有一个 meta-c
层。
meta-c
依赖于meta-b
,meta-b
依赖于meta-a
。
层优先级:
meta-a
= 14meta-b
= 15meta-c
= 16
每层定义一个机器 (machinea< /code>,
machineb
, machinec
)
当我构建 machinea
时,来自 的
config.conf
文件元-a 已安装。
当我构建 machineb
时,会安装 meta-b
中的 config.conf
文件。
当我构建 machinec
时,会安装来自 meta-a 的 config.conf
文件,而不是安装 meta-b
中具有更高优先级的文件。
当我构建 machinec
时,我希望按原样来自 meta-b
的 mypkg
,为什么 bitbake 使用其他 config.conf
> 文件?
如果我在 meta-b
中将 config.conf
重命名为 config_b.conf
(相应地更改 .bbappend),一切都会按预期进行。
编辑:
关于mypgk
的meta-c
内容为空,我希望它继承meta-b
。< br> 在 meta-c
layer.conf
我有这个:
LAYERDEPENDS_c = "b"
mypgk_1.0.bb
在 meta-a
中定义是:
FILESEXTRAPATHS_prepend_$(MACHINE) := "${THISDIR}/${PN}_rel:"
SRC_URI = "file://config.conf "
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} = " mypkg.service"
do_install() {
install -m 755 -d ${D}${bindir}
install -m 755 -d ${D}${sysconfdir}
install -m 644 ${WORKDIR}/config.conf ${D}${sysconfdir}/config.conf
install -d ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/mypkg.service ${D}${systemd_system_unitdir}/mypkg.service
}
编辑2:
还将 recipes-my/*
从 meta-b
复制到 meta-c/
不起作用,并且 config.confmeta-a
的 code> 已安装
I have 3 layers:
meta-a:
meta-a
└── recipes-my
└── mypgk
├── mypgk_1.0.bb
└── mypkg_rel
├── config.conf
└── mypkg.service
- mypgk_1.0.bb:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}_rel:"
SRC_URI = "file://config.conf mypkg.service"
meta-b:
meta-b
└── recipes-my
└── mypgk
├── mypgk_1.0.bbappend
└── mypkg
└── config.conf
- mypgk_1.0.bbappend:
FILESEXTRAPATHS_prepend_${MACHINE} := "${YOCTOROOT}/meta-a/recipes-my/${PN}/${PN}_rel:"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://config.conf "
I also have a meta-c
layer.
meta-c
depends onmeta-b
,meta-b
depends onmeta-a
.
Layers priority:
meta-a
= 14meta-b
= 15meta-c
= 16
Every layer defines a machine (machinea
, machineb
, machinec
)
When I build machinea
, the config.conf
file from meta-a
is installed.
When I build machineb
, the config.conf
file from meta-b
is installed.
When I build machinec
, the config.conf
file from meta-a is installed instead the one in meta-b
which have a higher priority.
When I build machinec
I want mypkg
from meta-b
as-is, why bitbake use the other config.conf
file?
If I rename config.conf
to config_b.conf
(changing .bbappend accordingly) in meta-b
everything works as axpected.
EDIT:
meta-c
content regarding mypgk
is empty, i want it to inherit from meta-b
.
in meta-c
layer.conf
i have this:
LAYERDEPENDS_c = "b"
mypgk_1.0.bb
defined in meta-a
is:
FILESEXTRAPATHS_prepend_$(MACHINE) := "${THISDIR}/${PN}_rel:"
SRC_URI = "file://config.conf "
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} = " mypkg.service"
do_install() {
install -m 755 -d ${D}${bindir}
install -m 755 -d ${D}${sysconfdir}
install -m 644 ${WORKDIR}/config.conf ${D}${sysconfdir}/config.conf
install -d ${D}${systemd_system_unitdir}
install -m 644 ${WORKDIR}/mypkg.service ${D}${systemd_system_unitdir}/mypkg.service
}
EDIT 2:
also copying recipes-my/*
from meta-b
to meta-c/
doesn't work and config.conf
from meta-a
is installed
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是添加到
FILESEXTRAPATHS
的目录顺序。修改
meta-b
中的mypgk_1.0.bbappend
来:解决了问题
the issue was the order of direictories added to
FILESEXTRAPATHS
.modifing
mypgk_1.0.bbappend
inmeta-b
to:solved the issue