bitbake ERROR: Nothing PROVIDES Raspberry Pi

bitbake ERROR: Nothing PROVIDES Raspberry Pi

我在使用 Mender.io 和 Yocto 构建 Raspberry Pi 图像时遇到问题。

这是我的 bblayers.conf

    # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
    # changes incompatibly
    POKY_BBLAYERS_CONF_VERSION = "2"

    BBPATH = "${TOPDIR}"
    BBFILES ?= ""

    BBLAYERS ?= " \
      /root/poky/meta \
      /root/poky/meta-poky \
      /root/poky/meta-yocto-bsp \
      /root/poky/meta-mender/meta-mender-core \
      /root/poky/meta-mender/meta-mender-raspberrypi \
      /root/poky/meta-raspberrypi \
      /root/poky/meta-openembedded/meta-oe \
      /root/poky/meta-openembedded/meta-multimedia \
      /root/poky/meta-openembedded/meta-python \
      /root/poky/meta-openembedded/meta-networking \
  "

这是我的 local.conf

PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
#ASSUME_PROVIDED += "libsdl-native"

# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.
CONF_VERSION = "2"

# The name of the disk image or Artifact that will be built.
# This is what the device will report that it is running, and different updates must have different names
# because Mender will skip installation of an artifact if it is already installed.
MENDER_ARTIFACT_NAME = "release-1"

INHERIT += "mender-full"

# A MACHINE integrated with Mender.
# vexpress-qemu or beaglebone can be used for testing.
MACHINE = "raspberrypi0"

DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""

IMAGE_FSTYPES = "ext4"

KERNEL_IMAGETYPE = "uImage"

MENDER_PARTITION_ALIGNMENT_KB = "4096"
MENDER_BOOT_PART_SIZE_MB = "40"

do_image_sdimg[depends] += " bcm2835-bootfiles:do_populate_sysroot"

# raspberrypi files aligned with mender layout requirements
IMAGE_BOOT_FILES_append = " boot.scr u-boot.bin;${SDIMG_KERNELIMAGE}"
IMAGE_INSTALL_append = " kernel-image kernel-devicetree"
IMAGE_FSTYPES_remove += " rpi-sdimg"

当我运行下面的命令

bitbake image1

我收到以下错误:

Loading cache: 100% |################################################################################################################################| Time: 0:00:00
Loaded 160 entries from dependency cache.
Parsing recipes: 100% |##############################################################################################################################| Time: 0:01:22
Parsing of 1982 .bb files complete (97 cached, 1885 parsed). 2743 targets, 184 skipped, 0 masked, 0 errors.
ERROR: Nothing PROVIDES 'image1'

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

我可能遗漏了什么?

当您 运行 "bitbake " 时,必须是配方或目标(至少)。 recipe/target 对应于 bblayers.conf 中包含的其中一层中的 .*.bb 文件(即配方文件)(在某些情况下,这种关系并不完全正确,但我们暂时忽略它们).大多数 .bb 文件将是包的配方,但也有一些定义图像。由于图像配方是 'special',因此它们通常包含在图层中名为 'images' 的目录中。所以执行

'find . -type d -name images'

从各个层目录中,然后检查这些图像目录的内容以找到您感兴趣的图像配方(您很可能对在 meta-raspberrypi 中找到的图像感兴趣)。确定您想要的图像,然后 运行 使用该图像名称的 bitbake 命令,

ex. 'bitbake rpi-basic-image'