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