yocto编译烧录和脚本解析

news2024/10/5 13:08:52

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

文章目录

  • 前言
  • 一、初始化构建目录
  • 二、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在构建系统过程中产生的临时文件、构建日志以及最终生成的安装文件等。

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.coloradmin.cn/o/404250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剑指 Offer II 027. 回文链表

题目链接 剑指 Offer II 027. 回文链表 easy 题目描述 给定一个链表的 头节点 head&#xff0c;请判断其是否为回文链表。 如果一个链表是回文&#xff0c;那么链表节点序列从前往后看和从后往前看是相同的。 示例 1&#xff1a; 输入: head [1,2,3,3,2,1] 输出: true 示例…

多目标遗传算法NSGA-II原理详解及算法实现

在接触学习多目标优化的问题上&#xff0c;经常会被提及到多目标遗传算法NSGA-II&#xff0c;网上也看到了很多人对该算法的总结&#xff0c;但真正讲解明白的以及配套用算法实现的文章很少&#xff0c;这里也对该算法进行一次详解与总结。会有侧重点的阐述&#xff0c;不会针对…

理解并解决【跨域】问题--通过代理或【CROS】

文章目录一.理解跨域问题引起跨域问题的原因浏览器的同源策略二.跨域问题的解决办法解决方法1-------代理&#xff08;前端配置&#xff09;解决方法2-----开启跨域资源共享CORS&#xff08;后端&#xff09;知识小贴士一.理解跨域问题 主要出现在前后端分离项目 引起跨域问题…

磨金石教育摄影技能干货分享|春之旅拍

春天来一次短暂的旅行&#xff0c;你会选择哪里呢&#xff1f;春天的照片又该如何拍呢&#xff1f;看看下面的照片&#xff0c;或许能给你答案。照片的构图很巧妙&#xff0c;画面被分成两部分&#xff0c;一半湖泊&#xff0c;一半绿色树林。分开这些的是一条斜向的公路&#…

合并两个链表(自定义位置合并与有序合并)LeetCode--OJ题详解

图片: csdn 自定义位置合并 问题&#xff1a; 给两个链表 list1 和 list2 &#xff0c;它们包含的元素分别为 n 个和 m 个。 请你将 list1 中 下标从 a 到 b 的全部节点都删除&#xff0c;并将list2 接在被删除节点 的位置。 比如&#xff1a; 输入&#xff1a;list1 [1…

【STL】list剖析及模拟实现

✍作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;C 初识list 1. list基本概况 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立…

前端前沿web 3d可视化技术 ThreeJS学习全记录

前端前沿web 3d可视化技术 随着浏览器性能和网络带宽的提升 使得3D技术不再是桌面的专利 打破传统平面展示模式 前端方向主要流向的3D图形库包括Three.js和WebGL WebGL灵活高性能&#xff0c;但代码量大&#xff0c;难度大&#xff0c;需要掌握很多底层知识和数学知识 Threej…

卷积神经网络模型之——LeNet

目录LeNet模型参数介绍该网络特点关于C3与S2之间的连接关于最后的输出层子采样参考LeNet LeNet是一个用来识别手写数字的最经典的卷积神经网络&#xff0c;是Yann LeCun在1998年设计并提出的。Lenet的网络结构规模较小&#xff0c;但包含了卷积层、池化层、全连接层&#xff0…

Mr. Cappuccino的第49杯咖啡——冒泡APP(升级版)之基于Docker部署Gitlab

冒泡APP&#xff08;升级版&#xff09;之基于Docker部署Gitlab基于Docker安装Gitlab登录Gitlab创建Git项目上传代码使用Git命令切换Git地址使用IDE更换Git地址基于Docker安装Gitlab 查看beginor/gitlab-ce镜像版本 下载指定版本的镜像 docker pull beginor/gitlab-ce:11.3.0…

c# 源生成器

本文概述了 .NET Compiler Platform&#xff08;“Roslyn”&#xff09;SDK 附带的源生成器。 通过源生成器&#xff0c;C# 开发人员可以在编译用户代码时检查用户代码。 生成器可以动态创建新的 C# 源文件&#xff0c;这些文件将添加到用户的编译中。 这样&#xff0c;代码可以…

线程(一)

线程 1. 线程 定义&#xff1a;线程是进程的组成部分&#xff0c;不同的线程执行不同的任务&#xff0c;不同的功能模块&#xff0c;同时线程使用的资源师由进程管理&#xff0c;主要分配CPU和内存。 ​ 在进程中&#xff0c;线程执行的方式是抢占式执行操作&#xff0c;需要考…

33--Vue-前端开发-使用Vue脚手架快速搭建项目

一、vue脚手架搭建项目 node的安装: 官方下载,一路下一步 node命令类似于python npm命令类似于pip 使用npm安装第三方模块,速度慢一些,需换成淘宝镜像 以后用cmpm代替npm的使用 npm install -g cnpm --registry=https://registry.npm.taobao.org安装脚手架: cnpm inst…

汉诺塔--课后程序(Python程序开发案例教程-黑马程序员编著-第6章-课后作业)

实例3&#xff1a;汉诺塔 汉诺塔是一个可以使用递归解决的经典问题&#xff0c;它源于印度一个古老传说&#xff1a;大梵天创造世界的时候做了三根金刚石柱子&#xff0c;其中一根柱子从下往上按照从大到小的顺序摞着64片黄金圆盘&#xff0c;大梵天命令婆罗门把圆盘从下面开始…

C++回顾(二十)—— vector容器 和 deque容器

20.1 vector容器 20.1.1 vector容器简介 vector是将元素置于一个动态数组中加以管理的容器。vector可以随机存取元素&#xff08;支持索引值直接存取&#xff0c; 用[]操作符或at()方法&#xff09;。vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比…

es6的class(类)

目录 一、class&#xff08;类&#xff09;的语法 二、代码 三、效果 一、class&#xff08;类&#xff09;的语法 ES6 提供了更接近传统语言的写法&#xff0c;引入了 Class&#xff08;类&#xff09;这个概念&#xff0c;作为对象的模板。通过class关键字&#xff0c;可以…

Java基础(二):原码、反码、补码及进制之间的运算

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 目录一、不同进制的表示方式二、二进制三、进制之间的转换四、byte的取值范围一、不同进制的表示方式 所有数字在计…

Leetcode 141.环形链表 142环形链表II

141环形链表 文章目录快慢指针快慢指针 代码思路&#xff1a; slow 和fast 指向 head slow走一步&#xff0c;fast走两步 没有环&#xff1a; fast每次走2步 &#xff0c;如果 fast 最终遇到NULL(链表中的元素是 偶数)或者fast->next(链表中的元素是 奇数)遇到NULL&#xf…

【ArcGIS Pro二次开发】(12):txt文件和Excel文件的读写

在Arcgis Pro的工作流中&#xff0c;数据的输入是很常见的。这里以TXT和Excel两种文件为例&#xff0c;在SDK中实现数据的读取和写入。 一、txt文件的读写 txt文件的读写相对简单&#xff0c;可以用Arcgis Pro自带的OpenItemDialog打开txt文件&#xff0c;并直接读取&#xff…

浙江大学海宁IMBA提面经验分享

先来介绍一下我的个人情况&#xff1a;本人毕业于浙江一所普通的本科院校&#xff0c;毕业已经6年了&#xff0c;在一家互联网公司担任市场部经理。其实在参加浙大IMBA项目提面之前&#xff0c;我也参加了浙大MBA项目的提面&#xff0c;可惜只拿到了良好的结果&#xff0c;所以…

力扣-每天的领导和合伙人

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1693. 每天的领导和合伙人二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.…