静的ハードウェアでは、カーネルを更新するたびにdtbを再コンパイルする必要がありますか?

静的ハードウェアでは、カーネルを更新するたびにdtbを再コンパイルする必要がありますか?

私が理解したのは、検索/列挙のためのバスサポートのないシステム(主に組み込みシステム)では、dtbファイルはハードウェアを説明し、カーネルがそれをメモリにロードした後に使用できるようにするために使用されます。

もしそうなら、そのようなシステムのカーネルだけを更新すると仮定すると、dtbも更新する必要がありますか?ハードウェアについてのみ説明し、ハードウェアが変更されていないので、簡単に再利用することはできないだろうか?

私のラズベリーパイに更新されたカーネルをインストール中にこの問題が発生しました。公式ビルド文書そして、私が見つけることができる他のすべてのチュートリアルでは、dtbファイルのコンパイルとコピーについて明示的に言及しているので、ハードウェアが変更されないため、この手順が実際に必要かどうか疑問に思います。

答え1

主にカーネルとデバイスツリーは互いに独立している必要があります。したがって、そうです。通常、以前のdtbで新しくコンパイルされたカーネルを使用することができ、その逆も同様です。

もちろん、デバイスツリーが特定のバージョンのデバイスドライバに依存する場合、または新しいカーネルに別のデバイスツリープロパティが必要な場合は、もはやそうではありません。

これで、新しい dtb を構築するのはdtc数ミリ秒の問題であり、チュートリアルの作成者は、一部のパッチが実際に dts または dtsi ファイルを変更したかどうかを知らないことを考慮すると、カーネルで dtb を構築して配布することをお勧めします。

関連情報