Repo 管理工程
关键词: yocto repo imx bsp git
repo是基于git的仓库管理工具,是一个python脚本程序。
repo不单单是用于Andoid,只要是多个git工程都能使用。
yocto工程中经常会涉及到多个git工程,
这里演示如何使用repo来管理yocto中的多个BSP。
主要内容:
- 使用repo来管理yocto的多个BSP
文档参考:
最新文档 https://taotaodiy-linux.readthedocs.io/en/latest/env/repo.html
安装 repo
#install repo. This only needs to be done once.
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
创建manifest仓库
我们创建一个仓库manifest,在仓库下面添加default.xml文件,
git仓库建立参考https://taotaodiy-linux.readthedocs.io/en/latest/env/git.html
文件包含如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<default sync-j="2"/>
<remote fetch="git://git.yoctoproject.org" name="yocto"/>
<remote fetch="git://github.com/Freescale" name="community"/>
<remote fetch="git://github.com/openembedded" name="oe"/>
<remote fetch="git://github.com/OSSystems" name="OSSystems"/>
<remote fetch="git://github.com/meta-qt5" name="QT5"/>
<remote fetch="https://source.codeaurora.org/external/imx" name="CAF"/>
<project remote="yocto" revision="c9bd4984f8f471ca2c43052714f4413ba99cf171" name="poky" path="sources/poky"/>
<project remote="yocto" revision="27ca94f8a4336790ba117b4298566f6820e7e74c" name="meta-freescale" path="sources/meta-freescale"/>
<project remote="oe" revision="8760facba1bceb299b3613b8955621ddaa3d4c3f" name="meta-openembedded" path="sources/meta-openembedded"/>
<project remote="community" revision="70535e13dd2aabbad53243518f4cc5064d284592" name="fsl-community-bsp-base" path="sources/base">
<linkfile dest="README" src="README"/>
<linkfile dest="setup-environment" src="setup-environment"/>
</project>
<project remote="community" revision="82037216280a39957fb4272581637abec734ad50" name="meta-freescale-3rdparty" path="sources/meta-freescale-3rdparty"/>
<project remote="community" revision="f7e2216e93aff14ac32728a13637a48df436b7f4" name="meta-freescale-distro" path="sources/meta-freescale-distro"/>
<project remote="OSSystems" revision="75640e14e325479c076b6272b646be7a239c18aa" name="meta-browser" path="sources/meta-browser" />
<project remote="QT5" revision="d4e7f73d04e8448d326b6f89908701e304e37d65" name="meta-qt5" path="sources/meta-qt5" />
<project remote="CAF" revision="8eeb420fad668b733ab95b460895e1c337c66b25" name="meta-fsl-bsp-release" path="sources/meta-fsl-bsp-release" >
<linkfile src="imx/tools/fsl-setup-release.sh" dest="fsl-setup-release.sh"/>
<linkfile src="imx/README" dest="README-IMXBSP"/>
</project>
</manifest>
当然呢,你可以把里面的内容改成你自己的git仓库。
<remote fetch="git://git.yoctoproject.org" name="yocto"/>
就相当于给仓库地址 git://git.yoctoproject.org 一个别名 yocto 。
<project remote="yocto" revision="27ca94f8a4336790ba117b4298566f6820e7e74c" name="meta-freescale" path="sources/meta-freescale"/>
这句就是告诉我们repo,我们现在有一个git项目,地址在 git://git.yoctoproject.org/meta-freescale.git ,
SHA值为 27ca94f8a4336790ba117b4298566f6820e7e74c ,现在请帮我们克隆到 sources/meta-freescale 目录下。
manifest文件element请参考 https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md
创建本地repo
repo init -u + 上面的manifest仓库
repo init -u http://gitlab.ebf.local/qt_app/yocto_qt/ebf-yocto-6ul/manifest.git
首先会创建 .repo 这个目录, 然后 Downloading Repo source from https://gerrit.googlesource.com/git-repo
随后 repo 就会去我们创建的仓库将default.xml获取
同步仓库
repo sync
最终repo按照我们上面写的default.xml克隆指定仓库到指定位置。
default.xml里面提到的BSP就是imx6u的yocto工程用到的BSP。
本文档详细介绍了如何使用repo这个基于git的仓库管理工具来管理yocto工程中的多个BSP。从安装repo,创建manifest仓库,创建本地repo,到同步仓库的步骤都有详细说明,特别是如何配置default.xml文件来指定git仓库地址和克隆路径。通过repo,可以方便地管理yocto中的复杂依赖关系。

689

被折叠的 条评论
为什么被折叠?



