欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

yocto的fetch问题

程序员文章站 2022-04-25 20:06:17
...

yocto下载目录

download---------->放的压缩包(通过wget或者curl命令下载到)
downlaod/git2------->文件夹(通过git clone命令)
一般会根据相应的bb文件,优先下载压缩包,没有压缩包然后再通过git clone命令,根据bb指定的地址,下载文件放到download/git2目录下。

举个例子:
libdrm_%.bbappend文件中下载地址:

IMX_LIBDRM_SRC ?= “git://source.codeaurora.org/external/imx/libdrm-imx.git;protocol=https”
IMX_LIBDRM_BRANCH = “imx_4.9.51_imx8_beta2”

报错的主要内容

  1. wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/tom/build/download/ ‘http://downloads.yoctoproject.org/mirror/sources/git2_source.codeaurora.org.external.imx.libdrm-imx.git.tar.gz’ --progress=dot -v
    DEBUG: Fetcher accessed the network with the command LANG=C
  2. git -c core.fsyncobjectfiles=0 clone --bare --mirror https://source.codeaurora.org/external/imx/libdrm-imx.git /home/tom/build/download/source.codeaurora.org.external.imx.libdrm-imx.git --progress

yocto的fetch过程中,根据打印信息可以得到
1)分析提供下载源码的url,对应这一个可以下载同样压缩包的url
2) 尝试这下载压缩包;压缩包下载不下来,尝试这从提供的url下载源码。

解决办法:
1)换个网络环境,根据出错
命令下载源码;然后放到编译目录download/git2
git -c core.fsyncobjectfiles=0 clone --bare --mirror https://source.codeaurora.org/external/imx/libdrm-imx.git /home/tom/build/download/source.codeaurora.org.external.imx.libdrm-imx.git --progress
2)在download/git2目录下创建一个文件:source.codeaurora.org.external.imx.libdrm-imx.git.done,查看其他done文件,不是空,就是固定字符,根据自己环境,填充相应字符。

编译时候怎么切换到相应的分支

例如:
1)在pulseaudio_5.0.bb文件指定目录:

SRC_URI_pulseaudio_tizen = "git://review.tizen.org/platform/upstream/pulseaudio;branch=tizen_3.0_ivi"

指定的分支:tizen_3.0_ivi

2)下载目录download/git2中,git branch 显示当前指针指向master分支

 [email protected]:~/downloads/git2/shaasigit02.git.linux.external.audiomanager.pulseaudio.git$ git branch -a
   atlas7
   atlas7_CAF
  * master
  tizen_3.0_ivi

3)在编译目录pulseaudio/git中

[email protected]:~/build/tmp/work/pulseaudio/5.0-r0/git$ git branch -a
* (分离自 9120bf9)
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/atlas7
  remotes/origin/atlas7_CAF
  remotes/origin/master
  remotes/origin/tizen_3.0_ivi

./git/.git/packed-refs:
9120bf9099551ec194fe34c059140379c22de166 refs/remotes/origin/tizen_3.0_ivi

可以看到编译目录中当前分支指针值是9120bf9;在./git/.git/packed-refs,得到相应的对应分支是 tizen_3.0_ivi。

  1. 这个过程是yocto的unpack函数中做的

log文件build/tmp/work/pulseaudio/5.0-r0/temp/log.do_unpack.4671

git -c core.fsyncobjectfiles=0 checkout 9120bf9099551ec194fe34c059140379c22de166

切换分支是在unpack函数完成的。