我会将应用程序拆分为多个包。基本上我只想添加另一个可以使用特定图像构建的图像。
在与我添加的应用程序关联的 .bb 文件中:
SRC_URI = " \
...
file://api.conf \
file://script.sh \
"
PACKAGES =+ "${PN} ${PN}-tools"
FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh \
${sysconfdir}/mrvl/api.conf \
"
然后,我在我的 bb 图像测试中添加了以下行
IMAGE_INSTALL += " mrvl-tools"
我正在使用命令 bitbake image-test 返回:
ERROR: Nothing RPROVIDES 'mrvl-tools' (but /home/usr/../image-test.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'mrvl-tools' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mrvl-tools']
ERROR: Required build target 'image-test' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-test', 'mrvl-tools']
我遵循 bluez5-obex 包的相同定义,并且 IMAGE_ISTALL += "bluez5-obex"有效..
我忘记了什么?
最佳答案
安德斯很近。
首先,您的 PACKAGES 定义是错误的,您所需要的只是 PACKAGES += "${PN}-tools"。
但要记住的重要一点是 FILES 是按照 PACKAGES 的顺序进行评估的,所以首先处理 ${PN} 并且默认的 FILES_${PN} 包含 ${bindir} ${sysconfdir},所以所有的 ${bindir} ${sysconfdir} 在 ${PN} 中。然后它尝试处理 ${PN}-tools 并且其 FILES 中的表达式都不匹配剩余的任何文件,因此包为空。
因此,要么将 FILES_${PN} 设置为您希望它包含的内容,要么使用 PACKAGE_BEFORE_PN=${PN}-tools 在默认 PACKAGES 值中的 PN 之前注入(inject) PN-tools。我保证,阅读 bitbake.conf 将有助于使这一点更清楚。
请注意,我预计该错误是 rootfs 时间失败而不是图像构建失败,但希望这就是问题所在。
关于packages - Bitbake 错误 - 没有 RPROVIDES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28365266/