yocto的fetch问题
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”
报错的主要内容
- 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 - 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。
- 这个过程是yocto的unpack函数中做的
log文件build/tmp/work/pulseaudio/5.0-r0/temp/log.do_unpack.4671
git -c core.fsyncobjectfiles=0 checkout 9120bf9099551ec194fe34c059140379c22de166
切换分支是在unpack函数完成的。
下一篇: Spring boot Aop 日志注解