Linux设备树:删除节点和属性的方法

news2025/1/6 5:08:56

[摘要]:本文主要介绍了在设备树中删除节点(node)和属性(property)的方法。为了便于理解,笔者先介绍了 dtsi 和 dts 的关系,然后构建了虚拟的需求场景,最终给出示例。

背景知识

设备树文件可以分为 dtsi 和 dts 两种类型。dtsi 类似于 C 语言中的头文件,供其他设备树文件引用,而 dts 则是与嵌入式设备对应,直接用于编译成内核使用的 dtb 文件。

以意法半导体的 STM32MP15x 系列芯片为例:

  • 首先,ST 基于基础的 STM32MP151 芯片创建了 stm32mp151.dtsi 文件。在该文件中,使用设备树详细描述了芯片内部的硬件资源。

  • 第二,STM32MP153 芯片和 STM32MP151 芯片的硬件资源大部分都相同,只有少量差别。所以,ST 在创建的 stm32mp153.dtsi 中直接通过 #include "stm32mp151.dtsi"引入了 stm32mp151.dtsi 文件,然后在此基础上根据 STM32MP153 的实际硬件资源对设备树进行少量修改。

  • 第三,STM32MP157 芯片和 STM32MP153 芯片的硬件资源大部分都相同,只有少量差别。所以,ST 在创建的 stm32mp157.dtsi 中直接通过 #include "stm32mp153.dtsi"引入了 stm32mp153.dtsi 文件,然后在此基础上根据 STM32MP157 的实际硬件资源对设备树进行少量修改。

  • 第四,ST 基于 STM32MP157 设计了给客户的评估板,于是创建了 stm32mp157a-ed1.dts 文件,并通过 #include "stm32mp157.dtsi" 引入了 STM32MP157 芯片的所有资源信息,然后在此基础上根据评估板的实际硬件资源进行少量修改。

  • 最终,我们将 stm32mp157a-ed1.dts 编译成 stm32mp157a-ed1.dtb 文件,供 Linux 内核使用。

从上面的流程我们可以看出,有了 dtsi 文件之后,后面的每一步都只需要基于之前的 dtsi 进行少量修改即可,极大地减少了我们的工作量。

需求场景

假设我们现在基于 STM32MP157 芯片设计了一款自己的开发板,然后创建了 stm32mp157a-myboard.dts,并通过#include "stm32mp157.dtsi"引入了 STM32MP157 芯片的资源信息。

此时我们发现 stm32mp157.dtsi 中的 gpu 节点和 dsi 节点中的 phy-dsi-suppry 属性用不到,想要删掉,应该怎么做?

有人可能会选择直接修改 stm32mp157.dtsi 文件,把不需要的东西删掉。但是,这可能会导致其他引用 stm32mp157.dtsi 文件的 dts 无法正常工作。

所以,我们现在需求就是:不修改 stm32mp157.dtsi 文件,直接在 stm32mp157a-myboard.dts 文件中删掉 gpu 节点和 dsi 节点中的 phy-dsi-suppry 属性。

删除节点

说明:设备树节点都由 status 属性,在不使用该节点的时候只要将 status 属性配置为 disabled 即可。本节仅仅是为了展示 /delete-node/ 的用法。

  • 语法

    /delete-node/ node-name;
    /delete-node/ &label;
    
  • 示例

    对于 gpu 节点,它的节点名(node-name)是 gpu@59000000,标签(label)是 gpu。删除该节点的两种方式如下:

    /delete-node/ gpu@59000000;
    
    /delete-node/ &gpu;
    

删除属性

  • 语法

    /delete-property/ property-name;
    
  • 示例

    说明:该示例仅用于展示 /delete-propery/ 的用法,实际删除 phy-dsi-suppry 之后可能会导致 dsi 硬件不能工作。

    &dsi {
    	/delete-property/ phy-dsi-suppry; 
    };
    

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

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

相关文章

易基因:MeRIP-seq等揭示m6A reader YTHDF1在结直肠癌PD-1免疫治疗中的作|Gut

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 结直肠癌(colorectal cancer ,CRC)是全球最常见的癌症之一,转移性CRC患者的5年生存率低于20%。免疫检查点阻断(Immune checkpo…

基于LLMs的多模态大模型(MiniGPT-4,LLaVA,mPLUG-Owl,InstuctBLIP,X-LLM)

这个系列的前一些文章有: 基于LLMs的多模态大模型(Visual ChatGPT,PICa,MM-REACT,MAGIC)基于LLMs的多模态大模型(Flamingo, BLIP-2,KOSMOS-1,ScienceQA) 前…

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问):mov、add、sub、push、pop

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问) 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …

基于LSB实现文本、图片、压缩包的隐藏

关于LSB的相关介绍: LSB全称为 Least Significant Bit(最低有效位),是一种基于图片最低有效位修改储存信息的隐写方法,在CTF杂项中经常会遇到,LSB属于空域算法中的一种,是将信息嵌入到图像点中…

OPCUA从入门到精通看这里就够了

本文将会从以下几个方面介绍 1.OPCUA是什么 2.OPCUA常用的工具有那些 3.OPCUA的官网 4.使用opcua常用的方法和功能介绍 5.根据官网自己封装了一个opcuaclient类,并说明每个方法的用处 6.根据4中的opcuaclient类自己写了demo 本文所有用到的资料在此下载包括U…

Android平台音视频推送选RTMP还是GB28181?

技术背景 早在2015年,我们发布了RTMP直播推送模块,那时候音视频直播这块场景需求,还不像现在这么普遍,我们做这块的初衷,主要是为了实现移动单兵应急指挥系统的低延迟音视频数据传输。好多开发者可能会疑惑&#xff0…

信息系统建设和服务能力评估证书CS

信息系统建设和服务能力评估体系CS简介 简介:本标准(团标T/CITIF 001-2019)是信息系统建设和服务能力评估体系系列标准的第一个,提出了对信息系统建设和服务提供者的综合能力要求。 发证单位:中国电子信息行业联合会。…

整型,浮点型,大小字节知识细节一网打尽!

目录 一. 整型 2.11 C语言内置整型 2.12整型在内存如何存储? 2.12 原码,反码, 补码 2.13 当 整型遇上unsigned 2.1 unsigned 与 signed 解析 2.2 printf 输出 有无符号数解析 2.3 有关练习 二. 浮点型 2.51 浮点型与整型在存储上的…

视频会议产品对比分析

内网视频会议系统如何选择?有很多单位为了保密,只能使用内部网络,无法连接互联网,那些SaaS视频会议就无法使用。在内网的优秀视频会议也有很多可供选择,以下是几个常用的: 1. 宝利通:它支持多种…

港联证券|新产品“内卷”,史上最火光伏展能否带动光伏板块行情

在光伏成为“能源老大”之前,指数何时能够跑赢A股股主要股指,或是散户关注的重点。 时隔两年,SNEC上海光伏展如约举办。本届展会吸引了3000余家光伏公司参展,累计50万人涌进场馆,现场人群拥挤度丝毫不逊于过去两年资金…

Navicat连接Oracle时报错ORA-28547

错误信息 这是因为Navicat自带的oci.dll并不支持oracle11g,网上这么说的,需要去官网下载支持的版本。 直接动手。 1. 先DBeaver的连接到oracle数据库(为了查询版本) 1.1 查询版本 SQL:select * from v$version;1.2 …

如何利用Linkage Mapper工具包评估栖息地碎片化程度详解(含实例分析)

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 Linkage Mapper工具包评估栖息地碎片化程度详解1. 介绍1.1 简介1.2 ArcGIS概述1.3 Linkage Mapper工具包简介

生态伙伴 | 携手深圳科创学院,持续推动项目落地与成长

01 大赛介绍 中国硬件创新创客大赛始于2015年,由深圳华秋电子有限公司主办,至今已经成功举办八届,赛事范围覆盖华南、华东、华北三大地区,超10个省市区域。 大赛影响了超过45万工程师群体,吸引了35000多名硬创先锋报…

分享Python采集66个焦点图,总有一款适合您

分享Python采集66个焦点图,总有一款适合您 Python采集的66个焦点图下载链接:https://pan.baidu.com/s/1nHoPaUp2Bqtrs5d7J-XdwA?pwd3yfb 提取码:3yfb jQuery SuperSlide插件自适应banner大图焦点图片轮播切换特效 jQuerySwiper仿魅族幻灯…

3.复制Centos虚拟机并且安装Ansible

在2.VirtualBox安装CentOS 7已经创建好了CentOS_template,按下面的步骤,从已经创建好的模版,分别复制出来3个虚拟机:ansible-controller和ansible-target1和ansible-target2。 注意这里的MAC地址设定,要选择&#xff…

用Tushare获取股票信息

Tushare数据Tushare为金融数据分析提供便捷、快速的接口,与投研和量化策略无缝对接https://tushare.pro/register?reg593541 o(≧口≦)o 先别看着链接就走了,敲黑板。 教大家如何基础使用日线行情获取接口数据,不会告诉你们我就是为了骗积分…

spring security oauth2.0-密码式password

密码式(password)授权模式 简介 如果你高度信任对方应用,密码式授权模式也是被允许的. 密码模式,顾名思义,就是使用账号密码的形式在授权服务器上获取授权令牌, 但是这种令牌是不支持刷新令牌的. 这种方式一般是不建议使用的,因为它的高风险性, 但是如果只是两家应用之间的…

算法工程师的主要职责(合集)

算法工程师的主要职责 算法工程师的主要职责1 1、环境建模 根据设计的机器人方案,构建机器人的运动学模型、观测模型等概率学模型; 2、slam算法研发 研究基于多线激光雷达的slam算法,包括特征提取、数据关联、闭环检测等相关算法的开发; 3、定位算法研发…

gd32f103vbt6 串口OTA升级-4-从rk3399的串口升级1

一、需求: 因客户需求,觉得升级单片机程序需要打开设备的盖子,(抽出设备,拧螺丝,挺费事的)。 那能不能把单片机也做到linux系统下升级呢? 答案当然是可行的。(这里有个…

Shopee|Lazada电商平台api接口,接入获取商品评论|根据关键词取商品列表API说明示例

Shopee和Lazada是东南亚地区广受欢迎的电商平台。它们的模式非常类似,都是以C2C(消费者到消费者)、B2C(企业到消费者)和O2O(线上到线下)为主要销售模式。用户可以在平台上购买商品或者将自己的商…