Issue
I am having an issue with building Raspberry Pi image with Mender.io and Yocto.
Here is my 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 \
"
And here my 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"
When I run the following command
bitbake image1
I get the following error:
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.
What could I be missing?
Solution
When you run "bitbake " the has to be a recipe or target (at minimum). The recipe/target corresponds to a .*.bb file (ie. recipe file) in one of the layers included in bblayers.conf (there are cases where this relationship isn't exactly true but let's ignore those for now). Most .bb files will be recipes for packages but there are a few which define images. Since the image recipes are 'special' they are usually contained in directories called 'images' within the layers. So perform a
'find . -type d -name images'
from within the various layers directories, then inspect contents of these images directories to find the image recipe you are interested in (you are most likely interested in the images found in meta-raspberrypi). Determine the image you want then run the bitbake command with that image name,
ex. 'bitbake rpi-basic-image'
Answered By - TundraMan