7. 在根文件系统中查看设备树

在根文件系统中查看设备树,是一种不错的调试手段。

一、对设备树的描述之原始dtb格式

a. /sys/firmware/fdt // 原始dtb文件
hexdump -C /sys/firmware/fdt

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

二、对设备树的描述之目录结构dtb格式

b. /sys/firmware/devicetree
以目录结构程现的dtb文件, 根节点对应base目录, 每一个节点对应一个目录, 每一个属性对应一个文件

dts文件描述:
/ {
    model = "SMDK24440";
    compatible = "samsung,smdk2440";

    #address-cells = <1>;
    #size-cells = <1>;
        
    memory@30000000 {
        device_type = "memory";
        reg =  <0x30000000 0x4000000>;
    };
/*
    cpus {
        cpu {
            compatible = "arm,arm926ej-s";
        };
    };
*/  
    chosen {
        bootargs = "noinitrd root=/dev/mtdblock4 rw init=/linuxrc console=ttySAC0,115200";
    };

    
    led {
        compatible = "jz2440_led";
        pin = <S3C2410_GPF(5)>;
    };
};

内核中目录结构dtb格式:

三、内核中现存的所有platform_device

c. /sys/devices/platform // 系统中所有的platform_device, 有来自设备树的, 也有来有.c文件中注册的;
对于来自设备树的platform_device,可以进入 /sys/devices/platform/<设备名>/of_node 查看它的设备树属性;

对于有of_node属性的platform_device,证明其来源于dtb。

备注:/proc/device-tree 是链接文件, 指向 /sys/firmware/devicetree/base

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容