Answers:
/proc/device-tree
要么 /sys/firmware/devicetree/base
我认为两者都是别名,/sys/firmware/devicetree/base
可能是在驯服之后的更好选择/proc
。
然后,您可以从文件访问dts属性:
hexdump /sys/firmware/devicetree/base/apb-pclk/clock-frequency
整数的输出格式为二进制,因此hexdump
是必需的。
dtc -I fs
从文件系统获取完整的设备树:
sudo apt-get install device-tree-compiler
dtc -I fs -O dts /sys/firmware/devicetree/base
将dts输出到stdout。
另请参阅:如何列出内核设备树| Unix和Linux堆栈交换
dtc
在Buildroot中
Buildroot有一个BR2_PACKAGE_DTC=y
配置可放入dtc
根文件系统中。
量化宽松 -machine dumpdtb
如果您在QEMU中运行Linux,则如果未使用显式提供DTB,则QEMU会自动生成DTB -dtb
,因此它也可以直接使用以下命令转储它:
qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine dumpdtb=dtb.dtb
如在https://lists.gnu.org/archive/html/qemu-discuss/2017-02/msg00051.html所述
在Linux内核v4.19 arm64上使用此QEMU + Buildroot安装程序进行了测试。
我不确定我是否正确理解您。
如果您使用的是使用dtb引导的系统,则应在debugfs中访问设备树。
您也可以尝试Pantelis Antoniou的dtc工具,其中包括fdtdump和fdtget,它们可以从blob中打印dts。
如果您根本没有设备树,也没有从dtb引导启动,那么您必须亲自检查机器代码,并将所有设备特定的属性和节点添加到dts中。没有为此类引导生成“合成”设备树。起点将是一台相似的机器或父计算机,然后逐个系统地工作。
dtb
可以通过通过debugfs是可访问但将依靠CONFIG_DEBUG_FS
在.config
即使组仍然在单纯心血来潮,他们实际上使用的dtb
,开始时,我看这份材料?因此,由于运气不好,他们都没有使用设备树接口的某种直接内核修补程序,对吗?因此,这将意味着万不得已的机器代码,因为它们违反了GPLv2并关闭了内核的源代码,对吗?