wake-up-neo.net

Wie kompiliere ich dts Linux-Gerätebaum-Quelldateien in dtb?

Ich habe eine Gerätebaumdatei (.dts) und möchte die Datei für mein PowerPC-basiertes Board kompilieren.

Wie kann ich das auf meinem Rechner machen, der nicht auf PowerPC basiert? Kann ich das mit dem auf meinem Ubuntu-System installierten DTC machen? Oder ähnelt es eher der Verwendung eines separaten Compilers und der Übergabe von Arch-Informationen (wie die Verwendung einer Toolchain)?

33
mdsingh

Gerätebäume müssen nicht mit "architekturbewussten" Tools kompiliert werden. Der dtc-Compiler auf Ihrem Ubuntu-Computer ist wahrscheinlich aktuell genug, um Ihren Gerätebaum zu kompilieren. Oder Sie können die neueste Quelle herunterladen und selbst kompilieren. Den dtc-Compiler finden Sie hier:

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

Das Paket enthält einige gute Dokumente, mit denen Sie die Gerätebäume im Allgemeinen besser verstehen können.

Es ist ziemlich einfach, Gerätebäume zu kompilieren (und zu disassemblieren). Beispielsweise

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

Gehen Sie folgendermaßen vor, um den Gerätebaum in Text aus dem Gerätebaum-Blob abzurufen:

$ dtc -I dtb -O dts p4080ds.dtb

Hoffe das hilft!

38
challinan

make dtbs

Dies aus dem Kernelbaum heraus zu tun, ist eine weitere übliche Methode, um sie zu kompilieren, da der Standardort, an dem dts abgelegt wird, unter dem Kernelbaum in Verzeichnissen der Form ./Arch/<Arch>/boot/dts/.

Dies führt dazu, dass dtc aufgerufen wird, funktioniert jedoch möglicherweise besser, da potenzielle Includes an der richtigen Stelle sind.

dtb-dateien werden im selben verzeichnis wie die dts abgelegt.

  • dtc kann installiert mit diesem Befehl unter Linux sein:

    Sudo apt-get install device-tree-compiler

  • mit diesem Befehl können Sie compiledts oder dtsi Dateien erstellen:

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

  • mit diesem Befehl können Sie convertdts in dtb konvertieren:

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

  • mit diesem Befehl können Sie convertdtb in dts konvertieren:

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

12
Mojtaba Ahmadi