yocto从概念安装到应用
一、yocto的功能及组成
yocto是一个开源项目,该项目旨在帮助我们自定义linux系统。它只是一个构建环境,可以通过yocto编译出image,image就是你要烧录到板卡硬件的可执行程序;也可以不用yocto,就用Makefile构建也是一样的,只是选择的构建方法不同而已,最终目的都是得到image。
使用该项目的原因(优点):该项目提供模板、工具和方法帮助我们创建定制的linux系统的嵌入式产品,而无需关心硬件体系,适合嵌入式开发人员使用,极大地简化了开发的过程,因为不用从头裁剪一个包含很多并不需要的完整的linux发布版本。
二、yocto的安装与使用过程
本人所安装的系统为centos,编译所需要的空间至少120G,需要在非root用户执行以下指令(注意不要用root用户去搭建yocto环境)需要VPN访问外网
以在centos系统下,将yocto安装到/data/yocto文件下为例,以下是安装和编译步骤:
①安装所需要的功能包(不同linux系统所需的依赖包不同,以centos为例)
$ sudo yum -y groupinstall "development tools"
$ sudo yum -y install tetex gawk sqlite-devel vim-common redhat-lsb xz \
m4 make wget curl ftp tar bzip2 gzip python-devel \
unzip perl texinfo texi2html diffstat openjade zlib-devel \
docbook-style-dsssl sed docbook-style-xsl docbook-dtds \
docbook-utils bc glibc-devel pcre pcre-devel \
groff linuxdoc-tools patch cmake \
tcl-devel gettext ncurses apr \
SDL-devel mesa-libGL-devel mesa-libGLU-devel gnome-doc-utils \
autoconf automake libtool xterm
②创建文件(不同的工程需要不同的文件夹,此处是imx8QMCP工程)
```cpp
[aertp@localhost yocto]$ cd /data/yocto
[aertp@localhost yocto]$ mkdir bin
[aertp@localhost yocto]$ mkdir imx8QMCPU
[aertp@localhost yocto]$ ls
③获取repo工具包(工具为git的封装)
```cpp
[aertp@localhost yocto]$ cd bin
[aertp@localhost bin]$ curl https://storage.googleapis.com/git-repo-downloads/repo > /data/yocto/bin/repo
④设置repo的环境变量,设置git命令用以获取的邮箱(需要设置GitHub有效的用户名以及对应的邮箱)
[aertp@localhost bin]$ chmod a+x /data/yocto/bin/repo
[aertp@localhost bin]$ export PATH=/data/yocto/bin:$PATH
[aertp@localhost bin]$ git config --global user.name "yourname"
[aertp@localhost bin]$ git config --global user.email "yourmail"
[aertp@localhost bin]$ git config --list
⑤获取yocto库的清单文件,并同步到本地仓库(本例所选的yocto版本为:L4.14.98-2.0.0)
[aertp@localhost bin]$ cd ..
[aertp@localhost yocto]$ cd imx8QMCPU/
[aertp@localhost imx8QMCPU]$ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.24-2.1.0.xml
[aertp@localhost imx8QMCPU]$ repo sync
//同步命令需要在网速极好的环境下进行
⑥开始编译自己所对应硬件芯片对应的image (按照自己的需求,设置所需要的选项)
[aertp@localhost imx8QMCPU]$ DISTRO=<distro name> MACHINE=<machine name> source imx-setup-release.sh -b <build dir>
//此过程产生配置文件
//imx-setup-release.sh是启动脚本,在当前目录下
//我的选择是fsl-imx-xwayland,imx8qmmek
//因此我的命令如下:
//[aertp@localhost imx8QM