I am looking for a tool which can graphically represent the hardware device tree used in linux kernel. I am trying to understand linux kernel for particular arm chipset. It would be a really useful tool to have.
4 Answers
You can try the Component inspector tool.
It is part of QorIQ Configuration Suite which is a plugin for Eclipse.
Download here. (Requires registration. Free to download.)
Personally as i am on the cmd-line most of the time, and quite addicted to vi
, i find its built-in code folding capabilities are somewhat sufficient as long as the dts
is properly indented.
Setup hot-keys commands to fold/expand blocks of code in vi
by adding the following lines to .vimrc
:
nnoremap <silent> <F5> zfa}<CR>
nnoremap <silent> <F6> zo<CR>
With the above setup, to fold a block/node, simply move the cursor onto any of its lines(except the title) and hit F5. To expand a folded block/node, move to the line with the folded title and hit F6.
Here is what a partially folded dts looks like in vi
.
dtc -O dts
sudo apt-get install device-tree-compiler
dtc -I dtb -O dts -o a.dts a.dtb
gives a well indented textual representation of the device tree a.dts
, which is easy to understand with a text editor. Or dump it to stdout with:
dtc -I dtb -O dts -o - a.dtb
The source code for dtc
is present in the kernel tree itself at scripts/dtc/dtc.c
Tested on Ubuntu 16.04, with the device tree of Raspberry Pi 2, found in the first partition of 2016-05-27-raspbian-jessie-qemu.img
.
For convenience I have in my .bashrc
:
dtbs() ( dtc -I dtb -O dts -o - "$1" )
dtsb() ( dtc -I dts -O dtb -o - "$1" )
dtc
can also extract the DTS from /proc
of a live kernel as shown at: https://unix.stackexchange.com/questions/265890/is-it-possible-to-get-the-information-for-a-device-tree-using-sys-of-a-running
As many of you have figured out after reading this question, it appears that the Component Inspector Tool is no longer available.
Visual Studio Code (free) provides an extension through the marketplace called DeviceTree which helps in navigating device tree files (NOTE: - .dts
-only files are supported for now). It does not appear to be as good as the Component Inspector Tool but it does perform basic functions like highlighting and collapsing.