Сначала немного контекста с моей проблемой:
Я пытаюсь добавить некоторые патчи для изменения некоторых деревьев устройств из исходного кода, используемого в рецепте linux-msm-4.4_git.bb (который можно найти в meta-qti-bsp layer).
Мой linux-msm-4.4_git.bbappend выглядит следующим образом:
FILESEXTRAPATHS_append := "${THISDIR}/files:"
SRC_URI += " file://0001-patching-dts-stuff_1.patch"
SRC_URI += " file://0002-patching-dts-stuff_2.patch"
SRC_URI += " file://0003-patching-dts-stuff_3.patch"
SRC_URI += " file://0004-patching-dts-stuff_4.patch"
SRC_URI += " file://0005-patching-dts-stuff_5.patch"
SRC_URI += " file://0006-patching-dts-stuff_6.patch"
SRC_URI += " file://0007-patching-dts-stuff_7.patch"
SRC_URI += " file://0008-patching-dts-stuff_8.patch"
SRC_URI += " file://0009-patching-dts-stuff_9.patch"
Но когда я добавляю свой слой вbuild / conf / bblayers.conf рецепт не выполняется во время задачи do_shared_workdir , поскольку он не находит файл certs / signature_key.pem .
Попытка решить эту проблемуошибка, я нашел следующую информацию:
meta-qti-bsp немного изменен по сравнению с той, которая находится в его репо (я получил код в zip-файле, поэтому я неНе знаю, сколько изменений было внесено во внешние слои).
Я следил за всеми включениями, наследованиями и требованиями из рецепта, чтобы узнать, что происходило: Вот изображение этого.
И я обнаружил, что do_shared_workdir переопределенdden from kernel.bbclass.
Когда мой уровень не не включен, и я запускаю bitbake linux-msm-4.4 , порядок выполнения задач:
- выборка
- распаковка
- prepare_recipe_sysroot
- распаковка
- патч
- настройка
- populate_lic
- compile
- shared_workdir
- kernel_link_images
Когда мой слой включен shared_workir и kernel_link_images всегда меняются местами в порядке выполнения.
Поэтому я попытался выполнить " addtask shared_workdir после do_compile перед kernel_link_images " в моем .bbappend переопределяет " addtask shared_workdir"после do_compile перед do_compile_kernelmodules"из kernel.bbclass , чтобы обеспечить порядок задач, который не заканчивается ошибкой, что не произошло.
Изменение его в kernel.bbclass сделал решить ошибку, но я бы предпочел неake изменения в слоях, которые не поддерживаются мной.
Мой главный вопрос:
- Есть ли способ установить правильный порядок задач из моего слоя?
Еще один вопрос, на который я хотел бы узнать ответ, чтобы лучше понять структуру yocto:
Если я создал слой с помощью команды meta-mylayer add-layer-bitbake-layer . Я просто добавил ту же структуру рецептов - * / recipe-name / recipe .bbappend, что в исходном слое, и этот bbappend и его файлы / patches единственное, что добавил я. Эти патчи и рецепт не определяют изменения порядка выполнения задач.
- Почему добавление моего слоя вызывает изменение порядка выполнения этих задач?