Embedded linux Yocto:没有可用的食谱(tegra)

Embedded linux Yocto:没有可用的食谱(tegra),embedded-linux,yocto,bitbake,tegra,nvidia-jetson-nano,Embedded Linux,Yocto,Bitbake,Tegra,Nvidia Jetson Nano,我正在尝试创建一个具有 bitbake core-image-minimal 为我的jetson nano(nvidia tegra)。我已经从中为tegra设备添加了meta层 并将其添加到bblayer.conf。我还添加了行 IMAGE_CLASSES += "image_types_tegra" IMAGE_FSTYPES = "tegraflash" 下载到local.conf文件,以便以后能够刷新它 当我尝试运行bitbake命令创建图像时,会收到错

我正在尝试创建一个具有

bitbake core-image-minimal
为我的jetson nano(nvidia tegra)。我已经从中为tegra设备添加了meta层 并将其添加到bblayer.conf。我还添加了行

IMAGE_CLASSES += "image_types_tegra"               
IMAGE_FSTYPES = "tegraflash"
下载到local.conf文件,以便以后能够刷新它

当我尝试运行bitbake命令创建图像时,会收到错误消息:

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
但它说找的同一配方没有配方的文件不是吗?“vulkan-loader_1.1.%.bbappend”难道不是一个食谱吗


我如何解决这个问题?是因为它找不到文件,还是BBA不是配方而是其他东西?

我删除了所有内容,开始了新的构建,执行了完全相同的过程,并将所有相同的行添加到local.conf和bblayer.conf中。。。但这一次,bitbake命令运行时没有任何错误。

Michael

我对vulkan的作品没有答案,但我确实有一些建议,因为我们似乎正沿着与nano相似的道路前进

  • 使用yocto的战士分支
  • 需要通过SDK管理器
  • 下载英伟达SDK的二进制块
  • 使用NVIDIA_DEVNET_MIRROR变量指向local.conf中的这些sdk包。例如:file:///home/nvidia/yocto/git/poky/devnet/nano-dev"
  • 由于步骤2中的二进制代码,您需要使用较旧的gcc版本,而warrior中并不真正支持该版本。我使用了linaro-7.2层
  • 由于warrior中不支持gcc7,yocto/openembedded将尝试向gcc传递标志,这将导致构建失败。这里有一个总结,我希望是完整的,以帮助您完成这一点
  • 将DEBUG_PREFIX_MAP=”“添加到local.conf并应用以下修补程序

    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"
    

    祝你好运!如果这有点粗暴,我很抱歉,但我只是自己解决了这个问题。

    非常感谢您的回复!最后我尝试了这本指南:它正好说明了您对warrior branch的NVIDIA SDK和gcc支持问题的看法。现在,我正试图用THUD分支(poky和meta-tegra)构建一个基本图像,看看它是否有效。由于我对这一切都很陌生,我真的不知道如何修补。不过,我会在创建映像的同时进行研究,尝试用warrior branch创建另一个映像,如您所说:)您是否设法在jetson nano上使用warrior branch创建并启动了映像?是的,我有,与cudnn、gstreamer和朋友一起。所有英伟达的二进制文件。我用你给我的补丁内容制作了一个补丁文件,但是我把它放在哪里?我是通过编辑libxcrypt.bb和busybox.inc中的两行代码手动完成补丁的,它阻止了错误的发生,但是如果你有时间给我写信,我仍然想知道如何正确地进行补丁。