获取Yocto
设置Git用户名和密码
Yocto项目采用repo管理各个git库的方式进行管理。因此,除了使用repo工具外,还需要使用到Git。使用Git前,需要设置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工作路径/home/jason/Linux/Yocto/fsl-release-yocto,然后使用如下repo命令,获取Yocto项目(克隆NXP官方fsl-arm-yocto-bsp.git项目的imx-linux-zeus分支):
./repo init -u imx-manifest - i.MX Release Manifest -b imx-linux-zeus -m imx-5.4.47-2.2.0.xml
注意:由于国内的原因,直接运行上面repo init命令时,会出现fatal: Cannot get /git-repo/clone.bundle的错误,这是因为repo运行时,会去google服务器请求最新版本,解决方式是在本地环境变量中指定repo服务器地址,可以使用清华的镜像源进行更新,即将如下内容复制到你的~/.bashrc里:
export REPO_URL="https://mirrors.tuna./git/git-repo/"
并重启Ubuntu即可。
输入上述命令./repo init -u imx-manifest - i.MX Release Manifest -b imx-linux-zeus -m imx-5.4.47-2.2.0.xml后,会提示/usr/bin/env: ‘python’: No such file or directory,这是因为Ubuntu20.04中已经移除了python2的原因,直接使用的是Python3。因此,使用命令: sudo ln -s /usr/bin/python3 /usr/bin/python,将python连接为Python3即可。
再次输入./repo init -u imx-manifest - i.MX Release Manifest -b imx-linux-zeus -m imx-5.4.47-2.2.0.xml,即开始克隆imx-linux-zeus分支:
克隆完成后,输入几次y确认一些信息即可。通过ls -a命令,可以看到在fsl-release-yocto路径下有.repo隐藏目录,进入.repo:
可以看到,在.repo目录下的manifests中的文件,定义了imx-linux-zeus分支下使用到的哪些Git库。(体现了repo的功能)。最后在fsl-release-yocto路径下,运行./repo sync命令,获取Yocto项目(repo将会从网上下载很多东西):
(需要注意的是,在./repo sync获取Yocto源码的过程中,由于网速等原因,会出现下载失败或下载“卡死”的情况,此时,可按Ctrl+c终止,再次输入./repo sync命令,即可继续从断点处下载)。
PS:对于教程中使用到的Yocto项目源码,笔者已经将其在网盘中进行分享:
链接:百度网盘 请输入提取码 提取码:vkyr
获取Yocto项目源码成功后,会在Yocto工作路径/home/jason/Linux/Yocto/fsl-release-yocto路径下得到imx-setup-release.sh、setup-environment、sources等文件。其中:
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官方参考板的基础支持软件。
meta-imx:
meta-bsp - meta-fsl-arm, poky, meta-openembedded层的一些更新软件。
meta-sdk - meta-freescale-distros以及发行版的一些更新软件。
meta-ml:机器学习相关的软件。
meta-freescalse-distro:官方提供的一些嵌入式Linux发行版。
meta-nxp-demo-experience:NXP官方提供的一些demo。
meta-python2: python2相关的软件。
meta-rust:rust相关的软件。
meta-openembedded:OE内核的一些集合,定义了构建Yocto使用到的一些工具软件。
meta-qt5:QT5相关的软件。
meta-timesys:提供Vigiles工具来查看和通知BSP漏洞。
poky:Yocto的基础发行版,在此版本基础上进行构建自己的嵌入式Linux发行版。
需要注意的是,对于i.MX板卡的配置,主要是在meta-imx以及meta-freescale中定义的,包括Linux内核、U-Boot以及一些板级硬件配置信息。