Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compile dts Linux device tree source files to dtb?

I have a device tree file (.dts) and I want to compile the file for my powerpc based board.

How can I do it on my machine, which is not powerpc based?? Can I do it with the DTC installed on my Ubuntu system? Or will it be more like using a separate compiler and passing ARCH information (like using a toolchain)?

like image 666
mdsingh Avatar asked Feb 10 '14 07:02

mdsingh


People also ask

How do I compile a DTS file in Linux?

You need to install the toolchain, sources and the rest of dependencies and compile the sources from a host linux-system. The you need to flash the new images in your Jetson system. You can access the Kernel sources and make changes in the drivers and the build a new image.


2 Answers

Device trees do not need to be compiled with "architecture-aware" tools. The dtc compiler on your ubuntu machine is probably current enough to compile your device tree. Or you can download the latest source and compile it yourself. The dtc compiler can be found here:

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

There are some good documents in that package that will help you better understand device trees in general.

It's pretty easy to compile (and disassemble) device trees. For example

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

To get the device tree in text from from the device tree blob, do this:

$ dtc -I dtb -O dts p4080ds.dtb 

Hope this helps!

like image 132
challinan Avatar answered Sep 24 '22 20:09

challinan


make dtbs

Doing this from the kernel tree is another common way to compile them, since the standard place to put dts is under the kernel tree in directories of the form ./arch/<arch>/boot/dts/.

This ends up calling dtc, but might work better because potential includes will be in the right place.

dtb files are placed in the same directory as the dts.