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

三星网上商城官网app下载/seo网站自动发布外链工具

三星网上商城官网app下载,seo网站自动发布外链工具,推荐网站建设品牌,b2b网站用户群划分Yocto 项目下通过网络更新内核、设备树及模块 前言 在 Yocto 项目的开发过程中,特别是在进行 BSP(Board Support Package)开发时,经常需要调整特定软件包的版本,修改内核、设备树以及内核模块。然而,每次…

Yocto 项目下通过网络更新内核、设备树及模块

前言

在 Yocto 项目的开发过程中,特别是在进行 BSP(Board Support Package)开发时,经常需要调整特定软件包的版本,修改内核、设备树以及内核模块。然而,每次更改后都重新刷写整个镜像不仅耗时,而且效率低下。本文主要记录一种快速迭代开发的方法,即通过网络更新内核镜像、设备树以及内核模块,以 ST 开发板为例进行详细说明。

调整特定软件包版本

在 Yocto 项目中,调整特定软件包的版本是一个常见的需求。

以调整 libgpiod 版本为例,libgpiod 是一个专为 Linux 系统设计的 GPIO 控制库。它提供了一组用户空间的API,使开发者能够方便地与GPIO设备进行交互,进行配置、读取和控制操作。

  • 定位配方:
    • 在 openembedded 目录下使用 find . -name "libgpiod" 搜索 libgpiod 的配方路径。
    • 确定 meta-openembedded/meta-oe/recipes-support/libgpiod 目录下是否存在你需要的指定版本配方。(如果不存在,那就要考虑自己编写配方,这里不考虑这种情况)
      在这里插入图片描述
  • 指定版本:在 conf/local.conf 文件中添加 PREFERRED_VERSION_libgpiod = "1.6.4%" 来指定 libgpiod 的版本为 1.6.4。
  • 编译配方:使用 bitbake libgpiod 命令编译 libgpiod 版本,观察是否下载指定版本的软件包。
  • 检查依赖关系:确保没有其他配方依赖于更高版本的 libgpiod。如果有,可能需要调整这些配方的依赖关系或更新它们以兼容 1.6.4 版本。
  • 清理构建缓存:如果之前构建过其他版本的 libgpiod,可能需要清理构建缓存以避免潜在冲突。可以使用 bitbake -c cleansstate libgpiodbitbake -c cleanall libgpiod 命令。
  • 验证版本:在构建完成后,可以使用 bitbake -e libgpiod PV 命令来验证实际使用的 libgpiod 版本号(PV 代表 Package Version)。

查找所有配方

Yocto 项目构建系统依赖于大量的配方(Recipe)文件,这些文件定义了如何构建软件包、镜像和其他组件。当需要定位某个特定软件或镜像的配方时,使用 bitbake -s 命令结合 grep 进行筛选是一个实用的技巧。

  • 使用 bitbake -s 列出所有配方及其版本。
  • 使用 bitbake-layers show-recipes,列出所有可用的配方及其所属的层,这有助于我们理解配方的来源和层次结构。

如何通过网络更新内核镜像和设备树

  • 定位配方文件:在 Yocto 中,内核镜像的配方通常符合 linux-<?> 的命名规则,这种命名模式用于表示特定于某个硬件平台或特定功能的 Linux 内核配方(Recipe)。如 linux-imx(i.MX系列)、linux-stm32mp(STM32MP系列)、linux-qcom(针对高通平台)、linux-rpi(针对树莓派平台)等。

    • 使用 bitbake -s | grep linux 查找当前构建系统中可能涉及 Linux 内核的源代码、模块、设备树或其他与 Linux 相关组件的配方。
    • 如果不确定哪个目标是内核镜像,可以查看与 Linux 内核相关的配方文件(通常位于 meta-layers 的recipes-kernel/ 目录下)。这些配方文件会定义如何构建 Linux 内核,并且可能会包含构建镜像的目标。如下图的 linux-stm32mp
      在这里插入图片描述
  • 使用 bitbake linux-stm32mp 触发一个完整的内核镜像构建过程,这个过程会自动去下载源代码、配置、编译和打包内核镜像等步骤。

  • 查找编译包的位置

    • Yocto 在编译完成后会生成很多文件,通常位于<work dir>/<build dir>/tmp 目录下。其中,内核编译完成后的镜像文件一般会放在类似于<work dir>/<build dir>/tmp/work/<machine name>-<distro name>-linux/<kernel name>/<version>-r<revision>/image/boot/的目录下。这里的< >需要根据具体的 Yocto工程配置来确定。比如说我这里:

    • 内核镜像 uImage :build/tmp-glibc/work/stm32mp15_loar_gateway-ostl-linux-gnueabi/linux-stm32mp/6.1.82-stm32mp-r2-r0/image/boot/uImage

    • 设备树文件 : build/tmp-glibc/work/stm32mp15_loar_gateway-ostl-linux-gnueabi/linux-stm32mp/6.1.82-stm32mp-r2-r0/image/boot/stm32mp15-loar-gateway.dtb
      在这里插入图片描述

  • 通过网络更新目标板的内核

    • 进入编译好的镜像目录,替换目标板 /boot 目录下的 uimage,dtb
    • scp uImage root@10.2.1.62:/boot/uImage
    • scp stm32mp15-loar-gateway.dtb root@10.2.1.62:/boot/stm32mp15-loar-gateway.dtb
    • reboot 重启目标板重新加载镜像和设备树
      在这里插入图片描述

如何通过网络更新内核模块

Linux 内核模块可分为内置模块和可加载的模块。

内置模块

  • 内置模块被静态地编译进了内核,它们与内核的其他部分一起被编译成一个单独的二进制文件,并在系统启动时被加载到内存中。所以在更新内核时同样会更新内置模块。

  • 要确定一个模块是不是内置模块,可以运行以下命令,这个文件包含了当前内核版本下所有内置模块的名称。如果一个模块在这个文件中,那么它就是内置的。

    cat /lib/modules/$(uname -r)/modules.builtin
    

可加载模块

  • 可加载模块(也称为动态内核模块)是可以在系统运行时动态地加载和卸载的内核代码块。
  • Yocto 内核编译完成后的内核模块文件一般会放在类似于<work dir>/<build dir>/tmp/work/<machine name>-<distro name>-linux/<kernel name>/<version>-r<revision>/image/lib/modules/的目录下。这里的< >需要根据具体的 Yocto工程配置来确定。比如说我这里的 SPI 模块:build/tmp-glibc/work/stm32mp15_loar_gateway-ostl-linux-gnueabi/linux-stm32mp/6.1.82-stm32mp-r2-r0/image/lib/modules/6.1.82/kernel/drivers/spi/spi-stm32.ko
    在这里插入图片描述
  • 进入编译好的模块目录,替换目标板 /lib/modules/ 目录下对应的内核模块,比如 spi-stm32.ko
    • scp spi-stm32.ko root@10.2.1.62:/lib/modules/6.1.82/kernel/drivers/spi/spi-stm32.ko
    • 更新模块依赖::sudo depmod
    • 加载新模块:sudo insmod /lib/modules/6.1.82/kernel/drivers/spi/spi-stm32.ko
    • 或者使用 modprobe 自动处理模块依赖关系:sudo modprobe spi-stm32

相关文章:

Yocto 项目下通过网络更新内核、设备树及模块

Yocto 项目下通过网络更新内核、设备树及模块 前言 在 Yocto 项目的开发过程中&#xff0c;特别是在进行 BSP&#xff08;Board Support Package&#xff09;开发时&#xff0c;经常需要调整特定软件包的版本&#xff0c;修改内核、设备树以及内核模块。然而&#xff0c;每次…...

Scheduled Sampling工作原理【小白记笔记】

Scheduled Sampling&#xff08;计划采样&#xff09;是一种在序列生成任务中用于逐步引导模型的训练策略。该方法最早由 Bengio 等人在 2015 年提出&#xff0c;主要用于解决序列到序列&#xff08;sequence-to-sequence&#xff09;模型中的曝光偏差&#xff08;exposure bia…...

C++:C++的IO流

目录 一.C标准IO流 1.operator bool 二.C文件IO流 1.文件读取 ifstream &#xff08;1&#xff09;ifstream继承istream &#xff08;2&#xff09;ifstream 构造函数 &#xff08;3&#xff09;ifstream&#xff0c;get读取整个文件 &#xff08;4&#xff09;>&g…...

「QT」几何数据类 之 QLine 整型直线类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

day58 图论章节刷题Part09(dijkstra(堆优化版)、Bellman_ford 算法)

dijkstra(堆优化版) 朴素版的dijkstra解法的时间复杂度为 O(n^2)&#xff0c;时间复杂度只和 n&#xff08;节点数量&#xff09;有关系。如果n很大的话&#xff0c;可以从边的角度来考虑。因为是稀疏图&#xff0c;从边的角度考虑的话&#xff0c;我们在堆优化算法中最好使用…...

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(1)

前言 大家好吖&#xff0c;欢迎来到 YY 滴计算机网络 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 本博客主要内容&#xff0c;收纳了一部门基本的计算机网络题目&#xff0c;供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...

智能出行助手:SpringBoot共享汽车管理平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…...

【月之暗面kimi-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …...

Flink实现实时数据处理

代码如下&#xff1a; #!/usr/bin/python # -*- coding: UTF-8 -*-from pyflink.datastream import StreamExecutionEnvironment from pyflink.table import StreamTableEnvironment, EnvironmentSettings, DataTypes# 初始化执行环境 s_env StreamExecutionEnvironment.get_…...

11.9.2024刷华为

文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费&#xff0c;看毛线&#xff0c;莫名奇妙 HW这叼机构别搁这儿害人得不得&#xff1f; 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处&#xff0c;就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…...

Chromium 中chrome.system.storage扩展接口定义c++

一、chrome.system.storage 您可以使用 chrome.system.storage API 查询存储设备信息&#xff0c;并在连接和分离可移动存储设备时收到通知。 权限 system.storage 类型 EjectDeviceResultCode 枚举 "success" 移除命令成功执行 - 应用可以提示用户移除设备。…...

【Qt聊天室客户端】登录窗口

1. 验证码 具体实现 登录界面中创建验证码图片空间&#xff0c;并添加到布局管理器中 主要功能概述&#xff08;创建一个verifycodewidget类专门实现验证码操作&#xff09; 详细代码 // 头文件#ifndef VERIFYCODEWIDGET_H #define VERIFYCODEWIDGET_H#include <QWidget>…...

如何显示模型特征权重占比图【数据分析】

可视化模型的特征权重 1、流程 1、导入库: numpy:用于处理数组和矩阵。 matplotlib.pyplot:用于绘图。 sklearn.datasets:用于加载数据集。 sklearn.ensemble.RandomForestClassifier:用于训练随机森林模型。2、加载数据集: 使用load_iris函数加载Iris数据集。3、训练模…...

Ubuntu24安装MySQL

下载deb包&#xff1a; 先更新系统包&#xff1a; sudo apt update sudo apt update -y下载mysql: wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb 安装deb包&#xff1a; sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb目前mysql还没有正式支持Ubun…...

微服务架构面试内容整理-Eureka

Spring Cloud Netflix 是一个为构建基于 Spring Cloud 的微服务应用提供的解决方案,利用 Netflix 的开源组件来实现常见的分布式系统功能。以下是 Spring Cloud Netflix 的一些主要组件和特点: 服务注册与发现:Eureka 是一个 RESTful 服务,用于注册和发现微服务。服务实例在…...

qt QErrorMessage详解

1、概述 QErrorMessage是Qt框架中用于显示错误消息的一个对话框类。它提供了一个简单的模态对话框&#xff0c;用于向用户显示错误或警告消息。QErrorMessage通常用于应用程序中&#xff0c;当需要向用户报告错误但不希望中断当前操作时。它提供了一个标准的错误消息界面&…...

SpringBoot 将多个Excel打包下载

在Spring Boot应用中&#xff0c;如果你需要将多个Excel文件打包成一个ZIP文件并提供下载&#xff0c;你可以使用一些Java库来帮助完成这个任务。这里我将展示如何使用Apache POI来生成Excel文件&#xff0c;以及使用Java.util.zip来创建ZIP文件&#xff0c;并通过Spring Boot的…...

分页存储小总结

知识点: 什么是分页存储? 将内存空间分为一个个大小相等的分区&#xff08;比如&#xff1a;每个分区4KB&#xff09;&#xff0c;每个分区就是一个“页框”&#xff08;页框页帧内存块物理块物理页面&#xff09;。每个页框有一个编号&#xff0c;即“页框号”&#xff08;…...

Star-CCM+应用篇之动力电池温度场仿真操作流程与方法

1 动力电池温度场仿真项目 电池包内模组温度分布、电芯温度分布、温升速率、充电时间等。 2 动力电池温度场仿真分析流程图 图1 电池包热流场分析流程 3 动力电池温度场仿真参数需求 类别...

Spring Boot应用开发:从入门到精通

Spring Boot应用开发&#xff1a;从入门到精通 Spring Boot是Spring框架的一个子项目&#xff0c;旨在简化Spring应用的初始搭建和开发过程。通过自动配置和约定大于配置的原则&#xff0c;Spring Boot使开发者能够快速构建独立的、生产级别的Spring应用。本文将深入探讨Sprin…...

【JAVA项目】基于jspm的【医院病历管理系统】

技术简介&#xff1a;采用jsp技术、MySQL等技术实现。 系统简介&#xff1a;通过标签分类管理等方式&#xff0c;实现管理员&#xff1b;个人中心、医院公告管理、用户管理、科室信息管理、医生管理、出诊信息管理、预约时间段管理、预约挂号管理、门诊病历管理、就诊评价管理、…...

Python中的常见配置文件写法

在软件开发过程中&#xff0c;开发者常常需要利用一些固定的参数或常量。对于这些相对恒定且频繁使用的元素&#xff0c;一种常见的做法是将它们集中存储在一个特定的文件中&#xff0c;以避免在多个模块代码中重复定义&#xff0c;从而维护核心代码的清晰度和整洁性。 具体而…...

语义分割实战——基于PSPnet神经网络动物马分割系统源码

第一步&#xff1a;准备数据 动物马分割数据&#xff0c;总共有328张图片&#xff0c;里面的像素值为0和1&#xff0c;所以看起来全部是黑的&#xff0c;不影响使用 第二步&#xff1a;搭建模型 psp模块的样式如下&#xff0c;其psp的核心重点是采用了步长不同&#xff0c;po…...

Python+Appium编写脚本

一、环境配置 1、安装JDK&#xff0c;版本1.8以上 2、安装Python&#xff0c;版本3.x以上&#xff0c;用来解释python 3、安装node.js&#xff0c;版本^14.17.0 || ^16.13.0 || >18.0.0&#xff0c;用来安装Appimu Server 4、安装npm&#xff0c;版本>8&#xff0c;用…...

RK3288 android7.1 适配 ilitek i2c接口TP

一&#xff0c;Ilitek 触摸屏简介 Ilitek 提供多种型号的触控屏控制器&#xff0c;如 ILI6480、ILI9341 等&#xff0c;采用 I2C 接口。 这些控制器能够支持多点触控&#xff0c;并具有优秀的灵敏度和响应速度。 Ilitek 的触摸屏控制器监测屏幕上的触摸事件。 当触摸发生时&am…...

C++ 越来越像函数式编程了!

C 越来越像函数式编程了 大家好&#xff0c;欢迎来到今天的博客话题。今天我们要聊的是 C 这门老牌的强类型语言是如何一步一步向函数式编程靠拢的。从最早的函数指针&#xff0c;到函数对象&#xff08;Functor&#xff09;&#xff0c;再到 std::function 和 std::bind&…...

maven工程结构说明

1、maven工程文件目录 |-- pom.xml # Maven 项目管理文件 |-- src # 放项目源文件|-- main # 项目主要代码| |-- java # Java 源代码目录| | -- com/example/myapp…...

【GESP】C++一级真题练习(202312)luogu-B3921,小杨的考试

GESP一级真题练习。为2023年12月一级认证真题。逻辑计算问题。 题目题解详见&#xff1a;【GESP】C一级真题练习(202312)luogu-B3921&#xff0c;小杨的考试 | OneCoder 【GESP】C一级真题练习(202312)luogu-B3921&#xff0c;小杨的考试 | OneCoderGESP一级真题练习。为2023…...

游戏中Dubbo类的RPC设计时的注意要点

一.消费方 1.需要使用到动态代理&#xff0c;代理指定的接口&#xff0c;这样子接口被调用时&#xff0c;就可以拿到&#xff1a;"类名 方法名参数返回值" 这些类型。 2.既然是rpc&#xff0c;那么接口被调用时&#xff0c;肯定在动态代理中会进行网络消息的发送&a…...

ARXML汽车可扩展标记性语言规范讲解

ARXML: Automotive Extensible Markup Language &#xff08;汽车可扩展标记语言&#xff09; xmlns: Xml name space &#xff08;xml 命名空间&#xff09; xsd: Xml Schema Definition (xml 架构定义) 1、XML与HTML的区别&#xff0c;可扩展。 可扩展&#xff0c;主要是…...