设备树学习(十、在根文件系统中查看设备树)

 

在设备树第七节中,我们知道了在内核启动时,是把dtb文件所在的内存块保留了下来。

而这个内存块是可以在内核中查看的。

查看的位置在sys文件系统中。

因为dtb文件是二进制文件,所以要用hexdump命令来查看。

 hexdump -C  /sys/firmware/fdt 

部分信息如下,和我们传给内核的dtb文件里的完全一样

设备树学习(十、在根文件系统中查看设备树)_第1张图片

 

当然在/sys/firmware/文件下还有另一个目录文件

通过上面可以看到fdt文件只能查看

 

接下来我们查看转换后的设备节点文件

devicetree目录下的是叫base的根目录。

 

之后里面就是按照dts写的那样组织的

设备树学习(十、在根文件系统中查看设备树)_第2张图片

通过这里可以查看各个子节点或者属性,比如查看compatible属性

设备树学习(十、在根文件系统中查看设备树)_第3张图片

 

也可以查看以32bit表示的整数

 

这里要说的是对于函有reg节点的属性,一般我们在写dts的时候是在节点名字后面加上地址的即   node-name@unit-adderss

[label:] node-name[@unit-address] { 
    [properties definitions]          //就是属性定义,对当前节点描述,将硬件信息提供给内核处理
    [child nodes]                     //子节点 
 } 

所以如果我们写的时候名字后面不跟地址,内核dtb转换device_node的时候名字会自动加上@unit-adderss的

 

在内核的/sys/devices/platform目录下是展现的现在的所有注册的的平台设备

设备树学习(十、在根文件系统中查看设备树)_第4张图片

这里要说明的是如果设备下面有of_node,就证明这个platform_device是通过设备树传参来创建的。

当然这个节点是一个连接文件,它指向的是刚才前面在/sys/firmware/devicetree/bse/目录下的设备节点

 

当然一个在/sys/devices/platform/目录下的设备若是没有of_node的一个链接文件,那么它就不是通过设备树文件创建的。

可能是内核编译的时候创建或者通过安装模块创建。

设备树学习(十、在根文件系统中查看设备树)_第5张图片

 

最后要说明的是proc文件系统里面的device-tree指向的就是sys文件系统里面的设备树

 

 

你可能感兴趣的:(设备树,设备树)