そのため、デバイスツリーを変更するたびに、通常、カスタムレシピのdtsを変更し、イメージを再構築します。カーネル全体を再構築するため、再構築には長い時間がかかります。その後、イメージを構築し、最終的にターゲットデバイスに展開する必要があります。
デバイスツリーのみを再構築する私が見逃しているトリックはありますか?
UPDATE:
G0hl1nの答えは、私の質問に対する答えであるため、正しいものとしてマークしました。しかし、Yoctoでカーネルを操作するのは非常に面倒であることがわかりました:カーネルがtmp/workで構築されている間に、奇妙で長いパスと各再構築でファイルが上書きされるリスク、tmp/work-sharedのカーネルのソース。
代わりに、カーネル開発をYoctoから移動しました。 Yoctoには、SDKを作成するための優れたツール(populate_sdkタスクを参照)があり、それにより、迅速な再構築と手動(またはスクリプト化)展開でカーネル開発用の環境を簡単にセットアップできます。作業が完了したら、git diffを使用して変更をレシピに移動できます。
次のページの指示は非常に役に立ちました。 http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html
私の知る限り、これを行うには2つの異なる方法があります。
kernel way:カーネルが提供するスクリプトを使用する
<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/
)./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts
bitbake way:カーネルのデプロイジョブを使用する
$ bitbake <kernel-name> -f -c deploy
<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/Arch/arm/boot/dts/
)少なくとも私にとっては、両方のバージョンが簡単なテストで機能しました。
UPDATE:ネット上でyoctoを使用してdtbを構築する3番目のバージョンを知りました。その1つは、カーネル構築のyoctoのdevshell
を使用します。詳細については、 https://splefty.blogspot.co.at/2015/09/compiling-device-tree-using-yocto.html の元の著者ページを参照してください。
Bitbakeを使用してデバイスツリーを再生成した私にとって、次のように機能しました。
コマンド:$ bitbake <kernel-name> -f -c compile
例:$ bitbake linux-fslc -f -c compile
ヨクト相撲を使用してテスト済み。