Yocto构建时Bitbake从失效URL拉取源码失败该如何解决
问题根因
- 你用的Yocto Dizzy(1.7版本)是2014年发布的老旧版本,距今已近10年,上游项目的源码链接大量失效,是下载404、校验失败的直接原因。
- 该版本官方仅适配Ubuntu 12.04/14.04,你当前使用的Ubuntu 18.04和它兼容性极差,是后续gcc编译报错的核心原因。
- 作为新手更推荐你直接换用仍在维护期的Yocto LTS版本(比如Kirkstone 4.0),配套使用Ubuntu 20.04/22.04系统,可直接避开绝大多数兼容、源失效问题。
如果你确实需要使用当前Dizzy版本完成学习,可按以下步骤修复:
1. 替换失效源码源
打开构建目录下的conf/local.conf文件,在末尾添加如下配置,使用Yocto官方归档镜像替换失效的上游链接:
SOURCE_MIRROR_URL = "https://downloads.yoctoproject.org/mirror/sources/" INHERIT += "own-mirrors" BB_GENERATE_MIRROR_TARBALLS = "1" # 临时关闭严格校验,避免旧包校验值不匹配导致构建中断 BB_STRICT_CHECKSUM = "0"
2. 修复系统兼容问题
先安装该版本依赖的宿主工具包:
sudo apt install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm autoconf-archive
然后替换Yocto内置的旧版配置脚本,解决gnu-configize执行报错的问题:
sudo ln -sf /usr/share/gnu-config/config.guess /opt/yocto/poky/scripts/config.guess sudo ln -sf /usr/share/gnu-config/config.sub /opt/yocto/poky/scripts/config.sub
3. 重新启动构建
清理之前错误的构建缓存和损坏的下载包,再重新执行构建:
cd /opt/yocto/poky/qemuarm rm -rf tmp/ cache/ downloads/*_bad-checksum* source /opt/yocto/poky/oe-init-build-env /opt/yocto/poky/qemuarm bitbake core-image-minimal
内容的提问来源于stack exchange,提问作者TCUL
相关产品推荐
相关产品推荐

