yocto源码下载和目录分析


前言

本文记录下载yocto的源码


提示:以下是本篇文章正文内容,下面案例可供参考

一、搭建环境

电脑硬件要求

该教程中采用的Ubuntu系统,其具体配置要求如下:

Ubuntu 18.04 (LTS)

120G以上的硬盘空间(教程中实际采用200G,如果需要编译机器学习相关的组件,至少使用250GB以上)
内存越大越好
CPU核心数越多越好

安装依赖

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm 

repo

要想使用Yocto构建嵌入式Linux系统发行版,需要先将Yocto相关的工具及源码下载至Ubuntu中,而Yocto工具及源码的获取,是通过repo这个工具软件获取的 。

什么是repo?

Repo是一个构建在Git之上的工具,能够更便捷的管理工程项目中的代码存储仓库。简单来说,Git管理单独的模块,而repo管理所有的Git库,将多个Git库组合在一起,形成一个完整的大版本

Android源码目录结构复杂,分为很多很多的功能模块,如果将Android源码Init成一个Git库,那么对于某一模块的开发人员Clone代码时,需要将所有的Android源码全部Clone下来,但实际上他只需要关注自己所负责的模块源码,其他模块的源码该开发人员并不关心,也不需要进行维护,不利于模块化设计。因此,对于庞大的项目,将其Init为一个Git库是不合理的,也不符合解耦的需求。 因此,对于庞大的项目,可以将其分为多个模块,每个模块单独用Git进行管理。但是,存在一个问题,需要一个工具对项目最终代码的进行管理,即,对该项目想各个模块的Git进行管理。repo就是实现这样一个功能。当完成repo init后,会在目录下发现一个.repo隐藏目录,进到.repo/manifest/中,打开default.xml,里面记录着一个版本中需要哪些库的文件。实际上,在manifest中记录了需要用到哪些git库,对于一个发型版本(Android版本)对应着repo中的一个分支,其中的default.xml就记录着这个版本所需要的库,repo工具再根据这个文件去把取各个库的对应分支并最终组合起来

获取repo

创建一个文件夹yocto来存放后面下载的repo和yocto的源码,再执行以下命令获取repo

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod a+x repo

设置git

$ git config --global user.name "Your Name" // 配置git用户名:“Your Name”
$ git config --global user.email "Your Email" // 配置git用户邮箱:“Your Email”
$ git config --list //  查看git配置信息 

二、获取yocto源码

进入前面创建的yocto目录执行以下语句:

./repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.47-2.2.0.xml 

可能会出现以下错误:
1.网络问题无法获取最新版

由于国内的原因,直接运行上面repo init命令时,会出现fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle的错误,这是因为repo运行时,会去google服务器请求最新版本,解决方式是在本地环境变量中指定repo服务器地址,可以使用清华的镜像源进行更新,即将如下内容复制到你的~/.bashrc里:

export REPO_URL="https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/" 

2.python问题

会提示/usr/bin/env: ‘python’: No such file or directory,这是因为Ubuntu20.04中已经移除了python2的原因,直接使用的是Python3。因此,使用命令:

sudo ln -s /usr/bin/python3 /usr/bin/python

执行成功之后会在该目录下看到隐藏文件.repo目录
在这里插入图片描述
.repo目录下的manifests中的文件,定义了imx-linux-zeus分支下使用到的哪些Git库

yocto目录下执行运行./repo sync命令,获取Yocto项目
获取速度和网速有关,如果有梯子的话最好,如果没有的话,因为网络问题直接可按Ctrl+c终止,再次输入./repo sync命令,即可继续从断点处下载
在这里插入图片描述

三、yocto源码目录讲解

imx-setup-release.sh:该脚本用于初始化Yocto构建嵌入式Linux系统工作环境。

setup-environment:该脚本根据运行imx-setup-release.sh脚本时输入的参数,设置Yocto工作环境。

sources文件夹:在该文件夹下存放了很多文件、源码以及编译工具,用于构建嵌入式Linux系统。

base:该文件夹下主要存放了bblayers.conf和setup-environment,构建Yocto工作环境时用到。

meta-clang:C语言家族前端和LLVM编译器后端。

meta-freescalse-3rdparty:第三方板卡支持软件。

meta-browser:提供了几种浏览器,如gnome、mozilla。

meta-freescale:提供了一些基于Freescale ARM官方参考板的基础支持软件。

poky:Yocto的基础发行版,在此版本基础上进行构建自己的嵌入式Linux发行版
还有很多目录没有分析,感兴趣的伙伴可以自行探讨。


总结

本文主要是介绍了yocto源码获取的环境搭建和如何获取源码即源码目录,下篇文章介绍yocto是如何编译和工作的流程。

yocto源码和编译过程需要下载的东西
链接:https://pan.baidu.com/s/1ZjacarkPpEIOTbiO_GQsCA
提取码:shw1

喜欢就收藏加关注,和博主一起学习吧!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道起个啥名“”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值