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'
我在使用 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'