Linux kernel中的dts dtsi dtb dtc dtb.img dtbo.img

Android boot.img dtb.img 编译过程 最近做RK3588案子,修改dts后,导致boot.img过大,编译出错,整体分析下boot.img过大的原因是因为在打包boot.img过程中,dbt.img过大导致,所以整体分析下boot.img编译过程,尤其是dbt.img的生成过程.编译kernel生成对应的dtb文件,3588平台为rk3588-e088.dtb,然后会把rk3588-e088.dtb cat到out目录下面生成dtb.img. 编译boot.img的时候会把dtb.img打到boot.img里面.dtb.img生成过程。 阅读详情

1、问题

kernel与hsm会设置一些gpio,但是某些gpio会在kernel与hsm侧共同设置,导致最终的设置结果失败,将kernel侧在dts文件中设置的gpio注释掉之后,发现hsm设置gpio时还是失败

2、问题原因

因为dts文件不仅仅会影响kernel镜像,还会影响dtb.img与dtbo.image,因为只烧写了hsm与kernel的镜像,没有重新烧写dtb.img与dtbo.image,导致之前在dts中配置的gpio依然生效,最终导致gpio的设置出错。

3、解决办法

整体编译一下Android代码,重新烧录dtb.img与dtbo.image。

4、相关概念

DTS (Device Tree Source):设备树源文件,是用人类可读的文本格式编写的文件,描述硬件设备的层次结构和属性。DTS文件通常包含设备树的完整或部分定义。


DTSI (Device Tree Source Include):设备树源包含文件,类似于C语言中的头文件(.h)。DTSI文件包含可以在多个DTS文件中共享的通用定义和配置。通过使用#include指令,DTS文件可以包含DTSI文件,从而避免重复代码。


DTB (Device Tree Blob):设备树Blob,是一个二进制格式的设备树文件。DTB文件是由DTS文件通过设备树编译器(DTC)编译生成的,用于在系统启动时传递给内核。


DTC (Device Tree Compiler):设备树编译器,是一个工具,用于将DTS文件编译成DTB文件。DTC可以将人类可读的设备树源文件转换为内核可以理解的二进制格式。

dtb.img:包含DTB文件的镜像文件。在某些系统中,DTB文件会被打包成特定的镜像文件,如dtb.img,以便在系统启动时由引导加载程序加载到内存中。


dtbo.img:一个包含设备树Blob Overlay(DTBO)文件的镜像文件。DTBO文件用于设备树叠加,允许在不修改主设备树的情况下,通过叠加额外的设备树片段来添加、修改或删除设备树中的节点和属性。dtbo.img 文件通常包含可以在运行时根据需要加载到主设备树中的DTBO文件。

通过这些,可以避免对内核代码的大量修改,并且更容易的配置设备

RK3568设备树入门:Linux驱动与DTS/DTB匹配机制全面解析 设备树(Device Tree)是嵌入式Linux驱动开发中的核心概念,它通过DTS与DTB文件将硬件描述从内核代码中解耦,成为驱动与物理硬件之间的“接线表”。理解设备树的原理,不仅需要掌握节点、属性、compatible匹配机制,还要熟悉platform_driver与probe的触发流程。在RK3568等ARM64平台上,正确选择dts/dtsi文件并完成编译与烧录,是外设正常工作的前提。无论你是刚接触写驱动的新手,还是在OpenHarmony环境中遭遇设备树适配问题,都需要从资源读取API、增量修改语 阅读详情

相关推荐

OpenHarmony设备树修改实战:RK3568平台DTS编译与调试指南

设备树(Device Tree)是Linux内核中描述硬件资源的标准数据结构,它通过DTS源码定义CPU、内存、外设地址等关键信息。在嵌入式开发中,设备树直接影响内核与驱动的匹配效率,尤其是compatible属性决定了驱动能否正确绑定硬件。理解设备树的原理与匹配机制,有助于开发者快速定位外设异常,提升系统移植效率。在OpenHarmony生态中,RK3568芯片凭借完善的源码支持成为主流平台,其设备树文件组织复杂,包含dts、dtsi、dtb和dtbo等层级。掌握RK3568设备树的修改、编译与烧录验证流

weixin_34268753的博客 414

Android 10.0 根文件系统和编译系统

1, 讲解android根文件系统结构和组成2, 讲解android系统镜像的概念和拆包3, 讲解Android系统源码结构4, 讲解Android系统编译规则5, 讲解Android系统ADB使用和Log日志调试方法6, 讲解Android系统Android.mk和Android.bp是各种规则 

设备树与Linux驱动开发实战:从dts语法到probe匹配机制

在嵌入式Linux开发中,设备树(Device Tree)作为描述硬件资源的标准化机制,其核心思想是将板级信息与驱动代码解耦,驱动通过compatible属性与设备节点匹配。理解设备树原理、dtb编译流程及platform_driver的probe触发条件,是解决驱动移植问题的关键。实际场景中,如RK3568平台多设备树选型、USB转串口芯片驱动调试等,都需借助/proc/device-tree与dmesg日志定位问题。本文从设备树基础概念出发,结合常见坑位与排查手段,帮助开发者快速掌握设备树驱动开发精髓,

weixin_34253126的博客 375

Android系统 —— image文件解析

Android系统编译之后的打包阶段,会将所有编译出来的有需要的执行文件,库文件以及各种配置文件等打包到各个镜像文件中。有时候我们需要看一下镜像文件中都打包了什么东西,那就可以通过一些方法将其挂载到一个目录,然后进行查看。.........

In_engineer的博客 7776

MTK设备树(DTB/DTBO)生成全链路解析:从mkdtimg工具到dtboimg.cfg配置

本文深入解析MTK平台设备树(DTB/DTBO)生成全链路,从DWS硬件配置到DTBO镜像生成的完整流程。详细介绍了drvgen工具链、dtboimg.cfg配置系统及mkdtimg打包工具的使用方法,为系统工程师提供实践指南,帮助优化嵌入式Linux开发中的硬件描述与配置管理。

weixin_42524226的博客 353

RK3568设备树从入门到实战:核心语法、外设配置与调试技巧

设备树是嵌入式Linux中用于描述硬件资源的核心机制,通过DTS、DTSI、DTB等文件实现硬件描述与内核代码的分离,使同一内核镜像能适配不同板卡。其原理是将寄存器地址、中断号、时钟、引脚复用等硬件信息以结构化文本表达,内核启动时解析并注册对应设备。这一机制大幅降低了板级适配成本,广泛应用于ARM Linux驱动开发、外设移植与系统裁剪等场景。以RK3568为例,其设备树采用芯片级DTSI与板级DTS的分层组织,覆盖I2C、触摸屏、PHY、摄像头等外设配置,并支持DTBO动态叠加。掌握设备树语法与调试方法,

weixin_33910460的博客 346

Linux设备树从入门到实战:dts/dtsi/dtb解析与RK3568驱动开发

设备树是Linux内核中描述硬件资源的核心机制,它通过dts/dtsi源码定义SoC与板级差异,编译为dtb后由内核解析,解决了传统板级文件硬编码、驱动耦合严重的问题。理解compatible匹配、reg、interrupts、clocks等属性的解析流程,是编写可复用平台驱动的基础。在嵌入式Linux工程实践中,设备树直接影响外设的实例化与资源分配,尤其对于瑞芯微RK3568平台,不同开发板的dtb选型、Ubuntu下修改设备树、以及OpenHarmony环境中的设备树适配,都是开发者高频遇到的场景。掌握

weixin_34221036的博客 359

OpenHarmony RK3568设备树移植实战:从选型到调试全解析

设备树(DTS)是嵌入式系统中描述硬件资源的关键机制,它通过树状节点将硬件信息与驱动逻辑解耦,大幅提升了内核移植和板级适配的效率。在OpenHarmony标准系统开发中,DTS的编写与调试直接关系到外设能否正常工作。本文以RK3568平台为例,从DTS/DTB/DTC关系、多板型选择策略出发,详细讲解串口、引脚复用(pinctrl)、电源域、显示及网络等核心节点的配置方法,并分享编译烧录与排错实战经验。掌握这些内容,能帮助开发者在非官方板卡上快速完成OpenHarmony适配,避免常见坑点。

weixin_34341117的博客 428

OpenHarmony设备树DTS实战:从RK3568外设适配到DTB编译排查

设备树(DTS)是嵌入式系统中描述硬件资源的声明式配置机制,它通过DTC编译为DTB二进制文件,供内核在启动时读取并完成外设匹配。在OpenHarmony多芯片适配场景中,设备树成为屏蔽硬件差异的关键,尤其RK3568等平台拥有数十个板级DTS变体,选错DTB常导致外设不识别或启动异常。理解compatible属性匹配、dtsi/dts分层继承、U-Boot加载DTB的流程,以及Overlay动态叠加机制,能显著提升硬件适配效率。本文从基础概念出发,结合RK3568开发板的真实调试经验,系统讲解设备树选型、

weixin_34414650的博客 555

Linux设备树与驱动开发实战:从原理到RK3568平台

设备树是嵌入式Linux中描述硬件资源的标准机制,它将板级信息从内核源码中解耦,通过dts与dtsi源文件编译生成dtb供内核解析。驱动与设备节点的匹配依赖compatible属性,节点会被转换为platform_device并绑定相应驱动。理解这一链路能大幅提升ARM平台开发效率。在瑞芯微RK3568等实际项目中,正确选择dts、配置pinctrl和GPIO资源是外设稳定运行的关键,probe失败、节点不生效等问题多源于描述错误或资源冲突。掌握设备树调试方法,如查看/proc/device-tree与dm

weixin_34034261的博客 500

【开源技术随笔】002 - 部分镜像解包命令介绍:boot.img、vendor-boot.img、dtbo.img

【开源技术随笔】002 - 部分镜像解包命令介绍:boot.img、vendor-boot.img、dtbo.img

|~~~热爱生活、努力学习的小伙汁~~~| 1769

设备树驱动开发实战:从dts/dtsi到compatible匹配全解析

在Linux内核开发中,硬件描述与驱动匹配是驱动工程师的必修课。设备树(Device Tree)作为将硬件描述与内核代码解耦的关键机制,已成为嵌入式Linux平台的标准做法。其源文件dts/dtsi通过dtc编译为dtb二进制,内核启动时将其解析为platform_device,并依据compatible属性与驱动的of_match_table进行精确匹配,从而触发probe流程。理解这一原理,能有效解决驱动不probe、资源获取失败、GPIO极性错误等常见问题。实际工程中,无论是中断、时钟还是寄存器地址解

weixin_34043301的博客 421

ROM修改进阶教程------dtbo.img分区文件解包打包修改刷新率操作步骤解析

从安卓p开始也就是安卓9.0系统分区中就有了dtbo.img的分区文件。dtbo.img分区文件是由多个dtb文件组成的,dtb文件是由dts文件编译来的,dts文件是明文类似也就是文档文件,可以看到一行行的代码。所以我们编译首先要把dtbo.img分解为多个dtb文件,然后再将dtb文件反编译为dts文件,然后修改屏幕刷新率,然后再将dts文件编译为dtb文件,再将dtb文件合成为dtbo.img

小马哥的专栏 4023

鸿蒙的设备树DTS怎么修改?-【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】

设备树修改不生效的原因:源码、编译产物、实际加载的dtb不一致;缓存(GN不跟踪板级dts、checkpoint不跟踪);还有引脚被占用、status状态等。

wanwuzhineng_01的博客 423

VCS和UVM常用编译选项

VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含.

qq_40571921的博客 9931

Codesys软运动控制进阶:用SMC_FreeEncoder为ECAT轴搭建一个“虚拟手轮”调试工具

本文详细介绍了如何利用Codesys的SMC_FreeEncoder功能为ECAT轴搭建虚拟手轮调试工具,解决自动化设备开发中的硬件依赖问题。通过软件模拟手轮脉冲信号,实现无硬件依赖的运动控制逻辑验证,显著提升调试效率。适用于汇川AM400等PLC平台,特别适合机械安装滞后或伺服驱动器故障时的调试场景。

weixin_33737774的博客 477

RK3568设备树与Linux驱动开发实战:从DTS到platform驱动匹配

从Linux内核硬件描述机制演进出发,介绍设备树如何取代传统硬编码,将板级硬件资源与驱动代码解耦。通过RK3568平台实例,讲解DTS、DTSI、DTB文件关系,以及GPIO、寄存器等资源描述语法。阐述驱动侧基于compatible的匹配原理和of_match_table作用,展示platform驱动如何读取设备树资源。结合实际调试经验,提供设备树编译、烧录、验证与常见问题排查方法,帮助开发者快速定位驱动不匹配问题。涵盖OpenHarmony场景下的设备树选择策略,助力嵌入式Linux驱动开发入门与进阶。

weixin_33889665的博客 407

手把手教你用Kali Linux搭建vulntarget-a靶场环境(附详细配置步骤)

本文详细介绍了如何在Kali Linux环境下搭建vulntarget漏洞靶场,包括环境规划、虚拟化平台配置、靶机系统部署及安全工具链配置等关键步骤。通过实战演练,帮助网络安全从业者和初学者掌握专业级漏洞实验平台的搭建与管理技巧,提升安全测试能力。

weixin_29279101的博客 107

OpenHarmony设备树完全指南:从DTS语法到RK3568实战适配

设备树是Linux内核中描述硬件资源的配置机制,通过DTS源文件与DTSI包含文件将硬件信息从代码中分离,再经编译器生成DTB供内核启动时解析。这种“配置即数据”的设计解决了硬件平台与内核代码的耦合问题,让同一套内核能灵活适配不同板卡。在OpenHarmony开发中,基于RK3568等平台做设备适配时,梳理设备树的目录结构、选型逻辑和编译流程尤为关键。掌握DTS基础语法、GPIO与pinctrl的配置技巧,以及利用dtc工具进行调试和差异对比,能大幅提升板卡外设适配效率。本文从设备树的核心原理出发,结合RK

weixin_34034670的博客 561

Linux平台CCS安装配置完整示例

手把手讲解在Linux系统中完成CCS安装与环境配置的全过程,涵盖关键步骤与常见问题解决,是查找ccs安装教程时不可多得的实战指南。

weixin_42601134的博客 514

ArcGIS Pro SDK (二十五)工作流管理器

【代码】ArcGIS Pro SDK (二十五)工作流管理器。

Winemonk 494

RK平台调屏必读:U-Boot为何直接沿用内核DTS,显示初始化机制全解析

在嵌入式Linux开发中,设备树(Device Tree)是连接硬件与驱动的核心配置载体,而U-Boot作为启动引导程序,其显示初始化逻辑往往让开发者困惑。对于Rockchip(RK)平台,U-Boot与内核共享同一份DTB(Device Tree Blob),屏参配置以内核DTS为唯一事实来源。这种“一源多投”的设计简化了调屏流程,避免了配置漂移,使U-Boot开机logo与内核DRM/KMS显示驱动保持高度一致。理解这一机制,需要掌握FDT解析、显示链路(VOP/DSI/LVDS)、DTB打包流程等基础

weixin_30861459的博客 262

【一 扣子客户案例合集】【 1.1 抖音电商:通过扣子智能体重塑电商服务新体验】

**摘要:**抖音电商借助扣子(Coze)智能体平台重塑客服体验,通过无代码开发、多模态交互和跨平台发布等功能,解决了传统客服高峰期压力大、成本高及响应机械等痛点。智能体采用直接面客与人工监管结合模式,实现高效精准服务,并通过解构流程、模块化设计优化系统架构。其技术优势包括零配置学习、意图识别、情绪感知等,实际应用中显著提升客服效率300%以上,改善用户体验。未来将进一步拓展至商品推荐、直播互动等场景,推动电商服务智能化升级。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1566

RK3568设备树实战:从DTS修改到外设驱动全链路解析

设备树(Device Tree)是Linux内核识别硬件的核心机制,其本质是描述硬件资源与驱动匹配关系的声明式配置语言。它通过compatible字符串、reg地址、interrupts等属性,将SoC寄存器映射、中断号、时钟源等底层信息结构化传递给内核,从而实现驱动自动绑定与资源分配。该机制大幅降低内核与硬件耦合度,支撑ARM平台广泛复用。在RK3568等Rockchip芯片上,典型应用场景包括千兆PHY(如YT8521)联网配置、MIPI摄像头(如OV5695)图像链路打通、EtherCAT主站SPI资

weixin_33991418的博客 294

仿真系列专栏介绍

大家好!欢迎来到我的仿真学习系列专栏!这是一个我在学习仿真技术过程中整理和分享的系列文章。作为一名正在不断学习和实践的工程师,我希望通过这个专栏,和大家一起探索仿真技术,尤其是在高速信号完整性方面的应用。

案例文章,高速信号 364

基于Python的海关进出口数据爬取与贸易关系分析

本文介绍了如何使用Python爬虫技术获取海关进出口数据,并基于这些数据进行贸易关系分析。文章详细阐述了数据采集、清洗、存储和分析的全过程,使用了最新的爬虫技术和数据分析方法,为国际贸易研究提供数据支持和技术参考。关键词:Python爬虫、海关数据、贸易分析、数据可视化、Selenium、Scrapy。

2201_76125261的博客 543
上一篇: 加密、解密、签名、验签、数字证书、CA浅析
下一篇: 一条指令,Windows11右键改回Windows10老版
Master Cui
博客等级 码龄9年 1408粉丝 224原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值