用于可视化Linux内核使用的设备树文件(dtb)的工具是什么?

31

我正在寻找一种可以以图形方式表示 Linux 内核中使用的硬件设备树的工具。 我正尝试了解适用于特定 ARM 芯片组的 Linux 内核。 这将是一个非常有用的工具。


7
你是在简单地询问如何显示 .dtb 文件的内容吗?如果是的话,fdtdump 可以帮到你。 - unixsmurf
1
我想要一个可以将dts或dtsi文件以图形方式显示的工具。 - Punit Soni
fdtdump正是我所需要的。dtc -I dtb -O dts <filename>也可以达到同样的效果。这里有一个GUI查看器:https://github.com/dev-0x7C6/fdt-viewer - undefined
5个回答

36

dtc -O dts

sudo apt-get install device-tree-compiler
dtc -I dtb -O dts -o a.dts a.dtb

使用以下命令将设备树文件a.dtb转储到标准输出,以获得良好缩进的文本表示形式,可用文本编辑器轻松理解:

dtc -I dtb -O dts -o - a.dtb
dtc -I dtb -O dts -o - a.dtb
dtc 的源代码在内核树本身中,位于 scripts/dtc/dtc.c 中。在 Ubuntu 16.04 上进行过测试,使用的是 Raspberry Pi 2 的设备树,在 2016-05-27-raspbian-jessie-qemu.img 的第一个分区中找到。

为了方便,我在我的.bashrc文件中添加了以下内容:

dtbs() ( dtc -I dtb -O dts -o - "$1" )
dtsb() ( dtc -I dts -O dtb -o - "$1" )

dtc 可以从运行中内核的 /proc 中提取 DTS,如以下所示:https://unix.stackexchange.com/questions/265890/is-it-possible-to-get-the-information-for-a-device-tree-using-sys-of-a-running


16

在Linux上,我们可以直接使用fdtdump打开dtb文件。

fdtdump dtb_file.dtb > /tmp/test.txt 

2
最适合快速检查内容的文本。 - urnenfeld

8
您可以尝试使用组件检查器工具。

enter image description here

它是QorIQ配置套件的一部分,是Eclipse的一个插件。

在此处下载这里 (需要注册。免费下载。)


个人而言,由于我大部分时间都在命令行界面上,并且很沉迷于vi,只要dts正确缩进,它内置的代码折叠功能就足够了。

通过添加以下行到.vimrc中设置热键命令来折叠/展开代码块:

nnoremap <silent> <F5> zfa}<CR>
nnoremap <silent> <F6> zo<CR>

通过上述设置,要折叠一个块/节点,只需将光标移动到其任意行(除标题外)并按下F5。要展开折叠的块/节点,请移动到带有折叠标题的行并按下F6

以下是在vi中部分折叠的dts示例。 enter image description here


QorIQ适用于任何目标CPU吗?还是说无论如何它只是某种树形编辑器? - Naze Kimi
2
很遗憾,QorIQ配置套件已经不再提供了,有什么替代方案吗? - sherpya
1
@sherpya 我使用 Visual Studio CodeDeviceTree 扩展。 - user8908459

3

这是最好的答案。 - 71GA

2

在阅读这个问题后,你们很多人已经发现了,组件检查器工具似乎不再可用。

Visual Studio Code(免费)提供了一个通过市场提供的扩展,称为DeviceTree,它有助于浏览设备树文件(注意:目前仅支持 .dts 文件)。它似乎不如组件检查器工具好,但它可以执行基本功能,如高亮和折叠。


3
它不支持读取 dtb 文件,就像提问中所问的那样。仅支持 dts 文件... - Bartel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接