构建Yocto Gatesgarth“可扩展SDK”(ESDK)失败-PULATE_SDK_EXT失败

ffscu2ro  于 2022-10-23  发布在  Linux
关注(0)|答案(1)|浏览(255)

我正在与Yocto“Gatesgarth”合作,开发一款基于i.MX6ULL的定制电路板。
我在生成可扩展SDK(ESDK)时遇到了一些问题。
正常SDK的生成,正确完成。
下面是一些细节。
系统详细信息:

Board based on NXP i.MX6ULL
Yocto version "Gatesgarth 3.2.4 (May 2021)"
BB_VERSION      = "1.48.0", 
NATIVELSBSTRING = "ubuntu-18.04" 
DISTRO_VERSION  = "5.10-gatesgarth"
meta-qt5 is present
Build environment based on Docker Container

环境变量:
文件:conf/local.conf

SDKMACHINE ?= 'x86_64'

文件:test-Image-mx6ull.bb

inherit core-image
    inherit populate_sdk_qt5
    inherit populate_sdk_ext
    SDK_EXT_TYPE = "minimal"
    SDK_INCLUDE_TOOLCHAIN = "1"
    SDK_INCLUDE_PKGDATA = "0"
    SDK_INCLUDE_NATIVESDK = "1"

执行的命令为:

bitbake test-image-mx6ull -c populate_sdk_ext

产出:

ERROR: test-image-mx6ull-1.0-r0 do_populate_sdk_ext: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:

***0002:do_populate_sdk_ext(d)

     0003:
File: '/yocto/sources/poky/meta/classes/populate_sdk_ext.bbclass', lineno: 720, function: do_populate_sdk_ext
     0716:        bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting 
SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH'), d.getVar('BUILD_ARCH')))
     0717:
     0718:    d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d))
     0719:    if d.getVar('SDK_INCLUDE_BUILDTOOLS') == '1':

***0720:        buildtools_fn = get_current_buildtools(d)

     0721:    else:
     0722:        buildtools_fn = None
     0723:    d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d))
     0724:    d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn)
File: '/yocto/sources/poky/meta/classes/populate_sdk_ext.bbclass', lineno: 556, function: get_current_buildtools
     0552:    import glob
     0553:    btfiles = glob.glob(os.path.join(d.getVar('SDK_DEPLOY'), '*-buildtools-nativesdk-standalone-*.sh'))
     0554:    btfiles.sort(key=os.path.getctime)
     0555:    print("MY-DEBUG - btfiles = {} - SDK_DEPLOY = {}".format(btfiles, d.getVar('SDK_DEPLOY')))

***0556:    return os.path.basename(btfiles[-1])

     0557:
     0558:def get_sdk_required_utilities(buildtools_fn, d):
     0559:    """Find required utilities that aren't provided by the buildtools"""
     0560:    sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES') or '').split()
Exception: IndexError: list index out of range

DEBUG: Python function do_populate_sdk_ext finished
MY-DEBUG - btfiles = [] - SDK_DEPLOY = /yocto/build-mX6ull/tmp/deploy/sdk

问题

在第553行,数组BT文件应该被填充,但是该数组是空的,并且556行生成异常。
我不知道哪里错了,我忘记了什么,需要设置哪些Yocto环境变量才能正确工作。

iklwldmw

iklwldmw1#

希望你一切都好
我也遇到过类似的问题,我无法登录esdk,
这都是GLIBC版本的。
请更新您的GLIBC版本
在我的例子中,我必须将“Yocto-uninative.inc”文件中的GLIBC版本更新为2.33。这对我很有效!

相关问题