Dtc-1.7.0

Introduction to Dtc

The dtc package contains the Device Tree Compiler for working with device tree source and binary files and also libfdt, a utility library for reading and manipulating device trees in the binary format.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

Dtc Dependencies

Optional

libyaml-0.2.5, setuptools_scm-7.1.0, SWIG-4.2.1, and texlive-20240312

Installation of Dtc

Install dtc by running the following commands:

mkdir build &&
cd    build &&

meson setup --prefix=/usr        \
            --buildtype=release  \
            -Dpython=disabled .. &&
ninja

To test the results, issue: meson test -v. Two tests named cell-overflow.dts and cell-overflow-results.dts are known to fail.

Now, as the root user:

ninja install

Still as the root user, remove the useless static library:

rm /usr/lib/libfdt.a

If you have texlive-20240312 installed, you can build the PDF format of the documentation by issuing the following command:

pushd ../Documentation
  latexmk -bibtex --pdf dtc-paper &&
  latexmk -bibtex --pdf dtc-paper -c
popd

To install the documentation, as the root user issue the following command:

cp -R ../Documentation -T /usr/share/doc/dtc-1.7.0

If you have installed both setuptools_scm-7.1.0 and SWIG-4.2.1 and you wish to install the Python 3 binding of this package, build the Python 3 module:

sed -i '/use_scm_version/a "fallback_version": "1.7.0",' ../setup.py &&
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir ..

As the root user, install the Python 3 module:

pip3 install --no-index --find-links=dist --no-cache-dir --no-user

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dpython=disabled: This switch prevents building the Python 3 binding with the deprecated method (running setup.py directly). We will build the Python 3 binding with the pip3 wheel command separately if wanted.

sed ... ../setup.py: This command allows building the Python 3 binding from a release tarball (instead of a Git checkout).

Contents

Installed Programs: convert-dtsv0, dtc, dtdiff, fdtdump, fdtget, fdtoverlay, and fdtput
Installed Library: libfdt.so
Installed Directory: /usr/lib/python3.12/site-packages/libfdt-1.7.0.dist-info

Short Descriptions

convert-dtsv0

converts device tree v0 source to device tree v1

dtc

compiles device tree source (dts) to device tree binary blob (dtb), or de-compiles dtb to dts

dtdiff

compares two different device tree

fdtdump

prints a readable version of a flat device-tree file

fdtget

reads values from device-tree

fdtoverlay

applies a number of overlays to a base device tree blob

fdtput

writes a property value to a device tree

libfdt.so

is a utility library for reading and manipulating device trees in the binary format