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

news2024/10/19 17:07:11

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

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

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

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

相关文章

高效监控系统:Nightingale本地化部署与远程访问指南

文章目录 前言1. Linux 部署Nightingale2. 本地访问测试3. Linux 安装cpolar4. 配置Nightingale公网访问地址5. 公网远程访问Nightingale管理界面6. 固定Nightingale公网地址 前言 本文主要介绍如何在本地Linux系统部署 Nightingale 夜莺监控并结合cpolar内网穿透工具实现远程…

Android组件化、模块化、Catalogs

前言 下载代码-----》码云下载 下载代码-----》github下载 本篇是Android最新的依赖架构设计&#xff0c;gradle版本要8.0以上&#xff0c;代码实现基于8.5.1。好多年开发过程中&#xff0c;我们碰到config.gradle&#xff0c;buildSrc&#xff0c;composing builds等依赖编译…

新款任天堂switch游戏机方案,支持4K60HZ投屏方案,显示器,手柄方案

据传任天堂将推出新的一代的switch掌机&#xff0c;而新款掌机将支持4K60HZ投屏 都2402年了再做1080P确实有点不太象话了 4K60HZ相较于1080P能够提升很多游戏体验&#xff0c;这时不管是HDMI显示器或者是VR眼睛清晰度都会让人舒服很多。 不过新一代的任天堂似乎也在PD协议上…

用作曲的手法写旋律 什么是动机 ​动机扩大 单音重复 移八度

【你怎么还不会写旋律&#xff01;&#xff01;&#xff01;猴子都听的懂的旋律教程来了&#xff01;两分钟让你快速上手&#xff01;】 你怎么还不会写旋律&#xff01;&#xff01;&#xff01;猴子都听的懂的旋律教程来了&#xff01;两分钟让你快速上手&#xff01;_哔哩哔…

同济子豪兄--图的基本表示【斯坦福CS224W图机器学习】

无向图&#xff08;Undirected Graph&#xff09;&#xff1a; 在无向图中&#xff0c;边没有方向&#xff0c;即如果顶点A和顶点B之间有一条边&#xff0c;那么这条边既表示A到B的关系&#xff0c;也表示B到A的关系。换句话说&#xff0c;边是双向的。无向图的边通常用一条线段…

WPF基础权限系统

一.开发环境 VisualStudio 2022NET SDK 8.0Prism 版本 8.1.97Sqlite 二. 功能介绍 WPF 基础权限系统&#xff0c;是一个支持前后端分离设计的 客户端(C/S)项目&#xff0c;该示例项目前端xaml使用UI库 &#xff0c;Material Design Themes UI 来构建用户界面&#xff0c;确保…

Ubuntu如何显示pcl版本

终端输入&#xff1a; apt-cache show libpcl-dev可以看到&#xff0c;Ubuntu20.04&#xff0c;下载的pcl&#xff0c;应该都是1.10版本的

一次性入门三款分布式定时任务调度框架:Quartz、ElasticJob3.0、xxl-job

分布式定时任务调度框架&#xff08;文末有源码&#xff09; 前言1、Quartz1.1 数据库1.2 maven依赖1.3 代码实现1.3.1 创建一个job1.3.1 为job设置trigger 1.4 配置文件1.5 启动、测试1.1 单机1.2 集群 2、ElasticJob2.1 下载zk2.2 新建三个类型的作业2.3 配置文件2.4 启动项目…

Windows下配置Nginx和PHP

之前在Windows开发php项目用的是phpstudy&#xff0c;好用的很。但是phpstudy好久没有更新了&#xff0c;感觉PHP像没有人再用了一样。但是PHP拿来开发小系统&#xff0c;还是很高效的&#xff0c;今天记录如何在Windows环境下配置Nginx和PHP。 1. 配置nginx Nginx软件下载解压…

基于Springboot+Vue的宠物管理系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

实现双向链表的增删改查

头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef int LTDataType; typedef struct ListNode {LTDataType data;struct ListNode* prev;struct ListNode* next; } LTNode; //v…

QGraphics类型学习使用【Qt】【C++】

QGraphics类型学习使用 需求过程全部完整代码 首先已知&#xff0c;QGraphicsView&#xff0c;QGraphicsScene, QGraphicsItem&#xff0c;分别称为&#xff1a;视图&#xff0c;场景&#xff0c;图元&#xff0c;图表就是各种各样的元素&#xff0c;图片元素&#xff0c;线条元…

react18中在列表项中如何使用useRef来获取每项的dom对象

在react中获取dom节点都知道用ref&#xff0c;但是在一个列表循环中&#xff0c;这样做是行不通的&#xff0c;需要做进一步的数据处理。 实现效果 需求&#xff1a;点击每张图片&#xff0c;当前图片出现在可视区域。 代码实现 .box{border: 1px solid #000;list-style: …

ParallelsDesktop20最新版本虚拟机 一键切换系统 游戏娱乐两不误

让工作生活更高效&#xff1a;Parallels Desktop 20最新版本虚拟机的神奇之处 大家好&#xff01;&#x1f44b; 今天我要跟大家安利一款让我工作效率飞升的神器——Parallels Desktop 20最新版本虚拟机。作为一个日常需要在不同操作系统间来回穿梭的人&#xff0c;这款软件简直…

react18中的计算属性及useMemo的性能优化技巧

react18里面的计算属性和使用useMemo来提升组件性能的方法 计算属性 实现效果 代码实现 函数式组件极简洁的实现&#xff0c;就这样 import { useState } from "react"; function FullName() {const [firstName, setFirstName] useState("");const [la…

OpenCV高级图形用户界面(14)交互式地选择一个或多个感兴趣区域函数selectROIs()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 允许用户在给定的图像上选择多个 ROI。 该函数创建一个窗口&#xff0c;并允许用户使用鼠标来选择多个 ROI。控制方式&#xff1a;使用空格键或…

明日周刊-第23期

十月已过半&#xff0c;气温也转凉了&#xff0c;大家注意保温哦。冬吃萝卜&#xff0c;夏吃姜&#xff0c;在快要到来的冬季大家可以选择多吃点萝卜。 配图是本周末去商场抓娃娃的时候拍的照片&#xff0c;现在抓娃娃单次普遍都控制在1块钱以下了&#xff0c;还记得多年前的抓…

智能手表PPG技术原理:【图文讲解】

光体积变化描记图法&#xff08;Photoplethysmography&#xff0c;简称PPG&#xff09;是借光电手段在活体组织中监测血液容积变化的一种无创监测方法 目前智能手表比较标配的功能&#xff1a;血糖、血压、心电、心率、血氧 1&#xff1a;人体血管 先温习一下&#xff0c;人…

Java项目-基于Springboot的智慧养老平台项目(源码+文档).zip

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、SpringClud、Vue、Mybaits Plus、ELementUI工具&…

TikTok广告账号被封?常见原因及解决方法分享

TikTok广告投放往往会给我们的账号带来高效曝光和精准流量&#xff0c;但同时许多用户也面临着一个困扰——广告账号被封禁的问题。将在此文一起商讨TikTok广告账号被封禁的原因&#xff0c;分析平台的具体规定&#xff0c;提供解决问题的应对策略&#xff0c;帮助大家有效规避…