系统相关
首页 > 系统相关> > linux – 是否有可能使用正在运行的内核的/ sys获取设备树的信息?

linux – 是否有可能使用正在运行的内核的/ sys获取设备树的信息?

作者:互联网

通常对于arm系统,设备树向内核(Linux)提供硬件信息.这些设备树以dts(设备树源)文件的形式存在,这些文件被编译并加载到内核中.问题是我无法访问这样的dts文件,甚至没有访问dtb文件.

我可以在机器上访问/ sys和/ proc,我想询问是否允许我“猜测正确的值”在dts中使用?

如果这个问题的答案还取决于首先是否使用了设备树界面(即创建并提供给内核的dtb)而不是更多的黑客,那么潜在的答案还可以突出显示方面“我们只是转移到vanilla和补丁内核以解决我们内核的设备信息问题“-solution?

解决方法:

/ 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.

了解到:How to list the kernel Device Tree | Unix & Linux Stack Exchange

在Linux内核v4.19 arm64上测试了this QEMU + Buildroot setup.

标签:device-tree,linux,arm,linux-kernel,reverse-engineering
来源: https://codeday.me/bug/20190809/1626401.html