From my understanding, in systems without bus support for discovery/enumeration (mostly embedded systems), the dtb files are used to describe the hardware and allow the kernel to use it once it has been loaded into to memory.

So, assuming we just want to update the kernel for such a system, do we need to also update the dtb? Since it only describes the hardware and the hardware is unchanged, couldn't it be simply reused?

I came to this question while installing a newer kernel in my raspberrypi, the official build documentation and also every other tutorial I could find makes an explicit mention about compiling and copying the dtb files, so I was wondering if this step is really necessary since the hardware wont change.

1 Answer 1


Mainly, kernel and device tree are supposed to be independent from each other, so yes: Usually you can use a freshly compiled kernel along with the old dtb and vice versa.

Of course, this stops being true if the device tree relies on certain versions of device drivers or the new kernel expects different device tree attributes.

Now considering that building a new dtb with dtc is a question of milliseconds and authors of tutorials do not know whether some patch did change any dts or dtsi file, it's saver to recommend including building and deploying the dtb along with the kernel.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .