使用前需要安装google的repo工具。
$ mkdir ~/bin $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ PATH=${PATH}:~/bin
创建工作文件夹并同步代码,这里使用yocto3.0也就是zeus这个brance。
$ mkdir fsl-community-bsp $ cd fsl-community-bsp $ repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b zeus $ repo sync
进入刚创建的文件夹fsl-community-bsp,可以发现sources目录,这个目录顾名思义是存放资源的地方,所有的layer相关,recipes都在其中,同时这个目录下的文件内容不会随着编译行为而产生变化,也就是说,编译所产生的一切中间文件和最终的镜像等都存放在另一个目录下。执行setup-environment脚本,之前要设置MACHINE和DISTRO环境变量,和工作目录,这个目录就是存放编译相关的文件的。(这里使用默认名称build,自己随意更改)
$ cd fsl-community-bsp
$ MACHINE=imx6dl-riotboard DISTRO=fslc-framebuffer source setup-environment build
也可以执行直接执行以下命令来获得可选的参数和帮助。
$ source setup-environment
(注意,如果关闭了终端后再使用bitbake的话,需要执行如下
$ source setup-environment build
yocto可以编译出很多镜像文件和package,可以使用以下命令列出(数量很多,可以使用 | grep *** 来定位)
$ bitbake -s
这里首先介绍以下编译kernel镜像的过程,执行以下,第一次需要很久的时间,因为需要下载各种工具的源码进行编译(这还是最简单的编译,后期完整的镜像一般十几个小时都有可能,而且不会FQ大概率不行)
$ cd build
$ bitbake linux-flsc
编译完成后在build/tmp/deploy/images/imx6dl-riotboard/下后产生对应的kernel镜像文件zImage--5.1.15+git0+cd1d083333-r0-imx6dl-riotboard-20200122135708.bin和
dtb imx6dl-riotboard--5.1.15+git0+cd1d083333-r0-imx6dl-riotboard-20200122135708.dtb