6

我会将应用程序拆分为多个包。基本上我只想添加另一个可以使用特定图像构建的图像。

在与我添加的应用程序关联的 .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" 有效..

我忘记了什么?

4

4 回答 4

3

安德斯很近。

首先,您的 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之前注入 PN-tools。我保证,阅读 bitbake.conf 将有助于使这一点更清楚。

请注意,我预计该错误是 rootfs 时间失败而不是图像构建失败,但希望这就是问题所在。

于 2015-02-06T13:37:50.563 回答
1

最好验证该图层是否已添加到

conf/bblayers.conf

这是它通常以“没有提供”开头的地方

BBLAYERS += " \
  ${BSPDIR}/sources/"your layer" \
于 2021-02-15T10:53:37.080 回答
0

感谢罗斯伯顿的回答。但我修改了 .bb 文件,它目前包含以下几行:

SUMMARY_${PN}-tools="mrvl tools test"
PACKAGE_BEFORE_PN += "${PN}-tools"
RDEPENDS_${PN}-tools = ""

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh ${sysconfdir}/mrvl/api.conf"
ALLOW_EMPTY_${PN}-tools = "1"

构建完成,名为 mrvl-test-tools_0.1-r0.ipk 的包在 /build/tmp/deploy/ipk/board/ 下很好地创建,但它不包含任何内容。这是由于变量“ALLOW_EMPTY..="1"”。如果没有此行,则构建失败并显示以下消息

Collected errors:
 * opkg_install_cmd: Cannot install package mrvl-test-tools.

 ERROR: Function failed: do_rootfs
 ERROR: Logfile of failure stored in: /home/../build/tmp/work/oe-linux/test-img/1.0-r0/temp/log.do_rootfs.4639
 ERROR: Task 7 (/home/../sources/meta-board/recipes-images/images/test-img.bb, do_rootfs) failed with exit code '1'

我不明白为什么文件现在不包含在 .ipk 中

于 2015-02-09T08:32:27.283 回答
0

你不需要添加file额外的文件路径

THISAPPENDFILESDIR := "${THISDIR}/file"
FILESEXTRAPATHS_prepend := "${THISDIR}/file:"
于 2020-10-07T13:56:52.033 回答