Dtbtool

From postmarketOS Wiki

The dtbtool is needed to combine multiple dtb (device tree blob) files into one dt.img file, that can then be attached to the end of the boot.img for Android devices (postmarketos-mkinitfs does that).

Do I need it?

You only need this tool if pmbootstrap bootimg_analyze on a known working boot.img file for your device outputs:

deviceinfo_bootimg_qcdt="true"

Using an alternative version

There exist lots of versions of this dtbtool. Most of our devices works with the (Python) version from Skales, which is properly versioned and maintained. However, it is incompatible with some (older?) kernels, where the dt.img file was properly generated with code based on the original C version. So, at the time of writing four different dtbTools have been packaged and are available:

  • dtbTool, Skales version mentioned before
  • dtbTool-exynos, required for exynos devices
  • dtbTool-sprd - Spreadtrum version
  • pxa1088-dtbTool and pxa1908-dtbTool, packaged into pxa-mkbootimg and used by devices with Marvell PXA SoCs

If you would like to test if Skales' version produces the same output as the LineageOS version (which is what we had packaged before), download the files from here and place them in aports/main/dtbtool-lineage. Build it with pmbootstrap build dtbtool-lineage and depend on dtbtool-lineage instead of dtbtool in your kernel package, then change the dtbTool line in your kernel APKBUILD to dtbTool-lineage.