macOS
brew install dtclocal Homebrew formula metadata
sudo port install dtcMacPorts ports tree · cross/dtc/Portfile · source: api.github.com
brew
Device tree compiler. Version 1.8.1 via Homebrew; verified 2026-05-28.
install
brew install dtclocal Homebrew formula metadata
sudo port install dtcMacPorts ports tree · cross/dtc/Portfile · source: api.github.com
sudo apk add dtcAlpine Linux edge package indexes · dtc · source: dl-cdn.alpinelinux.org
sudo dnf install dtcFedora Rawhide package metadata · dtc · source: dl.fedoraproject.org
nix profile install nixpkgs#dtcnixpkgs package indexes · pkgs/by-name/dt/dtc/package.nix · source: api.github.com
sudo pacman -S dtcArch Linux sync databases · dtc · source: geo.mirror.pkgbuild.com
sudo zypper install dtcopenSUSE Tumbleweed package metadata · dtc · source: download.opensuse.org
winget install --id oss-winget.dtc -eWindows Package Manager source index · oss-winget.dtc · source: cdn.winget.microsoft.com
overview
Device tree compiler
history
dtc is the Device Tree Compiler, the upstream toolchain for converting human-readable Devicetree Source files into binary Devicetree Blob files and back. It is a small command-line package, but it sits on a critical path for Linux, embedded boards, bootloaders, firmware descriptions, and hardware bring-up.
The Linux kernel documentation explains the historical setting: Devicetree came from Open Firmware as a way for firmware to describe hardware to an operating system, long used on PowerPC and SPARC. In 2005, PowerPC Linux cleanup required DT support broadly, and the Flattened Device Tree format was created so bootloaders such as U-Boot and kexec could pass a binary blob to the kernel without requiring a full Open Firmware implementation.
dtc is the userspace compiler around that format. Its manual says the compiler takes a device tree in one format and emits another, typically compiling DTS source into DTB binary output, while also supporting filesystem-style input, assembly output, YAML intermediate output, libfdt, fdtdump, fdtget, fdtput, fdtoverlay, and related tools.
The upstream repository is maintained on git.kernel.org by the DTC group. The official manual names git.kernel.org as the source location and gives the HTTP(S) upstream repository URL, making it the authoritative repo rather than a package-manager mirror.
dtc adoption follows Linux and embedded adoption rather than an application popularity curve. Whenever a board port, bootloader, firmware workflow, or kernel build needs DTS-to-DTB compilation or libfdt tools, dtc becomes part of the build or debugging environment.
Package-manager coverage is broad: the input package metadata records Alpine, Homebrew, Fedora/DNF, MacPorts, Nix, Arch/pacman, winget, and zypper packages. Homebrew analytics are much higher than the other packages in this batch, which fits dtc's role as infrastructure pulled in by embedded, kernel, and hardware workflows.
The core command compiles between input formats such as `dts`, `dtb`, and filesystem representation, and output formats such as `dtb`, `dts`, assembly, and YAML. Common workflows include compiling board `.dts` files, decompiling `.dtb` blobs for inspection, generating overlays with symbol and fixup metadata, and using libfdt utilities in scripts.
The package has no user config file or credentials. It is a compiler/tool suite whose behavior is driven by command-line options and source files.
dtc is significant because it is one of those packages that looks small in a package list but represents an entire hardware-description ABI. If you build kernels, bootloaders, board support packages, or firmware images, `dtc` is often just there, quietly turning text descriptions into boot-time data.
For package nerds, it is also a reminder that not all important packages are user-facing applications. dtc is plumbing: versioned tarballs from kernel.org, a dual GPL/BSD license model, libfdt consumers, distro packaging, and an executable family that shows up anywhere embedded Linux work happens.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
convert-dtsv0 | cli | global executable | |
dtc | cli | global executable | |
dtdiff | cli | global executable | |
fdtdump | cli | global executable | |
fdtget | cli | global executable | |
fdtoverlay | cli | global executable | |
fdtput | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://git.kernel.org/pub/scm/utils/dtc/dtc
install metadata
| Package key | brew:dtc |
|---|---|
| Version | 1.8.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/dtc |
| Homepage | https://git.kernel.org/pub/scm/utils/dtc/dtc.git |
| Repository | https://git.kernel.org/pub/scm/utils/dtc/dtc.git |
| Upstream docs | https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tree/Documentation |
| License | GPL-2.0-or-later OR BSD-2-Clause |
| Source archive | https://mirrors.edge.kernel.org/pub/software/utils/dtc/dtc-1.8.1.tar.xz |
| Last updated | 2026-05-28T04:27:00Z |
| Pulse | updated |
| Dependencies | libyaml |
| Build dependencies | meson, ninja, pkgconf |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | dtc |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
dtc
nix profile install nixpkgs#dtcdtc 1.7.2-r1
Device Tree Compiler
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/
sudo apk add dtcdtc-dev 1.7.2-r1
Device Tree Compiler (development files)
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/
sudo apk add dtc-devlibfdt 1.7.2-r1
Device tree library
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/
sudo apk add libfdtpy3-libfdt 1.7.2-r1
Device tree library for Python 3
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/
sudo apk add py3-libfdtpy3-libfdt-pyc 1.7.2-r1
Precompiled Python bytecode for py3-libfdt
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/
sudo apk add py3-libfdt-pycdtc 1.8.1-2.fc45
Device Tree Compiler
sudo dnf install dtclibfdt 1.8.1-2.fc45
Device tree library
sudo dnf install libfdtlibfdt-devel 1.8.1-2.fc45
Development headers for device tree library
sudo dnf install libfdt-devellibfdt-static 1.8.1-2.fc45
Static version of device tree library
sudo dnf install libfdt-staticmingw32-libfdt 1.8.1-2.fc45
MinGW Device tree library
sudo dnf install mingw32-libfdtmingw32-libfdt-static 1.8.1-2.fc45
Static version of MinGW Device tree library
sudo dnf install mingw32-libfdt-staticmingw64-libfdt 1.8.1-2.fc45
MinGW Device tree library
sudo dnf install mingw64-libfdtmingw64-libfdt-static 1.8.1-2.fc45
Static version of MinGW Device tree library
sudo dnf install mingw64-libfdt-staticpython3-libfdt 1.8.1-2.fc45
Python 3 bindings for device tree library
sudo dnf install python3-libfdtdtc 1:1.7.2-1
Device Tree Compiler
sudo pacman -S dtcsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.