Yocto使用Multilib更新到Sumo会导致do_image_wic出错

时间:2018-05-22 14:24:57

标签: yocto

更新Yocto 2.5 Sumo后,我的genericx86版本不再有效。问题似乎与Multilib功能有关。我需要64位版本的grub-efi,所以我已将其添加到local.conf

require conf/multilib.conf
MULTILIBS = "multilib:lib64"
DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64"
IMAGE_INSTALL_append = " lib64-grub-efi"

使用Sumo我收到此错误:

image-dev-1.0-r0 do_image_wic: 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:extend_recipe_sysroot(d)
     0003:
File: '/workdir/poky/build-x86/../meta/classes/staging.bbclass', lineno: 546, function: extend_recipe_sysroot
     0542:    bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists))
     0543:
     0544:    for f in fixme:
     0545:        if f == '':
 *** 0546:            staging_processfixme(fixme[f], recipesysroot, recipesysroot, recipesysrootnative, d)
     0547:        elif f == 'native':
     0548:            staging_processfixme(fixme[f], recipesysrootnative, recipesysroot, recipesysrootnative, d)
     0549:        else:
     0550:            staging_processfixme(fixme[f], multilibs[f].getVar("RECIPE_SYSROOT"), recipesysroot, recipesysrootnative, d)
File: '/workdir/poky/build-x86/../meta/classes/staging.bbclass', lineno: 174, function: staging_processfixme
     0170:    for fixmevar in ['COMPONENTS_DIR', 'HOSTTOOLS_DIR', 'PKGDATA_DIR', 'PSEUDO_LOCALSTATEDIR', 'LOGFIFO']:
     0171:        fixme_path = d.getVar(fixmevar)
     0172:        cmd += " -e 's:FIXME_%s:%s:g'" % (fixmevar, fixme_path)
     0173:    bb.debug(2, cmd)
 *** 0174:    subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
     0175:
     0176:
     0177:def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d):
     0178:    import glob
File: '/usr/lib/python3.5/subprocess.py', lineno: 626, function: check_output
     0622:        # empty string. That is maintained here for backwards compatibility.
     0623:        kwargs['input'] = '' if kwargs.get('universal_newlines', False) else b''
     0624:
     0625:    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
 *** 0626:               **kwargs).stdout
     0627:
     0628:
     0629:class CompletedProcess(object):
     0630:    """A process that has finished running.
File: '/usr/lib/python3.5/subprocess.py', lineno: 708, function: run
     0704:            raise
     0705:        retcode = process.poll()
     0706:        if check and retcode:
     0707:            raise CalledProcessError(retcode, process.args,
 *** 0708:                                     output=stdout, stderr=stderr)
     0709:    return CompletedProcess(process.args, retcode, stdout, stderr)
     0710:
     0711:
     0712:def list2cmdline(seq):
Exception: subprocess.CalledProcessError: Command 'sed -e 's:^[^/]*/:/workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/recipe-sysroot/:g' /workdir/poky/build-x86/tmp/sysroots-components/x86_64/lib64-libtool-cross/fixmepath /workdir/poky/build-x86/tmp/sysroots-components/core2-32/libtool-cross/fixmepath | xargs sed -i -e 's:FIXMESTAGINGDIRTARGET:/workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/recipe-sysroot:g; s:FIXMESTAGINGDIRHOST:/workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/recipe-sysroot-native:g' -e 's:FIXME_COMPONENTS_DIR:/workdir/poky/build-x86/tmp/sysroots-components:g' -e 's:FIXME_HOSTTOOLS_DIR:/workdir/poky/build-x86/tmp/hosttools:g' -e 's:FIXME_PKGDATA_DIR:/workdir/poky/build-x86/tmp/pkgdata/genericx86:g' -e 's:FIXME_PSEUDO_LOCALSTATEDIR:/workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/pseudo/:g' -e 's:FIXME_LOGFIFO:/workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/temp/fifo.20324:g'' returned non-zero exit status 123

Subprocess output:
sed: can't read /workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/recipe-sysroot/usr/bin/crossscripts/x86_64-pokymllib64-linux-libtool: No such file or directory

ERROR: image-dev-1.0-r0 do_image_wic: Function failed: extend_recipe_sysroot
ERROR: Logfile of failure stored in: /workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/temp/log.do_image_wic.20324
ERROR: Task (/workdir/poky/build-x86/../meta-general/recipes-devtools/images/image-dev.bb:do_image_wic) failed with exit code '1'

文件x86_64-pokymllib64-linux-libtool位于 genericx86-pokym llib64 -linux / image-dev / 1.0-r0 / lib64 -recipe-sysroot / USR /斌/ crossscripts / 。如果我复制它只是为了看看会发生什么,会弹出另一个错误:

ERROR: image-dev-1.0-r0 do_image_wic: 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:extend_recipe_sysroot(d)
     0003:
File: '/workdir/poky/build-x86/../meta/classes/staging.bbclass', lineno: 539, function: extend_recipe_sysroot
     0535:                    dest = newmanifest[l]
     0536:                    if l.endswith("/"):
     0537:                        staging_copydir(l, targetdir, dest, seendirs)
     0538:                        continue
 *** 0539:                    staging_copyfile(l, targetdir, dest, postinsts, seendirs)
     0540:
     0541:    bb.note("Installed into sysroot: %s" % str(msg_adding))
     0542:    bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists))
     0543:
File: '/workdir/poky/build-x86/../meta/classes/staging.bbclass', lineno: 151, function: staging_copyfile
     0147:        os.symlink(linkto, dest)
     0148:        #bb.warn(c)
     0149:    else:
     0150:        try:
 *** 0151:            os.link(c, dest)
     0152:        except OSError as err:
     0153:            if err.errno == errno.EXDEV:
     0154:                bb.utils.copyfile(c, dest)
     0155:            else:
Exception: FileExistsError: [Errno 17] File exists: '/workdir/poky/build-x86/tmp/sysroots-components/x86_64/lib64-glibc/sysroot-providers/virtual_lib64-libc' -> '/workdir/poky/build-x86/tmp/work/genericx86-pokymllib64-linux/image-dev/1.0-r0/lib64-recipe-sysroot/sysroot-providers/virtual_lib64-libc'

ERROR: image-dev-1.0-r0 do_image_wic: Function failed: extend_recipe_sysroot
ERROR: Logfile of failure stored in: /workdir/poky/build-x86/tmp/work/genericx86-poky-linux/image-dev/1.0-r0/temp/log.do_image_wic.20412
ERROR: Task (/workdir/poky/build-x86/../meta-general/recipes-devtools/images/image-dev.bb:do_image_wic) failed with exit code '1'

Sumo中的Multilib是否发生了根本性的变化?我扫描了the manual,但似乎我不需要做任何不同的事情。

当我评论它构建的local.config的Multilib行时没有错误。

0 个答案:

没有答案