为瑞萨板编译Yocto时glibc库do_fetch阶段获取失败求助
解决Yocto编译glibc获取失败(404错误)的方案
1. 检查并更新glibc配方的源地址
Yocto中glibc的配方通常位于meta/recipes-core/glibc/目录下,找到对应版本的.bb或.bbappend文件:
- 打开配方文件,定位
SRC_URI字段,确认其中的URL是否已失效(比如官方主镜像移除了旧版本资源) - 将URL替换为GNU归档服务器或可靠镜像站点的地址,例如
https://ftp.gnu.org/gnu/glibc/ - 示例修改:
SRC_URI = "https://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.xz \ file://custom-patch.patch \ "
2. 验证glibc与Yocto版本兼容性
- 确认当前Yocto分支(如kirkstone、honister)和glibc版本的匹配性,部分旧Yocto分支依赖的glibc旧版本可能已从主镜像下架
- 若版本不兼容,要么升级Yocto分支,要么修改配方的
PV字段指定仍可获取的兼容版本,并同步更新SRC_URI中的对应资源地址
3. 手动下载资源到本地下载目录
- 从GNU归档站或可信镜像手动下载对应版本的glibc压缩包(如
glibc-2.36.tar.xz) - 将文件放入Yocto项目根目录的
downloads文件夹 - 重新执行编译命令,Yocto会优先使用本地已下载的资源,跳过网络请求
4. 修正镜像源配置
- 检查
conf/local.conf中的SOURCE_MIRROR_URL或PREMIRRORS配置,确保其正确覆盖了glibc的源地址,避免仅覆盖部分包的源导致glibc仍走失效地址 - 示例
PREMIRRORS配置:PREMIRRORS_prepend = "\ gnu://.* https://ftp.gnu.org/gnu/ \ "
5. 清理缓存后重新编译
- 执行以下命令清理旧缓存和失效的下载记录:
bitbake -c cleansstate glibc rm -rf tmp/deploy/glibc* rm downloads/glibc-*.tar.xz.done - 重新执行编译命令(根据你的镜像名称调整):
bitbake core-image-qt
内容的提问来源于stack exchange,提问作者Nitish Sharma
相关产品推荐
相关产品推荐

