我正在寻找一种工具,它可以graphics化地表示在Linux内核中使用的硬件设备树。 我正在尝试了解特定arm芯片组的linux内核。 这将是一个非常有用的工具。
您可以尝试组件检查器工具。
它是QorIQ Configuration Suite的一部分,它是Eclipse的一个插件。
在这里下载。 (需要注册,可免费下载)
就个人而言,因为我大部分时间都在cmd行上,并且对vi
很沉迷,我发现它内置的代码折叠功能在dts
正确缩进的时候已经足够了。
在vi
设置热键命令折叠/展开代码块
通过.vimrc
添加到.vimrc
:
nnoremap <silent> <F5> zfa}<CR> nnoremap <silent> <F6> zo<CR>
使用上面的设置,要折叠一个块/节点,只需将光标移动到其任何行(标题除外),然后按F5 。 要展开折叠的块/节点,移动到折叠标题的行并按F6 。
这是一个部分折叠的dts在vi
看起来像什么。
dtc -O dts
sudo apt-get install device-tree-compiler dtc -I dtb -O dts -o a.dts a.dtb
为设备树a.dts
提供了一个良好缩进的文本表示,这很容易通过文本编辑器来理解。
dtc
上游位于内核树scripts/dtc/
。
在Ubuntu 2016上测试了Raspberry Pi 2的设备树,在2016-05-27-raspbian-jessie-qemu.img
的第一个分区中2016-05-27-raspbian-jessie-qemu.img
。
为了方便:
dtbs() ( dtc -I dtb -O dts -o - "$1"; ) dtsb() ( dtc -I dts -O dtb -o - "$1"; )
大多数桌面环境都有一些工具(KDE中的KinfoCenter)以图形方式显示包括设备树在内的完整系统信息。还有几种命令行工具,主要针对设备类型 – lsdev,lspci,lsusb,fdisk, lsscsi,lscpu,dmidecode等。Busybox(自从你提到embedded-linux)支持其中的一些命令。你也可以解析sysfs 。
但是,如果您只想知道“arm芯片组”中存在的设备,您为什么不看SOC的手册?