• 欢迎访问伊栖物联网社区,聚焦物联网技术和解决方案QQ群:735553309
  • ,从传感器到片上嵌入式系统,无线接入,边缘计算,在这里您可以讨论一切
  • 参加最新的物联网研讨会报名
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏伊栖Eccee

国内Yocto编译失败原因

片上系统 peyoot 4年前 (2021-03-17) 2665次浏览 0个评论

Yocto是一套用于定制Linux系统的开源软件,它提供模板、工具和方法帮你创建定制 Linux 系统。Yocto的编译机制依赖于各layer提供的recipes,也就是python编译方法。许多recipes都会带有自动版本确定功能,SRCREV = “${AUTOREV}”,这个定义会让脚本通过git ls-remote来搜索版本信息并比对,似乎是由于墙的原因,yocto在这个时候会报错,提示无法访问相应的repository。但如果你手动访问对应的repository并无障碍。

之所以许多官方源会用AUTOREV,是因为版本是不断更新的,这可以更方便让用户追随最新版本。但这个参数会导致脱网编译的方法无法使用,墙内使用不畅,所以建议首次编译Yocto项目时,还是先翻再编译。

也许有人会疑惑,我单独执行git命令没有问题啊?为什么用yocto编译时就不行了呢?其实github之类的境外网站的访问,在国内都是不稳定的,就好比第一次执行git clone一样,有时就卡住,但再执行一次就好了,这就是墙的威力,具体原理只有造墙的人才知道,目前只能从现象去判断,这个智能的墙并不会完全阻碍技术网站的访问,但其侦测鉴别过程确实对像git的访问造成障碍。而Yocto编译需要很多时间进行bb解析和对上游资源的查询,相关的python脚本碰上访问不畅时会当成目标不可达。

解决的办法只有这些:

  • pvpn或其它类似软件翻 (推荐)
  • 用境外git代理服务器
  • 在recipe文件中尽量不要用SRCREV = “${AUTOREV}”,而是固化为某一版本。

 

 

 


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:国内Yocto编译失败原因
喜欢 (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址