web-dev-qa-db-ja.com

Linuxカーネルが使用するデバイスツリーファイル(dtb)を視覚化するツール?

Linuxカーネルで使用されるハードウェアデバイスツリーをグラフィカルに表現できるツールを探しています。特定のARMチップセットのLinuxカーネルを理解しようとしています。これは非常に便利なツールです。

17
Punit Soni

Component inspectorツールを試すことができます。

enter image description here

EclipseのプラグインであるQorIQ Configuration Suiteの一部です。

ダウンロードここ。 (登録が必要です。無料でダウンロードできます。)


個人的には、ほとんどの場合cmd-lineを使用しており、viにはまっていますが、dtsは適切にインデントされています。

viのコードブロックを折りたたむ/展開するためのホットキーコマンドを設定する
次の行を.vimrcに追加することにより:

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

上記の設定で、ブロック/ノードを折りたたむには、カーソルをその行(タイトルを除く)のいずれかに移動し、 F5。折りたたまれたブロック/ノードを展開するには、折りたたまれたタイトルの行に移動して、 F6

viで部分的に折りたたまれたdtsは次のようになります。 enter image description here

8
TheCodeArtist

dtc -O dts

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

デバイスツリーa.dtsのインデントされたテキスト表現を提供します。これはテキストエディターで簡単に理解できます。または、次のコマンドでstdoutにダンプします。

dtc -I dtb -O dts -o - a.dtb

dtcのソースコードは、カーネルツリー自体の scripts/dtc/dtc.c にあります。

2016-05-27-raspbian-jessie-qemu.imgの最初のパーティションにあるRaspberry Pi 2のデバイスツリーを使用してUbuntu 16.04でテストされています。

便宜上、.bashrcに入れます:

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

dtcは、次のようにライブカーネルのDTSから/procから抽出することもできます。 https://unix.stackexchange.com/questions/ 265890/is-it-possible-to-get-the-information-for-a-device-tree-using-sys-of-a-running

Linuxでは、fdtdumpを使用してdtbファイルを直接開くことができます

fdtdump dtb_file.dtb > /tmp/test.txt 
3
Vamsi

多くの方がこの質問を読んで理解したように、コンポーネントインスペクタツールはもう利用できないようです。

Visual Studio Code (無料)は、マーケットプレイスを通じて DeviceTree と呼ばれる拡張機能を提供します。これは、デバイスツリーファイルのナビゲートに役立ちます。コンポーネントインスペクタツールほど優れているようには見えませんが、強調表示や折りたたみなどの基本的な機能を実行します。

2
user8908459