0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux设备树原始dtb格式

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-30 15:22 次阅读

在根文件系统中查看设备树,是一种不错的调试手段。因为很多时候会出现你修改了 dts 文件,并且也编译了新的 dtb,但是下载到板子上的还是以前的dtb,因此查看板子中真实生效的设备树配置信息是很重要的。

1、设备树原始 dtb 格式

在如下目录,fdt 就是我们的 设备树*.dtb文件

/sys/firmware/fdt //原始dtb文件

图片

执行以下指令可看

hexdump -C /sys/firmware/fdt

这个命令打开后是十六进制模式,如图:

图片

这样是很难看到真实配置的,可以把 fdt 弄出来,放到 ubuntu 中,使用 Linux 源码自带的 DTC
工具反编译,查看真实的配置。反编译命令为

/script/dtc/dtc -I dtb -O dts -o xxx.dts xxx.dtb

DTS 是设备树源码文件,DTB 是将 DTS 编译以后得到的二进制文件。将 .c 文件编译为 .o 需要用到 gcc 编译器,那么将.dts编译为.dtb 需要什么工具呢?需要用到 DTC 工具!反编译也是这个工具,反编译后可以看到方便查看的设备树,字符串会恢复,数字会变成十六进制格式。

在 u-boot 启动内核时,会将 dtb 文件的内存地址传递给内核,并将其所占内存保留;因此,我们在内核启动后,访问该内存,获得原始的dtb。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19018

    浏览量

    303265
  • Linux
    +关注

    关注

    87

    文章

    11229

    浏览量

    208926
  • 设备树
    +关注

    关注

    0

    文章

    38

    浏览量

    3110
收藏 人收藏

    评论

    相关推荐

    基于Android7.1 高通8953 平台下零死角玩转设备DTS【2018更新】【申精】

    _如何对设备DTB)进行反汇编设备源码(DTS)【创科之龙_安卓开发】第04课_零死角认识设备
    发表于 07-09 20:20

    迅为-IMX6开发板设备-Linux内核配置两路can

    1、修改Android6 源码的设备文件imx6qdl-sabresd.dtsi,添加如下图所示的can2节点,蓝色字体是添加的内容。2、修改完后,保存退出。然后重新编译 Linux 内核,参考第
    发表于 06-24 10:00

    stm32mp1-seeed-npi-full.dtb设备

    stm32mp1-seeed-npi-full.dtb这个设备。直接修改uEnv.txt文件,此文件会在uboot引导Linux内核的时候主动去加载/boot/dtbs/4.19.9
    发表于 08-03 06:06

    如何编译设备Linux内核镜像文件

    安装Linux内核源码,清理Linux内核,配置Linux内核照着实验指导书上敲命令就完事了配置Linux内核的这一步骤,可以跳过:2.编译设备
    发表于 12-20 07:11

    uboot如何给linux内核所需要的kernel-dtb

    uboot如何获取要加载的设备呢?uboot如何给linux内核所需要的kernel-dtb呢?
    发表于 03-04 07:04

    Linux内核的设备DTS使用方法详解

    1、设备的简介Linux 内核3.X之后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板级细节的代码(比如platform_device
    发表于 05-06 16:14

    ARM Linux设备的组成和结构

    编译后的设备传递给 Linux 内核。DTS 、 DTC 和 DTB 等1.DTS文件 .dts 是一种 ASCII 文本格式
    发表于 05-11 16:28

    arm linux设备都包括哪些基本信息呢

    的scripts/dtc中。在内核是能设备的时候主机工具DTC会被编译出来。DTB经编译后的二进制设备文件
    发表于 05-24 16:04

    为什么无法使用STM32CubeMX生成的原始设备启动安装STM32MP151CAA3 MPU的原始板?

    我正在尝试使用原始设备启动安装了 STM32MP151CAA3 MPU 的原始电路板。但是,按照以下步骤无法启动电路板。的--环境-- 主机:Intel Core i7 3.6GHz
    发表于 01-17 08:46

    IMX8MM设备覆盖,无法在uboot中加载.dtb和.dtbo是怎么回事?

    覆盖 - 无法加载 .dtb 和 .dtbo我正在使用 iMx8mm 板,并且在加载 .dtb 和 .dtbo 文件时创建了 .dtbo(设备 blob 覆盖)文件并将其复制到 /l
    发表于 04-06 08:33

    编译设备dts为dtb,制作根文件系统

    九、编译设备dts为dtb 前面的linux内核源码目录中已经包含了设备编译器Device
    发表于 02-08 16:59 2332次阅读

    你眼中的Linux设备是怎样的?

    设备(Device tree)是一套用来描述硬件属相的规则。ARM Linux采用设备机制源于2011年3月份
    发表于 04-29 17:29 900次阅读

    设备的传递及kernel 对设备的解析

    当 U-Boot 将设备加载到内存指定位置后,ARM 内核的 SoC 以通用寄存器 r2 来传递 dtb 在内存中的地址。kernel 获取到该地址后对 dtb 文件做进一步的处理。
    的头像 发表于 07-29 11:19 2373次阅读
    <b class='flag-5'>设备</b><b class='flag-5'>树</b>的传递及kernel 对<b class='flag-5'>设备</b><b class='flag-5'>树</b>的解析

    Linux设备目录结构dtb格式

    要的。 设备目录结构 dtb 格式 /sys/firmware/devicetree 以目录结构程现的 dtb 文件, 根节点对应 bas
    的头像 发表于 07-30 15:25 754次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>设备</b><b class='flag-5'>树</b>目录结构<b class='flag-5'>dtb</b><b class='flag-5'>格式</b>

    Linux设备详解(二) DTB文件格式

    一、背景     dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备解析相关的内核代
    的头像 发表于 08-10 16:02 4927次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>设备</b><b class='flag-5'>树</b>详解(二) <b class='flag-5'>DTB</b>文件<b class='flag-5'>格式</b>