提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、初始化构建目录
- 二、imx-setup-release.sh脚本解析
- 三、编译
- 单独编译内核
- 四、烧录
- 总结
前言
本篇文章主要讲解如何在下载好源码之后进行编译和yocto的脚本解析
提示:以下是本篇文章正文内容,下面案例可供参考
一、初始化构建目录
Freescales提供了imx-setup-release.sh
脚本。该脚本用于初始化Yocto构建目录,该脚本语法如下:
DISTRO=<distro name> MACHINE=<machine name> source imx-setup-release.sh -b <build dir>
例如使用如下:
DISTRO=fsl-imx-fb MACHINE=imx6ull14x14evk source imx-setup-release.sh -b build
说明:
1)imx-setup-release.sh脚本运行后,会先让阅读一些EULA许可: 阅读完成后(也可以按"q"退出阅读,按”y“接受EULA),即完成了Yocto构建目录的初始化
2)该脚本运行结束后,会自动生成build文件夹
,并自动切换至build路劲,后续系统的构建过程就是在该build文件夹下完成的。同时,在build文件夹下,还会生成一个conf文件夹
: 如下:
其中下面两个文件中的内容其实就是来自前面的脚本imx-setup-release.sh
,具体参考如下
imx-setup-release.sh
bblayer.conf
:该配置文件定义了构建嵌入式Linux系统发行版所需要使用的metalayers
即使用那些source/meta-xxx
local.conf
:该配置文件定义了MACHINE和DISTRO的配置项
二、imx-setup-release.sh脚本解析
imx-setup-release.sh脚本运行时,需要输入3个主要参数:
DISTRO=fsl-imx-fb
MACHINE=imx6ull14x14evk
-b build
其中,-b build
生成了一个build文件夹,用于存放Yocto在构建系统过程中产生的临时文件、构建日志以及最终生成的安装文件等。
DISTRO
和MACHINE
这两个参数,找到对应的meta-xxx
的machine
和distro
文件夹 中相对应的配置文件(.conf),这些配置文件定义了所需构建的嵌入式Linux系统的功能和状态
例如:DISTRO= fsl-imx-fb
,则会找到sources/meta-imx/meta-sdk/conf/distro
路径下的fsl-imx-fb.conf
文件,在该文件中定义了一些变量,用于配置嵌入式Linux发行版
例如:MACHINE= imx6ull14x14evk
,则会找到sources/meta-imx/meta-bsp/conf/machine
路径下的imx6ull14x14evk.conf
文件,在该文件中定义了一些变量,用于配置嵌入式Linux运行的硬件平台
三、编译
Yocto项目中,采用的是BitBake
工具来构建嵌入式Linux系统的。通过repo获取了Yocto项目的同时,也一起获取BitBake工具,直接使用即可。使用BitBake的最主要目的是生成一些安装包、内核、SDK以及一个完整的嵌入式Linux发行版(包括:U-Boot、Kernel、Rootfs、DeviceTree)
运行imx-setup-release.sh
脚本后,会自动生成一个build文件夹,进入该文件夹,运行bitbake命令编译,如下:
bitbake imx-image-core
Freescale提供了几个target镜像文件,可供选择,需要注意的是,镜像文件支持的功能越多,(根)文件系统就越大:
实际上,通过运行bitbake imx-image-core
命令,bitbake会找到/sources/meta-imx/meta-sdk/recipes-fsl/images/fsl-image-core.bb
文件,依据里面的配置进行系统的构建
也就是说bitbake
会去解析xxx.bb
文件进行构建,这就和make
,makefile
一样
系统构建完成后,会在build/tmp/deploy/images/imx6ull14x14evk
路径下输出镜像文件
单独编译内核
bitbake -c compile -f linux-imx
在如下目录中就有编译后的镜像
build/tmp/work/imx6ull14x14evk-poky-linux-gnueabi/linux-imx/5.4-r0/build/arch/arm/boot
可以通过bitbake -c deploy -f linux-imx
命令将生成的zImage
文件等安装(“复制”)至安装路径下,如:build/tmp/deploy/images/imx6ull14x14evk
四、烧录
首先下载工具mfgtools
https://github.com/NXPmicro/mfgtools
要按照如下操作:
之后执行:
sudo cp uuu /bin/
这样就可以去烧录镜像了,如下:
主要是后面那个,参数如下:
总结
本文针对恩智浦的imx6ull进行编译和烧录进行,并且对里面的编译脚本进行了解释,下篇文章讲解yocto的工作流程和介绍build目录
喜欢就收藏+关注吧!!!