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. 校验失败的处理:如果校验和不匹配,构建过程会立即停止,并报出错误信息。这确保了构建环境的安全性,防止下载的文件被篡改或损坏。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/898721.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机系统的层次

目录 计算机系统的层次ISA&#xff08;指令集体系结构&#xff09; 计算机系统的层次 计算机硬件是基础指令集体系结构&#xff1a;将硬件的功能封装从指令供软件使用操作系统&#xff1a;提供人机交互界面、提供服务功能的内核例程语言处理系统&#xff1a; 语言处理程序&…

群晖通过 Docker 安装 GitLab

Docker 配置容器步骤都是大同小异的&#xff0c;可以参考&#xff1a; 群晖通过 Docker 安装 Gitea-CSDN博客 1. 在 Docker 文件夹中创建 GitLab&#xff0c;并创建子文件夹 2. 设置权限 3. 打开 Docker 应用&#xff0c;并在注册表搜索 gitlab-ce 4. 选择 gitlab-ce 映像运行…

什么是不同类型的微服务测试?

大家好&#xff0c;我是锋哥。今天分享关于【什么是不同类型的微服务测试&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 什么是不同类型的微服务测试&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构中的测试可以分为多种类…

多尺度建模:从理论到实践的深入探讨

#1024程序员节 | 征文# 引言 在现代科学与工程中&#xff0c;很多现象和过程在不同的空间和时间尺度上展现出复杂性。因此&#xff0c;能够有效地进行多尺度建模&#xff0c;已经成为了许多领域&#xff08;如物理、生物、工程、环境科学等&#xff09;研究的一个重要方向。本…

vue后台管理系统从0到1(5)

文章目录 vue后台管理系统从0到1&#xff08;5&#xff09;完善侧边栏修改bug渲染header导航栏 vue后台管理系统从0到1&#xff08;5&#xff09; 接上一期&#xff0c;我们需要完善我们的侧边狼 完善侧边栏 我们在 element 组件中可以看见&#xff0c;这一个侧边栏是符合我们…

【操作系统】06.进程控制

一、进程创建 1.1 认识fork函数 在linux中fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 进程调用fork&#xff0c;当控制转移到内核中的fork代码后&#xff0c;内核将 分配新的内存块和内核数据结构…

Aspose.PDF功能演示:使用 JavaScript 从 PDF 中提取文本

在数据提取、业务文档自动化和文本挖掘方面&#xff0c;使用 JavaScript 从PDF中提取文本非常有用。它允许开发人员自动执行从 PDF 收集信息的过程&#xff0c;从而显著提高处理大量文档的生产力和效率。在这篇博文中&#xff0c;我们将学习如何使用 JavaScript 从 PDF 中提取文…

人工智能的未来应用与发展前景

随着人工智能&#xff08;AI&#xff09;技术的快速进步&#xff0c;我们正亲历着它在各行各业中带来的巨大变革。无论是医疗、企业管理&#xff0c;还是日常生活&#xff0c;AI 技术都在改变着我们的工作和生活方式。那么&#xff0c;人工智能的应用前景究竟如何&#xff1f;它…

【消息队列】RabbitMQ实现消费者组机制

目录 1. RabbitMQ 的 发布订阅模式 2. GRPC 服务间的实体同步 2.1 生产者服务 2.2 消费者服务 3. 可靠性 3.1 生产者丢失消息 3.2 消费者丢失消息 3.3 RabbitMQ 中间件丢失消息 1. RabbitMQ 的 发布订阅模式 https://www.rabbitmq.com/tutorials/tutorial-three-go P 生…

winUI3 c++ 入门 2、 样式

目录 一、winUI3 基本概念及样式 1、边距 2、如何使用样式 1)、布局控件内定义样式 2)、APP.xmal定义全局样式 3)、单独的样式文件 3.1)、新增字典资源 xmal 3.2)、在里面设置样式 3.3)、引用样式 3、更多样式修改 1)、修改默认属性 2)、修改所有的默认颜色…

垃圾收集器与内存分配机制(一)

目录 一、为什么我们要去了解垃圾收集和内存分配 二、对象已死&#xff1f; 1. 引用计数算法 2. 可达性分析算法 3. 再谈引用 4. 生存还是死亡 5. 回收方法区 三、垃圾收集算法 1. 简介 2. 分代收集理论 2.1. 弱分代/强分代假说 2.2. 前面两代假说的缺陷 3. 标记-清…

智能去毛刺:2D视觉引导机器人如何重塑制造业未来

机器人技术已经深入到各个工业领域中&#xff0c;为制造业带来了前所未有的变革。其中&#xff0c;2D视觉引导机器人技术以其精准、高效的特点&#xff0c;在去毛刺工艺中发挥着越来越重要的作用。本文将为您介绍2D视觉引导机器人技术的基本原理及其在去毛刺工艺中的应用&#…

blender 理解 积木组合 动画制作 学习笔记

一、学习blender视频教程链接 案例2&#xff1a;积木组合_动画制作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Bt4y1E7qn?vd_sourced0ea58f1127eed138a4ba5421c577eb1&p10&spm_id_from333.788.videopod.episodes 二、说明 之前已经学习了如何制作积木组…

20 Shell Script输入与输出

标出输入、标准输出、错误输出 一、程序的基本三个IO流 一&#xff09;文件描述符 ​ 任何程序在Linux系统中都有3个基本的文件描述符 ​ 比如: ​ cd/proc/$$/fd ​ 进入当前shell程序对于内核在文件系统的映射目录中: [rootlocalhost ~]# cd /proc/$$/fd [rootlocalhos…

Ubuntu22.04环境搭建MQTT服务器

官网&#xff1a; https://mosquitto.org 1.引入库 sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa2.升级安装工具 sudo apt-get update 3.安装 sudo apt-get install mosquitto 4.安装客户端 sudo apt-get install mosquitto-clients5.添加修改配置文件 进…

微信小程序上传图片添加水印

微信小程序使用wx.chooseMedia拍摄或从手机相册中选择图片并添加水印&#xff0c; 代码如下&#xff1a; // WXML代码&#xff1a;<canvas canvas-id"watermarkCanvas" style"width: {{canvasWidth}}px; height: {{canvasHeight}}px;"></canvas&…

【Linux】冯诺依曼体系结构 OS的概念

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 前言废话&#xff1a…

将java项目jar包打包成exe服务

1.结构展示 2.注意事项 前提: 环境准备:jdk8 和 .net支持 { 1.控制面板》程序和功能》启用和关闭windows功能》.net的勾选》2.jdk8自行百度安装环境3.其他项目必须的软件环境安装等&#xff08;数据库...&#xff09; }第一次准备: 1.将打包好的jar包放到premiumServices.exe…

销冠教你如何转化观望客户

在销售实践中&#xff0c;常会遇到这样的场景&#xff1a;客户对我们的提案表现出极大的兴趣&#xff0c;但在执行阶段却显得迟疑&#xff0c;频繁表示“还需观望&#xff0c;再考虑”。这种态度不仅拖慢了项目进度&#xff0c;甚至可能导致项目完全停滞&#xff0c;从而错失宝…

Spring Boot技术栈在论坛网站开发中的应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…