You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbake执行do_fetch时哈希值匹配仍校验失败问题咨询

Yocto Bitbake 哈希校验看似匹配仍报错排查方案
  • 第一优先级查配方里的哈希值末尾有没有看不见的空白字符
    你贴的报错日志里已经露了痕迹:打印出来的预期哈希值末尾,比实际算出来的哈希多了个空格——仔细看文本,实际哈希结尾和后面的when之间只有1个空格,预期哈希结尾和后面的was之间有2个空格。Bitbake做校验的时候不会自动去掉字符串首尾的空格、制表符、零宽空格这类不可见字符,只要你写SRC_URI[sha256sum]赋值的时候末尾带了多余空白,哪怕肉眼看着哈希值完全一样,逐字符对比的时候肯定过不了。
    处理的时候别直接复制报错里给的哈希值粘去配方,直接在构建环境里跑sha256sum /cache/downloads/firmware-17.zip拿输出的哈希,手动敲到配方里,写完检查下行尾别留空格,前后别夹看不见的特殊字符。
  • 检查多文件校验的对应关系
    如果你的配方里同时给好几个下载文件配了校验值,确认firmware-17.zip对应的哈希没和别的文件写串,SRC_URI里写的文件名、版本号要和校验值的索引完全对得上。
  • 清理对应文件的下载缓存就行,不用全量干净构建
    不用进Docker手动传文件,直接在跑bitbake的构建脚本里加一行rm -f /cache/downloads/firmware-17.zip*,把这个文件对应的旧缓存、.done标记文件全删掉就行,排除之前下载中断留的坏文件、硬链接异常导致的校验误判。
  • 排查Jenkins拉取的异常情况
    确认你写在SRC_URI里的Jenkins链接是直接拿文件的直链,不会因为没权限、登录过期跳转到HTML报错页。可以在do_fetch阶段加个简单打印,看下下载到的文件头是不是zip格式的PK开头,排除下错文件的可能。

我自己碰到过三次一模一样的报错,全都是复制哈希的时候末尾带了看不见的空格,改完直接就过,不用升源版本,也不用跑全量构建。

内容的提问来源于stack exchange,提问作者Gerrit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:30:49