Как переопределить определенный порядок задач в рецепте Yocto? - PullRequest
0 голосов
/ 17 октября 2019

Сначала немного контекста с моей проблемой:

Я пытаюсь добавить некоторые патчи для изменения некоторых деревьев устройств из исходного кода, используемого в рецепте 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 единственное, что добавил я. Эти патчи и рецепт не определяют изменения порядка выполнения задач.

  • Почему добавление моего слоя вызывает изменение порядка выполнения этих задач?
...