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

yocto基础 -- bb 文件字段解析

Yocto .bb 文件字段解析

本文详细讲解了 Yocto .bb 文件中各字段的作用和用法,包括 SECTIONSRC_URISUMMARY 等,旨在帮助开发者更好地理解和使用 Yocto 构建系统。

目录

  • 1. SECTION 字段
    • 1.1 SECTION 的作用
    • 1.2 SECTION 的用法
    • 1.3 如何使用 SECTION 的分类信息
    • 1.4 使用示例
    • 1.5 注意事项
  • 2. SRC_URI 字段
    • 2.1 SRC_URI 的作用
    • 2.2 下载多个文件的情况
    • 2.3 校验和的使用

1. SECTION 字段

1.1 SECTION 的作用

在 Yocto 的 .bb 文件中,SECTION 字段用于描述软件包的类别或分组,它为软件包指定一个逻辑上的分类,以帮助用户或开发者更好地理解和管理软件包。

作用概述
  1. 分类管理

    • SECTION 提供了一种方法来对包进行逻辑分类,例如 kernel/userlandutilsnetworking 等。
  2. 易于查找和组织

    • 分类有助于在显示、搜索或文档化时更直观和有条理。
  3. 增加可读性

    • 使开发者或用户能够快速理解包的用途和领域,便于文档化和沟通。

1.2 SECTION 的用法

  • SECTION 字段接受一个字符串值,描述该软件包所属的类别。
  • 这个字段没有严格的标准,可以根据项目或公司的实际需求自定义。

示例:

SECTION = "kernel/userland"

在这个例子中,SECTION 表示软件包属于内核相关的用户空间工具。

1.3 如何使用 SECTION 的分类信息

  1. 在图形化界面中展示

    • 一些 Yocto 配套的包管理工具、图形界面或 web 接口会展示 SECTION 的分类,方便开发者和用户快速查找软件包。
  2. 生成分类的包列表

    • 在生成软件包索引时,可以按 SECTION 分类整理这些包,便于管理。
  3. 为文档和管理提供便利

    • 可以使用 SECTION 字段生成文档或报告,以了解项目中各种软件包的用途。
  4. 通过 BitBake 查询分类

    • 使用 bitbake -s 命令可以查看软件包的基本信息,包括 SECTION 字段。

1.4 使用示例

以下是两个软件包的示例:

SUMMARY = "Network packet analysis tool"
DESCRIPTION = "Tool for capturing and analyzing network packets"
SECTION = "networking"
LICENSE = "GPLv2"
SRC_URI = "https://example.com/network-analyzer.tar.gz"
SUMMARY = "Audio processing library"
DESCRIPTION = "Library for audio signal processing"
SECTION = "multimedia"
LICENSE = "LGPLv2.1"
SRC_URI = "https://example.com/audio-lib.tar.gz"

通过设置这些 SECTION 值,软件包可以被划分到不同的类别,如网络工具 (networking) 和多媒体库 (multimedia)。

1.5 注意事项

  • 自定义分类SECTION 的值可以根据项目或公司的需求自定义,建议使用简洁、有意义的描述。
  • 不影响构建过程SECTION 仅作为文档信息和分类用途,不会影响软件包的实际构建或打包过程。

2. SRC_URI 字段

2.1 SRC_URI 的作用

SRC_URI 字段用于定义构建软件包所需的源代码和资源的位置,可以包括源码包、补丁和配置文件等。

例如:

SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \file://kdump \file://kdump.conf \file://kdump.service \file://0001-powerpc-change-the-memory-size-limit.patch"

2.2 下载多个文件的情况

SRC_URI 中可以定义多个需要下载的文件,每个文件都需要校验和来验证完整性。

示例:

SRC_URI = "https://example.com/file1.tar.gz \https://example.com/file2.tar.gz \file://local_patch.patch"SRC_URI[file1.tar.gz.sha256sum] = "d3b07384d113edec49eaa6238ad5ff00"
SRC_URI[file2.tar.gz.sha256sum] = "8ad8757baa8564dc136c1e07507f4a98"
  • SRC_URI[file1.tar.gz.sha256sum]SRC_URI[file2.tar.gz.sha256sum] 分别为 file1.tar.gzfile2.tar.gz 指定了校验和。
  • 这种方式确保每个远程下载的文件都能被验证其完整性,防止文件在下载过程中被篡改。

2.3 校验和的使用

SRC_URI[sha256sum] 是用来校验源代码包的完整性,确保下载的文件未被篡改。

在以下示例中:

SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz"
SRC_URI[sha256sum] = "b3d4cfd2ba10d68ce341ea3b8ca414d00a0b6183b95686172154f94bce834f94"

SRC_URI[sha256sum] 的值用于校验 kexec-tools-${PV}.tar.gz 文件的完整性。如果下载的文件的校验和与这里提供的值不匹配,构建过程会中止并报告错误。

对于多个远程文件,每个文件需要单独指定校验和,以确保安全性和可靠性。Yocto 支持多种校验和方式,如 md5sumsha256sum,常见的做法是使用更安全的 sha256sum 来避免碰撞风险。

具体来说,校验和的使用步骤如下:

  1. 指定下载文件的校验和类型和值:对于每个需要校验的文件,可以通过类似 SRC_URI[<filename>.sha256sum] 的语法为其指定校验和。
  2. 校验和验证过程:在 BitBake 构建时,Yocto 会自动计算下载文件的校验和,并与 .bb 文件中提供的校验和进行比对。
  3. 校验失败的处理:如果校验和不匹配,构建过程会立即停止,并报出错误信息。这确保了构建环境的安全性,防止下载的文件被篡改或损坏。

通过合理地使用校验和,可以有效保障构建过程的稳定性和安全性,防止由于恶意篡改或传输错误导致的构建失败或潜在漏洞。

相关文章:

yocto基础 -- bb 文件字段解析

Yocto .bb 文件字段解析 本文详细讲解了 Yocto .bb 文件中各字段的作用和用法&#xff0c;包括 SECTION、SRC_URI、SUMMARY 等&#xff0c;旨在帮助开发者更好地理解和使用 Yocto 构建系统。 目录 1. SECTION 字段 1.1 SECTION 的作用1.2 SECTION 的用法1.3 如何使用 SECTIO…...

Android开发相关的重要网站

本文整理Android相关的重要网站&#xff0c;欢迎大家分享别的网站。 AOSP 官网谷歌官方Android源码搜索Android Issue Tracker 如果在开发过程中遇到与 Android 相关的问题或发现了系统的 bug&#xff0c;可以在这个网站上提交反馈&#xff0c;也可以查询是否存在类似的问题。…...

MySQL 中utfmb3和utfmb4字符集区别

目录 一&#xff1a;utf-8二&#xff1a;utf8mb3三&#xff1a;uft8mb4 一&#xff1a;utf-8 unicode 定义了一套规范来存储各种字符&#xff0c;但是它没有定义这些字符在计算机中应该如何存储。所以基于这种原因&#xff0c;后续基于 Unicode 字符集发展出了多种字符的存储规…...

【C语言】文件操作(1)(文件打开关闭和顺序读写函数的万字笔记)

文章目录 一、什么是文件1.程序文件2.数据文件 二、数据文件1.文件名2.数据文件的分类文本文件二进制文件 三、文件的打开和关闭1.流和标准流流标准流 2.文件指针3.文件的打开和关闭文件的打开文件的关闭 四、文件的顺序读写1.fgetc函数2.fputc函数3.fgets函数4.fputs函数5.fsc…...

今日总结10.18

Exception 和Error 有什么区别 Exception和Error都是Java等编程语言中异常处理机制的重要组成部分&#xff0c;它们都继承自Throwable类。以下是两者的主要区别&#xff1a; 定义与性质 Error&#xff1a; 1.表示严重的系统级错误&#xff0c;如内存溢出&#xff08;OutOfM…...

React Agent 自定义实现

目录 背景 langchin 中的 agent langchin 中 agent 的问题 langchain 的 agent 案例 自定义 React Agent 大模型 工具定义 问题设定 问题改写&#xff0c;挖掘潜在意图 React Prompt 下一步规划 问题总结 代码 背景 之前使用过 langchian 中的 agent 去实现过一些…...

RabbitMQ 入门(六)SpringAMQP五种消息类型(Direct Exchange)

一、发布订阅-DirectExchange&#xff08;路由模式&#xff09; 在Fanout模式中&#xff0c;一条消息&#xff0c;会被所有订阅的队列都消费。但是&#xff0c;在某些场景下&#xff0c;我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。 Direct Exchan…...

2062:【例1.3】电影票

【题目描述】 已知一位小朋友的电影票价是10元&#xff0c;计算x位小朋友的总票价是多少&#xff1f; 【输入】 输入x。 【输出】 人数和电影票总价&#xff0c;中间用一个空格隔开。 【输入样例】 2 【输出样例】 2 20 Code #include<iostream> using namespace st…...

Python | Leetcode Python题解之第477题汉明距离总和

题目&#xff1a; 题解&#xff1a; class Solution:def totalHammingDistance(self, nums: List[int]) -> int:n len(nums)ans 0for i in range(30):c sum(((val >> i) & 1) for val in nums)ans c * (n - c)return ans...

Leecode刷题之路第25天之K个一组翻转链表

题目出处 25-K个一组翻转链表-题目出处 题目描述 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保…...

nuxtjs3 使用tailwindcss做自适应

步骤 1: 安装 Tailwind CSS npm install tailwindcss postcss autoprefixer nuxtjs/tailwindcss步骤 2: 配置 Tailwind CSS 这将生成一个 tailwind.config.js 文件。 npx tailwindcss init步骤 3: 配置 nuxt.config.ts // https://nuxt.com/docs/api/configuration/nuxt-con…...

数据资产目录构建方法与应用

一、引言随着大数据、云计算、人工智能等技术的飞速发展&#xff0c;数据驱动已经成为企业发展的新引擎。数据资产目录作为数据管理的核心工具&#xff0c;不仅能够帮助企业更好地掌握自身数据资源的状况&#xff0c;还能为数据资产的全生命周期管理提供有力支撑。因此&#xf…...

【Python爬虫实战】从文件到数据库:全面掌握Python爬虫数据存储技巧

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、文本文件数据存储的基础 二、如何将爬取的数据存储为.txt文件 三、如何…...

断其一指,无惧!ProFusion3D: 相机或者激光失效仍高效的多传感器融合3D目标检测算法

Abstract 多传感器融合在自动驾驶中的3D目标检测中至关重要&#xff0c;摄像头和激光雷达是最常用的传感器。然而&#xff0c;现有方法通常通过将两种模态的特征投影到鸟瞰视角&#xff08;BEV&#xff09;或透视视角&#xff08;PV&#xff09;来进行单视角的传感器融合&…...

CCS字体、字号更改+CCS下载官方链接

Step1、 按照图示箭头操作 step2 Step3 点击确定&#xff0c;点击Apply(应用)&#xff0c;点击Apply and close(应用和关闭) 4、历代版本下载链接 CCS下载&#xff1a;官方链接https://www.ti.com/tool/CCSTUDIO The last but not least 如果成功的解决了你的问题&#x…...

YOLO11改进|注意力机制篇|引入SEAM注意力机制

目录 一、【SEAM】注意力机制1.1【SEAM】注意力介绍1.2【SEAM】核心代码二、添加【SEAM】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4三、yaml文件与运行3.1yaml文件3.2运行成功截图一、【SEAM】注意力机制 1.1【SEAM】注意力介绍 下图是【SEAM】的结构图,让我们简单分析一下…...

简历修订与求职经历 - Chap04

节后第一周有点山中无甲子的状况。Oct08&#xff0c;节后第一天几乎全天处于心流状态。上午下午很快时间就结束了。 周五&#xff0c;按照既有的面试频次&#xff0c;感觉可以做点别的。然后就联系了附近的驾校&#xff0c;打算把摩托车驾驶证拿了。然后几乎到了驾校&#xff…...

鸿蒙开发案例:推箱子

推箱子游戏&#xff08;Sokoban&#xff09;的实现。游戏由多个单元格组成&#xff0c;每个单元格可以是透明的、墙或可移动的区域。游戏使用Cell类定义单元格的状态&#xff0c;如类型&#xff08;透明、墙、可移动区域&#xff09;、圆角大小及坐标偏移。而MyPosition类则用于…...

mysql--表的约束

目录 理解表的约束和操作 如何理解&#xff1f; 1、空属性null 2、默认值default 3、列描述comment 4、自动填充zorefill 5、主键primary key &#xff08;1&#xff09;创建表时指定可以 &#xff08;2&#xff09;创建表后指定key &#xff08;3&#xff09;删除主…...

Ubuntu 上安装 docker 并配置 Docker Compose 详细步骤

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...