Yocto从Honister升级到Langdale后gitsm子模块LFS拉取失败求助
解决Yocto Langdale中gitsm/git拉取子模块LFS失败的问题
方法1:显式传递DNS解析配置到构建环境
Yocto构建环境可能未继承主机DNS设置,可直接在构建前添加DNS服务器环境变量:
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE DNS_SERVER" export DNS_SERVER="你的仓库服务器DNS IP" bitbake <你的配方名>
也可将配置写入local.conf,避免每次构建重复设置:
BB_ENV_EXTRAWHITE += "DNS_SERVER" export DNS_SERVER="你的仓库服务器DNS IP"
方法2:为git/LFS指定自定义SSH配置
创建Yocto专用SSH配置文件(如~/.ssh/yocto_ssh.conf),直接映射域名与服务器IP:
Host mydomain.com HostName 你的仓库服务器IP User git IdentityFile ~/.ssh/你的私钥路径
然后在构建环境中强制git使用该配置:
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE GIT_SSH_COMMAND" export GIT_SSH_COMMAND="ssh -F ~/.ssh/yocto_ssh.conf" bitbake <你的配方名>
同样可将上述环境变量配置写入local.conf持久生效。
方法3:修改子模块LFS配置,替换域名为IP
进入主仓库的子模块目录,编辑.lfsconfig文件,将域名替换为服务器IP:
[lfs] url = ssh://git@你的仓库服务器IP/仓库路径.git
将该修改提交到主仓库后,构建时LFS会直接通过IP访问仓库,绕过DNS解析问题。
方法4:在主机hosts文件中添加域名映射
直接在构建主机的/etc/hosts中添加一行:
你的仓库服务器IP mydomain.com
此方法让构建环境内的进程直接通过hosts文件解析域名,无需依赖环境变量传递DNS设置。
内容的提问来源于stack exchange,提问作者psv
相关产品推荐
相关产品推荐

