2

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?

Varyag
  • 676
  • 12
  • 29

2 Answers2

2

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.

Fullstop
  • 31
  • 2
  • Thank you very much for your response! I ended up trying this guide: https://www.konsulko.com/building-a-custom-linux-distribution-for-nvidia-cuda-enabled-embedded-devices/ It says exactly what you say about NVIDIA SDK and gcc support problems with warrior branch. Right now I'm attempting to build a basic image with the THUD branches instead (poky and meta-tegra) just to see if it works. As I am very new with all this, I don't really know how to patch. I will however look into it while the image is being build to try and build another image with the warrior branch like you said :) – Varyag Sep 11 '19 at 08:56
  • Did you manage to build and boot on an image with the warrior branch on the jetson nano? – Varyag Sep 11 '19 at 09:13
  • 1
    Yes, I have, with cudnn, gstreamer, and friends. All of the nvidia binary stuff. – Fullstop Sep 11 '19 at 13:11
  • I made a .patch file with the patch content you gave me, but where do I put it? And how do I apply it? – Varyag Sep 12 '19 at 08:03
  • I did the patch manually by editing the 2 lines in libxcrypt.bb and busybox.inc and it stopped the errors, but I would still like to know how to patch properly if you got the time to write me how I would've done it. – Varyag Sep 12 '19 at 09:26
  • patch -p1 < patch_contents_in_this_file.diff – Fullstop Sep 12 '19 at 18:12
1

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.

Varyag
  • 676
  • 12
  • 29