《设备树 — 根文件系统中查看设备树(六)》
我们知道了在内核启动时,是把dtb文件所在的内存块保留了下来。
而这个内存块是可以在内核中查看的。
查看的位置在sys文件系统中。
因为dtb文件是二进制文件,所以要用hexdump命令来查看。
hexdump -C /sys/firmware/fdt
部分信息如下,和我们传给内核的dtb文件里的完全一样
当然在/sys/firmware/文件下还有另一个目录文件
接下来我们查看转换后的设备节点文件
devicetree目录下的是叫base的根目录。
之后里面就是按照dts写的那样组织的
通过这里可以查看各个子节点或者属性,比如查看compatible属性
也可以查看以32bit表示的整数
这里要说的是对于函有reg节点的属性,一般我们在写dts的时候是在节点名字后面加上地址的即 node-name@unit-adderss
所以如果我们写的时候名字后面不跟地址,内核dtb转换device_node的时候名字会自动加上@unit-adderss的
在内核的/sys/devices/platform目录下是展现的现在的所有注册的的平台设备
这里要说明的是如果设备下面有of_node,就证明这个platform_device是通过设备树传参来创建的。
当然这个节点是一个连接文件,它指向的是刚才前面在/sys/firmware/devicetree/base/目录下的设备节点
当然一个在/sys/devices/platform/目录下的设备若是没有of_node的一个链接文件,那么它就不是通过设备树文件创建的。
可能是内核编译的时候创建或者通过安装模块创建。
最后要说明的是proc文件系统里面的device-tree指向的就是sys文件系统里面的设备树