【问题标题】:Bitbake tries to fetch sources from unavailable URL and they failBitbake 尝试从不可用的 URL 获取源,但它们失败了
【发布时间】:2021-11-07 01:20:32
【问题描述】:

我目前正在尝试为 Yocto 项目设置一个环境以供我个人学习。

我不知道从哪里开始 Yocto,所以我买了这本书 Embedded Linux Projects Using Yocto Project Cookbook,但它总是无法构建环境。

我只运行了简单的命令。我运行source oe-init-build-env <dir name> 创建目录并运行bitbake core-image-minimal

但是 bitbake 命令不断给我这样的错误。这是日志。

WARNING: Host distribution "Ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Parsing recipes: 100% 

|#################################################################################| Time: 00:00:25Parsing of 891 .bb files complete (0 cached, 891 parsed). 1287 targets, 61 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.24.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-18.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "qemuarm"
DISTRO            = "poky"
DISTRO_VERSION    = "1.7.3"
TUNE_FEATURES     = "arm armv5 thumb dsp"
TARGET_FPU        = "soft"
meta
meta-yocto
meta-yocto-bsp    = "dizzy:58863ad092c9a279e305c841dbb4353de2ecfae8"

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: Failed to fetch URL http://www.zlib.net/zlib-1.2.8.tar.xz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://www.multiprecision.org/mpc/download/mpc-1.0.2.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL ftp://ftp.gmplib.org/pub/gmp-6.0.0/gmp-6.0.0a.tar.bz2, attempting MIRRORS if available
WARNING: Failed to fetch URL http://ymorin.is-a-geek.org/download/kconfig-frontends/kconfig-frontends-3.12.0.0.tar.xz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://download.gna.org/cryptodev-linux/cryptodev-linux-1.6.tar.gz, attempting MIRRORS if available
WARNING: Checksum failure encountered with download of http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz - will attempt other sources if available
WARNING: Renaming /opt/yocto/poky/qemuarm/downloads/bzip2-1.0.6.tar.gz to /opt/yocto/poky/qemuarm/downloads/bzip2-1.0.6.tar.gz_bad-checksum_2ae3e6c958d83d2855a37f13fe29fd95
WARNING: Failed to fetch URL http://gnome-build-stage-1.googlecode.com/files/uuid-1.6.2.tar.gz, attempting MIRRORS if available
WARNING: Checksum failure encountered with download of http://rpm5.org/files/popt/popt-1.16.tar.gz - will attempt other sources if available
WARNING: Renaming /opt/yocto/poky/qemuarm/downloads/popt-1.16.tar.gz to /opt/yocto/poky/qemuarm/downloads/popt-1.16.tar.gz_bad-checksum_9e09d0bf772649c5ba385c48ba2d3547
WARNING: Failed to fetch URL http://zlib.net/pigz/pigz-2.3.1.tar.gz, attempting MIRRORS if available
WARNING: Checksum failure encountered with download of http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.14-0.20131024.src.rpm;extract=rpm-5.4.14.tar.gz - will attempt other sources if available
WARNING: Renaming /opt/yocto/poky/qemuarm/downloads/rpm-5.4.14-0.20131024.src.rpm to /opt/yocto/poky/qemuarm/downloads/rpm-5.4.14-0.20131024.src.rpm_bad-checksum_6a8d9bc6a7e0162d7ff72fefc9e841e5
WARNING: Failed to fetch URL http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL ftp://invisible-island.net/byacc/byacc-20140422.tgz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://pkg-shadow.alioth.debian.org/releases/shadow-4.2.1.tar.xz, attempting MIRRORS if available

我检查了日志中的 URL,结果发现它们都是 404 页面。最重要的是,它会通过显示此消息来终止。

ERROR: Error executing a python function in /opt/yocto/poky/meta/recipes-devtools/gcc/gcc-source_4.9.bb:

The stack trace of python calls that resulted in this exception/failure was:
File: 'do_preconfigure', lineno: 12, function: <module>
     0008:    cmd = d.expand("sed -i 's/BUILD_INFO=info/BUILD_INFO=/' /opt/yocto/poky/qemuarm/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/gcc/configure")
     0009:    subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
     0010:
     0011:
 *** 0012:do_preconfigure(d)
     0013:
File: 'do_preconfigure', lineno: 5, function: do_preconfigure
     0001:
     0002:def do_preconfigure(d):
     0003:    import subprocess
     0004:    cmd = d.expand('PATH=/opt/yocto/poky/scripts:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi:/opt/yocto/poky/qemuarm/tmp/sysroots/qemuarm/usr/bin/crossscripts:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/usr/sbin:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/usr/bin:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/sbin:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/bin:/opt/yocto/poky/scripts:/opt/yocto/poky/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2020.824.0_x64__79rhkp1fndgsc:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Users/kimth/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/kimth/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64/:/mnt/c/Users/kimth/AppData/Roaming/TinyTeX/bin/win32:/snap/bin cd /opt/yocto/poky/qemuarm/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1 && gnu-configize')
 *** 0005:    subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
     0006:    # See 0044-gengtypes.patch, we need to regenerate this file
     0007:    bb.utils.remove(d.expand("/opt/yocto/poky/qemuarm/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/gcc/gengtype-lex.c"))
     0008:    cmd = d.expand("sed -i 's/BUILD_INFO=info/BUILD_INFO=/' /opt/yocto/poky/qemuarm/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/gcc/configure")
     0009:    subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
File: '/usr/lib/python2.7/subprocess.py', lineno: 223, function: check_output
     0219:    if retcode:
     0220:        cmd = kwargs.get("args")
     0221:        if cmd is None:
     0222:            cmd = popenargs[0]
 *** 0223:        raise CalledProcessError(retcode, cmd, output=output)
     0224:    return output
     0225:
     0226:
     0227:def list2cmdline(seq):
Exception: CalledProcessError: Command 'PATH=/opt/yocto/poky/scripts:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi:/opt/yocto/poky/qemuarm/tmp/sysroots/qemuarm/usr/bin/crossscripts:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/usr/sbin:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/usr/bin:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/sbin:/opt/yocto/poky/qemuarm/tmp/sysroots/x86_64-linux/bin:/opt/yocto/poky/scripts:/opt/yocto/poky/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2020.824.0_x64__79rhkp1fndgsc:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Users/kimth/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/kimth/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64/:/mnt/c/Users/kimth/AppData/Roaming/TinyTeX/bin/win32:/snap/bin cd /opt/yocto/poky/qemuarm

我觉得我需要修改 conf 文件以获取可用的 URL,但我是 Yocto 和 Bitbake 的新手,所以我现在很迷茫。如果有人能告诉我在哪里可以找到解决方案,我将不胜感激。谢谢大家,注意安全。

【问题讨论】:

    标签: gcc embedded-linux yocto bitbake


    【解决方案1】:

    您似乎使用的是相当旧的 yocto 版本 1.7.3,而 3.3 已经发布。这也意味着您尝试为一些也很旧的包构建配方,因此某些 URL 可能不可用。您是否可以选择使用较新的版本?

    如果这不是您的选择,可以尝试将MIRROR(请参阅 [1])设置为这些软件包仍然可用的镜像 [2]。但这种方法我不喜欢。

    [1]https://www.yoctoproject.org/docs/1.7/bitbake-user-manual/bitbake-user-manual.html#var-MIRRORS [2] 可以是:http://downloads.yoctoproject.org/mirror/sources/

    【讨论】:

    • 谢谢!我将命令更改为git clone git://git.yoctoproject.org/poky,它至少开始工作了。但它仍然给我一个错误.. WARNING: linux-yocto-5.13.15+gitAUTOINC+c38435a3ca_482fd531f2-r0 do_fetch: Failed to fetch URL git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=v5.13/standard/arm-versatile-926ejs;, attempting MIRRORS if available 它仍然给我类似的类似问题。
    【解决方案2】:

    1.7.3 是该项目的一个非常旧的版本,最初于 2015 年发布,最后一次发布于 2016 年。您看到的 fetcher 警告不是问题,它们是警告,但它会退回到项目镜子。如果它没有正确回退,它将显示错误和警告。更大的问题其实是这样的:

    警告:主机发行版“Ubuntu-18.04”尚未通过此版本的构建系统进行验证;您可能会遇到意想不到的失败。建议您使用经过测试的发行版。

    由于 Ubuntu 18.04 比您正在使用的项目版本更新三年,因此它不可能与该版本兼容。您需要使用发布时代的主机操作系统,因此 Ubuntu 16.04 可能会更好。这是因为主机操作系统提供了用于构建交叉工具的 gcc,而较新的 gcc 版本往往无法在没有调整的情况下使用 100% 的旧代码。

    简而言之,如果您想尝试构建它,请使用较旧的发行版。

    【讨论】:

    • 我并不是要使用旧版本。我对 Yocto Project 很陌生,所以我只是在关注这本书。我不知道它的变化如此之快。我将命令更改为git clone git://git.yoctoproject.org/poky,它至少开始工作了。但它仍然给我一个类似的错误。 WARNING: linux-yocto-5.13.15+gitAUTOINC+c38435a3ca_482fd531f2-r0 do_fetch: Failed to fetch URL git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=v5.13/standard/arm-versatile-926ejs;, attempting MIRRORS if available
    • 该 url 绝对可用,因此这可能是对您的连接的某种过滤,阻止了 git 协议。你可以手动克隆那个 git 存储库吗?好消息是有 http 镜像,所以它应该可以使用这些镜像。
    猜你喜欢
    • 2013-02-20
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多