2

2 つのターゲット イメージをビルドするために使用する 1 つの MACHINE があります。foo-image と foobar-image。どちらのイメージも同じバージョンのパッケージを使用しますが、どのイメージがビルドされるかに基づいて do_install タスクに変更を加えたいと考えています。そのため、パッケージのレシピ ファイルは次のようになります。

do_install (){
    //Some work
}

do_install_append_foobar-image(){
   //Some foobar work
}

最終的に 2 つのイメージのビルドを行うと、次のようになります。

MACHINE=custom bitbake foo-image
MACHINE=custom bitbake foobar-image

foob​​ar のイメージには、appends タスクで作業を行ったインストール済みパッケージが含まれますが、foo のイメージには含まれません。

私が概説したことを行う方法はありますか、または代替手段はありますか?

4

2 に答える 2

2

いいえ、どのイメージがビルドされているかに基づいて、レシピで異なるタスクを実行することはできません。do_install非常に不確かですが、で画像名を確認する可能性があるかもしれません。

私がすることは次のとおりです。

  • レシピに、追加ファイルを含む 2 番目のパッケージを追加します (それが必要な場合)。
  • 2 番目のイメージ レシピにこの 2 番目のパッケージを含めます。

ビルドしたイメージを検出できるかどうかに応じてpost_install、変更を行う -script を追加することもできます。3番目の、おそらくあまり良くないオプションは、 で変更を行うことROOTFS_POSTPROCESS_COMMANDです。

どのソリューションを選択するかは、どのようなカスタマイズを行いたいかによって異なります。

于 2015-10-23T07:17:09.983 に答える
1

いくつかの審議の後、私たちはおそらくこれについて後ろ向きに考えていました. おそらく、MACHINE レベルで分離を挿入する必要があります。どちらも最終的には別の製品になるため、これが最も理にかなっています。このようにすることで、その特定の製品のパッケージに変更を加えることができます。

ビルドラインは次のようになります。

MACHINE=custom1 bitbake foo-image
MACHINE=custom2 bitbake foobar-image

そして、パッケージのインストール タスクは次のようになります。

do_install (){
    //Some work
}

do_install_append_custom2(){
   //Some more work
}
于 2015-10-23T15:13:34.537 に答える