当前位置: 首页 > news >正文

yocto编译烧录和脚本解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、初始化构建目录
  • 二、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-fbMACHINE=imx6ull14x14evk-b build

其中,-b build生成了一个build文件夹,用于存放Yocto在构建系统过程中产生的临时文件、构建日志以及最终生成的安装文件等。

DISTROMACHINE这两个参数,找到对应的meta-xxxmachinedistro文件夹 中相对应的配置文件(.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文件进行构建,这就和makemakefile一样

系统构建完成后,会在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目录

喜欢就收藏+关注吧!!!

http://www.lryc.cn/news/38635.html

相关文章:

  • Proteus 8.15安装包安装教程
  • Spring——AOP工作流程
  • c++11多线程之condition_variable、wait()、notify_one()、notify_all()的使用。
  • skywalking扩展实现 —— 监控数据的动态上报
  • 【GoF 23】23种设计模式与OOP七大原则概述
  • Java 日期时间
  • Face Forgery Suvery
  • 案例学习--016 消息队列作用和意义
  • 【MySQL】MySQL的锁机制
  • HTML 背景
  • Lombok
  • Koa源码学习
  • 一种延迟加载自定义元素的方法
  • Pytho经典面试题荟萃:第一期
  • 01背包问题(大彻大悟版)
  • 【麒麟服务器操作系统忘记开机密码怎么办?---银河麒麟服务器操作系统更改用户密码】
  • 华为OD机试(20222023)考点分类
  • 初级篇 3 - HTML 或 CSS 文件中不懂的标签属性详解
  • 【C语言】每日刷题 —— 牛客语法篇(4)
  • HashMap ConcurrentHashMap介绍
  • C++语法规则3(C++面向对象)
  • Python tkinter 如何实现网站下载工具?将所有数据一键获取
  • 第六章:C语言数据结构与算法初阶之栈
  • Android学习之WebView
  • 3/11 考试总结
  • Leetcode 141.环形链表 142环形链表II
  • hibernate学习(五)
  • STM32CubeIDE 快速开发入门指南
  • 华为OD机试 - 火星文计算(C 语言解题)【独家】
  • 超超超超保姆式详解——字符函数和字符串函数(学不会打我)上