linux-kernel cross-compiling embedded-linux powerpc device-tree

linux kernel - ¿Cómo compilar archivos de origen del árbol de dispositivos dts de Linux a dtb?



linux-kernel cross-compiling (3)

Los árboles de dispositivos no necesitan compilarse con herramientas "conscientes de la arquitectura". El compilador dtc en su máquina ubuntu es probablemente lo suficientemente actual para compilar su árbol de dispositivos. O puede descargar la última fuente y compilarla usted mismo. El compilador dtc se puede encontrar aquí:

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

Hay algunos documentos buenos en ese paquete que lo ayudarán a comprender mejor los árboles de dispositivos en general.

Es bastante fácil compilar (y desmontar) árboles de dispositivos. Por ejemplo

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

Para obtener el árbol de dispositivos en texto desde el blob de árbol de dispositivos, haga lo siguiente:

$ dtc -I dtb -O dts p4080ds.dtb

¡Espero que esto ayude!

Tengo un archivo de árbol de dispositivos (.dts) y quiero compilar el archivo para mi placa basada en powerpc.

¿Cómo puedo hacerlo en mi máquina, que no está basada en powerpc? ¿Puedo hacerlo con el DTC instalado en mi sistema Ubuntu? ¿O será más como usar un compilador separado y pasar información ARCH (como usar una cadena de herramientas)?


make dtbs desde el árbol del kernel es otra forma común de compilarlos, ya que el lugar estándar para poner dts está debajo del árbol del kernel en los directorios del formulario ./arch/<arch>/boot/dts .

Esto termina llamando a dtc , pero podría funcionar mejor porque los posibles incluidos estarán en el lugar correcto.

Los dtbs se colocan en el mismo directorio que los dts.


  • dtc se puede instalar con este comando en linux:

    sudo apt-get install device-tree-compiler

  • puede compilar archivos dts o dtsi con este comando:

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

  • puede convertir dts a dtb con este comando:

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

  • puede convertir dtb a dts con este comando:

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