六、Yocto给组件分组(packagegroups)

2024-04-01 08:20

本文主要是介绍六、Yocto给组件分组(packagegroups),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Yocto给组件分组(packagegroups)

本篇文章为基于raspberrypi 4B单板的yocto实战系列的第五篇文章:
一、yocto 编译raspberrypi 4B并启动
二、yocto 集成ros2(基于raspberrypi 4B)
三、Yocto创建自定义的layer和image
四、Yocto创建静态IP和VLAN
五、Yocto集成QT5

前面几篇文章中我们在iamge中集成了ROS2和QT5,还有一些我们自己的组件比如vlanconfg和qt的示例程序luncher,我们都是统一添加到IMAGE_INSTALL变量里面,如下所示:
在这里插入图片描述
这里有一个问题,后续我们引入的第三方组件越来越多,我们自己的应用程序越来越多这个地方是不是有点过于混乱了,有没有一种机制能够给这些包分个组呢,当然是有的,这就是我们马上要介绍的包组,也就是packagegroups。

给组件分组

我们按照刚才介绍的,将IMAGE_INSTALL里面添加的软件包简单分个类,比如ros的包、qt的基础包以及我们自己添加的包。
那我们就可以在meta-rpi-robot/recipes-core/下面添加一个文件夹packagegroups,并且创建3个packagegroup的bb文件:

mkdir -p meta-rpi-robot/recipes-core/packagegroups
cd meta-rpi-robot/recipes-core/packagegroups
touch packagegroup-ros.bb
touch packagegroup-qt5.bb
touch packagegroup-rpi-robot.bb

里面的内容如下:

packagegroup-ros.bb

DESCRIPTION = "RaspberryPi Test Packagegroup"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"PACKAGE_ARCH = "${MACHINE_ARCH}"inherit packagegroupRDEPENDS:${PN} = "\ros-core \turtlesim \
"

packagegroup-qt5.bb

DESCRIPTION = "RaspberryPi Test Packagegroup"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"PACKAGE_ARCH = "${MACHINE_ARCH}"inherit packagegroupRDEPENDS:${PN} = "\fontconfig \ttf-bitstream-vera \qtbase \qtbase-plugins \qtdeclarative \qtdeclarative-qmlplugins \qtquickcontrols2 \
"

packagegroup-rpi-robot.bb

DESCRIPTION = "RaspberryPi Test Packagegroup"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"PACKAGE_ARCH = "${MACHINE_ARCH}"inherit packagegroupRDEPENDS:${PN} = "\luncher \vlanconfig \
"

这样后面我们添加自己的组件就添加到packagegroup-rpi-robot.bb这个里面就好拉。

组合packagegroups

上面我们对组件进行了分组,那我们的rpi-robot-image.bb文件里面还是要将刚才的几个包组引入进来才行,改造一下rpi-robot-image.bb:

DESCRIPTION = "core-image-base for rpi robot"
LICENSE = "MIT"#require recipes-core/images/core-image-base.bb
inherit core-imageIMAGE_FSTYPES = "ext4.xz rpi-sdimg"
SDIMG_ROOTFS_TYPE="ext4.xz"DISTRO_FEATURES:append = " opengl"
DISTRO_FEATURES:remove = " x11"IMAGE_FEATURES += "ssh-server-openssh"IMAGE_INSTALL +=" \packagegroup-rpi-robot \packagegroup-ros \packagegroup-qt5 \
"

大功告成,这样看起来是不是简洁许多呢。

这篇关于六、Yocto给组件分组(packagegroups)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866679

相关文章

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine