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

Ubuntu14执行repo sync同步Yocto Poky时gnutls_handshake握手失败

Ubuntu14环境repo sync握手失败解决方案

报错核心原因:Ubuntu 14.04 自带的Git、GnuTLS库版本过低,无法兼容git.yoctoproject.org当前启用的TLS 1.2及以上加密协议,常规CA证书更新无法解决协议不兼容问题。

可行解决方案

方案1:升级Git并切换为OpenSSL后端(推荐)

  • 添加Git官方PPA源安装高版本Git:
    sudo add-apt-repository ppa:git-core/ppa
    sudo apt-get update && sudo apt-get install -y git
    
  • 重新编译Git替换GnuTLS为OpenSSL:
    sudo apt-get install -y build-essential fakeroot dpkg-dev libcurl4-openssl-dev
    sudo apt-get build-dep git
    mkdir ~/git-build && cd ~/git-build
    apt-get source git
    cd git-*/
    sed -i 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/' ./debian/control
    sudo dpkg-buildpackage -b -uc -us
    cd .. && sudo dpkg -i git_*.deb
    
    编译完成后重试repo sync即可正常同步。

方案2:修改Manifest替换HTTPS为HTTP(临时方案)

直接修改.repo/manifests目录下的对应配置XML文件,将所有https://git.yoctoproject.org前缀的链接替换为http://git.yoctoproject.org,跳过TLS校验。该方案仅适用于内部可信网络环境,存在代码被篡改的风险。

方案3:跨环境同步后迁移目录

利用已验证的Ubuntu20环境可正常同步的特点,先在Ubuntu20环境完成全量repo sync,再通过rsync -a命令将整个Yocto工作目录完整拷贝到Ubuntu14环境执行后续构建,拷贝时需保留文件权限与软链接属性。

补充说明

如果后续想要修复Ubuntu20环境的构建失败问题,通常是因为imx-linux-zeus分支对主机Python版本、依赖包版本的要求与Ubuntu20默认携带的版本不匹配,可通过将系统默认Python切换为2.7版本、安装对应旧版依赖包解决,优先级低于先完成当前Ubuntu14环境的同步操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:04