我們知道了在內核啟動時,是把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文件系統里面的設備樹