web-dev-qa-db-ja.com

Yoctoの共有状態キャッシュはどのように機能しますか?

Sstateキャッシュがyoctoでどのように機能するかをより包括的に説明できる人はいますか?

この説明 は明確ではありません。

そのような状況がいつ発生するかわかりません:

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Running setscene task 118 of 155 (virtual:native:/home/lulianhao/poky-build/edwin/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot_setscene)
NOTE: Running setscene task 119 of 155 (/home/lulianhao/poky-build/edwin/poky/meta/recipes-devtools/quilt/quilt-native_0.48.bb:do_populate_sysroot_setscene)

アーティファクトを見つけたとき、または候補を取得したとき、そして署名をチェックします。 setsceneタスクが実際にいつ実行されるか知りたいです。

追加の質問:ローカルのsstate_cacheフォルダーを検索するときとミラーを確認するときは?

13
mastier

Yocto Projectのマニュアルには、 Shared State Cache に関するセクションがあります。

あなたの質問に答えるために、最初にsstate-cacheフォルダーがチェックされ、次にローカルに何も見つからない場合はミラーがチェックされます。

このキャッシュは、$BUILD_DIR/tmp/stampsにある「署名」にハッシュされる一連の入力に基づいて構築されますが、ファイルを表示するにはbitbake-dumpsigsが必要になることに注意してください。 bitbake-dumpsigsbitbake-diffsigsを見ると、キャッシュがどのように機能するかを理解するのに役立ちます。また、ビルド環境の 何が変わったかを理解する に関するすばらしい「ヒントとコツ」の記事があります。

理解するには時間がかかる場合がありますが、共有状態キャッシュは非常に価値があり、厳密にテストされています。

依存関係のトレースに関しては、たとえば、画像にpasswdが含まれている理由など、bitbake -gは依存関係ツリーを提供し、oe-pkgdata-util find-pathは、結果の画像で特定のバイナリが生成されたレシピを理解するのに役立ちます。

役立つヒント:「最初から再構築する必要がある場合は、ビルド/ tmpを削除してsstate-cacheを使用してビルドを高速化するか、build/tmpとsstate-cacheの両方を削除してキャッシュが再利用されないようにします。ビルド。」1

1サルバドール、オタビオ、ダイアンアンゴリーニ。 「6.2共有状態キャッシュについて」 YoctoProjectによる組み込みLinux開発

15
Stephano