2016-08-12 17 views
10

デバイスツリーを変更するたびに、通常、カスタムレシピのdtsが変更され、イメージが再構築されます。再構築にはカーネル全体を再構築してからイメージを構築し、最終的にターゲットデバイスに展開する必要があります。Yocto/bitbakeを使用した場合のデバイスツリーのクイックリビルド?

デバイスツリーのみを再構築する方法がありますか?

UPDATE:

私はそれは私の質問への答えであることから、正しいものとしてg0hl1nの答えをマークしました。しかし、私はYoctoのカーネルで作業するのが非常に面倒であることを発見しました:それぞれの再構築時に奇妙な長いパスとファイルの上書きのリスク、tmp/work-sharedのカーネルのソース、tmp/work 。

代わりに私はYoctoからカーネル開発を外しました。 Yoctoには、SDKを作成するための優れたツール(populate_sdkタスクを参照)があり、迅速な再構築と手動(またはスクリプト化)デプロイメントによるカーネル開発環境を簡単にセットアップできます。作業が完了したら、git diffを使って変更をレシピに移動することができます。次ページ

命令はとても役に立ちました:http://jumpnowtek.com/beaglebone/Working-on-the-BeagleBone-kernel.html

答えて

6

は、私の知る限り、これを行うには、2つの方法があります。

  1. カーネル道./scripts/dtc/dtc -I dts -O dtb -o ./devicetree.dtb path/to/devicetree.dts

  2. :カーネルソースのディレクトリ( <build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/git/
  3. デバイスツリー・コンパイラを実行するためにカーネル

    • 変更によって提供されるスクリプトを使用します
  4. bitbake方法:カーネルの展開ジョブを使用して

    • コール$ bitbake <kernel-name> -f -c deploy
    • その後、<build dir>/tmp/work/<machine>/<kernel-name>/<kernel-version>/build/arch/arm/boot/dts/で見つけることができます生成されたデバイス・ツリー・ブロブ)

少なくともについて私は両方のバージョンが簡単なテストで働いていました。

更新: 私はちょうどネット上にyoctoでdtbを構築する第3のバージョンになりました。 yoctoのカーネルビルドのdevshellを使用しています。 詳細については、元の著者のページhttps://splefty.blogspot.co.at/2015/09/compiling-device-tree-using-yocto.htmlを参照してください。

+0

ありがとうございました。 3つの良いオプション。私は、通常のビルドと同じようにすることが最も保証されているので、2番目の方法を好む。そして私はそれを自動化するためにdevshellを簡単に使うことはできません。さて、それを完璧にするために、私はdtbとdtsiをレシピからコピーするためにbitbake -f -c unpackを実行し、dtbを構築するためにbitbake -f -c deployを続けます。しかし残念なことに、 'unpack'コマンドは 'deploy'コマンドを使ってカーネル全体を再構築します。カーネルを再構築しない 'deploy'の実行を強制することができたなら、それは完璧です! – Jonatan

関連する問題