Понимание функционирования sstate-кэша Yocto Project - PullRequest
1 голос
/ 21 февраля 2020

Я новичок ie в проекте Yocto. Я управляю несколькими проектами, для каждого из которых есть версия: разработка / отладка и полевая / индустриализация. Работая с системой сборки, я заметил повторяющийся следующий сценарий.

  1. Предположим, что рабочее пространство чистое, сборка fre sh.
  2. Запуск bitbake, минимального изображения с определенным деревом устройства linux -kernel и параметрами defconfig. Bitbake займет некоторое время, и будут созданы выходные файлы.
  3. Теперь измените параметры в ранее упомянутом дереве устройств и defconfig (представьте, что добавлены новые периферийные устройства). Перезапустите bitbake, выходные файлы будут созданы для этой новой компиляции.
  4. Теперь здесь есть хитрость. Перед компиляцией в шаге 2 сбросьте дерево устройств и defconfig файлы к настройкам. Перезапустите bitbake, и это будет почти мгновенно. Выходные файлы заменяются файлами, созданными на шаге 2.

Итак, я знаю, что это возможно из-за битбейка и использования sstate-cache, или я так полагаю. Я долго гуглил, но информация не слишком ясна. Как это работает? Есть ли какая-либо подпись, созданная во время компиляции со входами файлов конфигурации и сохраненная, связанная с компиляцией? Я обеспокоен этим, потому что мне действительно нужно верить, что то, что я отправляю в поле, является именно правильной компиляцией, а не небезопасной версией разработки.

И в связи с этим, в чем разница между запуском bitbake -c cleanall или сложно удалить каталоги deploy и sstate-cache?

Заранее спасибо.

1 Ответ

0 голосов
/ 21 февраля 2020

Информация доступна в официальном руководстве: https://www.yoctoproject.org/docs/3.0/overview-manual/overview-manual.html#shared -state-cache

...