web-dev-qa-db-ja.com

dts Linuxデバイスツリーソースファイルをdtbにコンパイルする方法は?

デバイスツリーファイル(.dts)があり、powerpcベースのボード用にファイルをコンパイルしたい。

Powerpcベースではないマシンでどうすればよいですか? UbuntuシステムにインストールされたDTCで実行できますか?または、別のコンパイラを使用してArch情報を渡す(ツールチェーンを使用するなど)ようになりますか?

33
mdsingh

デバイスツリーは、「アーキテクチャ対応」ツールでコンパイルする必要はありません。 ubuntuマシンのdtcコンパイラは、おそらくデバイスツリーをコンパイルするのに十分な最新のものです。または、最新のソースをダウンロードして、自分でコンパイルすることもできます。 dtcコンパイラは次の場所にあります。

https://git.kernel.org/pub/scm/utils/dtc/dtc.git

そのパッケージには、一般的なデバイスツリーの理解に役立つ優れたドキュメントがいくつかあります。

デバイスツリーのコンパイル(および逆アセンブル)は非常に簡単です。例えば

$ dtc -O dtb -o p4080ds.dtb p4080ds.dts

デバイスツリーBLOBからテキストのデバイスツリーを取得するには、次の操作を行います。

$ dtc -I dtb -O dts p4080ds.dtb

お役に立てれば!

38
challinan

make dtbs

カーネルツリーからこれを行うことは、それらをコンパイルするもう1つの一般的な方法です。dtsを置く標準的な場所は、./Arch/<Arch>/boot/dts/という形式のディレクトリ内のカーネルツリーの下にあるからです。

これはdtcを呼び出すことになりますが、潜在的なインクルードが適切な場所にあるため、うまく機能する可能性があります。

dtbファイルは、dtsと同じディレクトリに配置されます。

  • dtcにはinstalledを指定できます(Linuxの場合:

    Sudo apt-get install device-tree-compiler

  • 次のコマンドでcompiledtsまたはdtsiファイルを作成できます。

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

  • 次のコマンドでconvertdts to dtbにできます。

    dtc -I dts -O dtb -f devicetree_file_name.dts -o devicetree_file_name.dtb

  • 次のコマンドでconvertdtb to dtsにできます。

    dtc -I dtb -O dts -f devicetree_file_name.dtb -o devicetree_file_name.dts

12
Mojtaba Ahmadi