Как работает общий кэш состояния в 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 и когда в зеркало?


person mastier    schedule 31.07.2015    source источник
comment
Чувак. Я тоже. Какая колоссальная боль отладки. У меня есть зависимость от base-passwd:do_populate_sysroot_setscene, которую невозможно найти, как бы я ни пытался. Якобы все они наследуют его от базового рецепта. Это просто не работает, и я рву на себе волосы.   -  person izak    schedule 13.07.2016
comment
Ага. До сих пор я не нашел хорошо написанной документации по yocto. Авторы, кажется, не понимают, что мы еще не знаем. Так плохо написано :(   -  person steve    schedule 26.03.2021


Ответы (1)


В руководстве Yocto Project есть раздел, посвященный Общий кэш состояния.

Чтобы ответить на ваш вопрос, сначала проверяется папка sstate-cache, затем проверяются зеркала, если ничего не найдено локально.

Этот кеш создается на основе набора входных данных, которые хэшируются в «подписи», которые можно найти в $BUILD_DIR/tmp/stamps, но имейте в виду, что для просмотра файла вам понадобятся bitbake-dumpsigs. Взглянув на bitbake-dumpsigs и bitbake-diffsigs, вы сможете понять, как работает кеш. Также есть отличная статья "Советы и рекомендации" по Понимание того, что изменилось в ваша среда сборки.

Хотя это может занять некоторое время, общий кеш состояния чрезвычайно ценен и тщательно протестирован.

С точки зрения отслеживания зависимостей, например, почему ваш образ может содержать пароль, bitbake -g даст вам дерево зависимостей, а oe-pkgdata-util find-path поможет вам понять, какой рецепт привел к данному двоичному файлу в результирующем образе.

Полезный совет: «Когда нам нужно выполнить сборку с нуля, мы либо удаляем build/tmp, чтобы использовать sstate-cache для ускорения сборки, либо удаляем build/tmp и sstate-cache, чтобы кеш не использовался повторно во время сборки. сборка."1

1Сальвадор, Отавио и Дайан Анголини. «6.2 Общие сведения о кэше общего состояния». Разработка встраиваемых систем Linux с помощью Yocto Project

person Stephano    schedule 01.08.2016