Varyag
Varyag

Reputation: 696

Yocto: No recipes available (tegra)

I'm attempting to create an image with

bitbake core-image-minimal

For my jetson nano (nvidia tegra). I've added the meta-layer for tegra devices from https://github.com/madisongh/meta-tegra and added it to bblayer.conf. I have also added lines

IMAGE_CLASSES += "image_types_tegra"               
IMAGE_FSTYPES = "tegraflash"

to the local.conf file to be able to flash it later.

When I attempt to run the bitbake command to create the image, I get the error message:

ERROR: No recipes available for:
/home/mci/yocto/jetson-nano/meta-tegra/recipes-graphics/vulkan/vulkan-loader_1.1.%.bbappend
/home/mci/yocto/jetson-nano/meta-tegra/recipes-graphics/vulkan/vulkan-tools_1.1.%.bbappend
/home/mci/yocto/jetson-nano/meta-tegra/recipes-graphics/wayland/weston_7.0.0.bbappend

But aren't the files it says there is no recipes for the same recipes it's looking for? Isn't "vulkan-loader_1.1.%.bbappend" a recipe?

How do I solve this problem? Is it because it can't find the files or is the bbappend not the recipes but something else?

Upvotes: 2

Views: 1311

Answers (2)

Fullstop
Fullstop

Reputation: 31

Michael,

I don't have an answer for the vulkan pieces but I do have a few pointers since we seem to be going down a similar path with the nano.

  1. Use the warrior branch of yocto
  2. You'll need to download the binary pieces of the nvidia sdk through the SDK manager
  3. Point to these sdk packages in your local.conf with the NVIDIA_DEVNET_MIRROR variable. ex: "file:///home/nvidia/yocto/git/poky/devnet/nano-dev"
  4. Because of the binary pieces in step 2, you need to use an older gcc version which isn't really supported in warrior. I used the linaro-7.2 layer.
  5. Since gcc7 is not supported in warrior, yocto / openembedded will attempt to pass flags to gcc which will make the build fail. Here's a summary, which I hope is complete, to help you through this.

Add DEBUG_PREFIX_MAP="" to local.conf and apply the following patch.

diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index 174ce5a8c0..e8d651a010 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -128,7 +128,7 @@ do_prepare_config () {
                ${S}/.config.oe-tmp > ${S}/.config
        fi
        sed -i 's/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b"/' ${S}/.config
-       sed -i 's|${DEBUG_PREFIX_MAP}||g' ${S}/.config
+       #sed -i 's|${DEBUG_PREFIX_MAP}||g' ${S}/.config
 }

 # returns all the elements from the src uri that are .cfg files
diff --git a/meta/recipes-core/libxcrypt/libxcrypt.bb b/meta/recipes-core/libxcrypt/libxcrypt.bb
index 3b9af6d739..350f7807a7 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt.bb
+++ b/meta/recipes-core/libxcrypt/libxcrypt.bb
@@ -24,7 +24,7 @@ FILES_${PN} = "${libdir}/libcrypt*.so.* ${libdir}/libcrypt-*.so ${libdir}/libowc
 S = "${WORKDIR}/git"

 BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE} -std=gnu99"
-TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error=missing-attributes"
-CPPFLAGS_append_class-nativesdk = " -Wno-error=missing-attributes"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} "
+CPPFLAGS_append_class-nativesdk = " "

 BBCLASSEXTEND = "nativesdk"

Best of luck! I apologize if this is a bit rough, but I'm just getting through this myself.

Upvotes: 2

Varyag
Varyag

Reputation: 696

I deleted everything and started with a fresh build, did the EXACT same procedure and added all the same lines to the local.conf and bblayer.conf... But this time, bitbake command is running with no errors at all.

Upvotes: 1

Related Questions