Yocto build для preempt_rt

Собираю кастомное ядро ​​для beaglebone black. Следуя этому руководству (http://android.serverbox.ch/?p=1273), я Я могу успешно загрузить консоль, используя базовый образ.

Когда я пытаюсь выполнить сборку с патчем ядра в реальном времени, используя команду:

bitbake core-image-rt

Я получаю следующие сообщения об ошибках:

Loading cache: 100% |###############################| ETA:  00:00:00
Loaded 1222 entries from dependency cache.
Parsing recipes: 100% |#############################| Time: 00:00:00
Parsing of 862 .bb files complete (861 cached, 1 parsed). 1221 targets, 61 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for virtual/kernel (linux-yocto, linux-dummy)
NOTE: consider defining a PREFERRED_PROVIDER entry to match virtual/kernel
ERROR: Nothing PROVIDES 'linux-yocto-rt' (but /home/ste/yocto/poky/meta/recipes-rt/images/core-image-rt.bb DEPENDS on or otherwise requires it)
ERROR: linux-yocto-rt was skipped: incompatible with machine beaglebone (not in COMPATIBLE_MACHINE)
ERROR: linux-yocto-rt was skipped: incompatible with machine beaglebone (not in COMPATIBLE_MACHINE)
ERROR: linux-yocto-rt was skipped: incompatible with machine beaglebone (not in COMPATIBLE_MACHINE)
ERROR: Required build target 'core-image-rt' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-rt', 'linux-yocto-rt']
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Я применил предложения в файле README (или думаю, что сделал ...):

The recipes-rt recipes provide package and image recipes for using and testing
the PREEMPT_RT kernel. The core-image-rt*.bb images are minimal images with
a couple extra packages, including rt-tests. In order to build the image with
the linux-yocto-rt kernel, be sure to include the following line in your
local.conf, bblayers.conf, or your $MACHINE.conf.

PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"

If you are creating a new BSP which should use linux-yocto-rt by default,
use the line above in the $MACHINE.conf in your BSP layer, and specify the
following in a linux-yocto-rt bbappend recipe:

COMPATIBLE_MACHINE_$MACHINE = $MACHINE

Но по-прежнему получаются те же сообщения об ошибках.
Кому-нибудь удалось создать ядро ​​реального времени с помощью Yocto? Невозможно найти где-либо окончательную процедуру для этого.


person BullBoyShoes    schedule 19.01.2015    source источник


Ответы (1)


Мне удалось заставить его собрать core-image-rt, добавив следующее в build / conf / local.conf

PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
COMPATIBLE_MACHINE_beaglebone = "beaglebone"
COMPATIBLE_MACHINE_quilt-native = "beaglebone"
person George McCollister    schedule 19.01.2015
comment
Я могу добиться успеха сборки, используя это, но образ не загружается :-( - person BullBoyShoes; 20.01.2015
comment
Вы подключены к последовательной консоли? Получаете ли вы какой-либо вывод ядра или вообще ничего не получаете после того, как u-boot запустит ядро? - person George McCollister; 20.01.2015
comment
Нет, не подключен, мне нужен кабель - person BullBoyShoes; 20.01.2015
comment
Похоже, моя папка / boot пуста, там должен быть файл uImage - person BullBoyShoes; 20.01.2015
comment
Конфигурация ядра выглядит неплохо ... Если будет возможность, я попробую запустить ее завтра. Обязательно возьмите кабель, хотя, даже если вы разберетесь с этим, он вам снова понадобится (даже с другой платой). - person George McCollister; 20.01.2015
comment
Этот ответ, безусловно, помог. Однако мне также нужно было изменить требуемый пакет в /meta/recipes-rt/images/core-image-rt.bb с core-image-minimal на core-image-base. - person BullBoyShoes; 21.01.2015
comment
Суффикс COMPATIBLE_MACHINE_* - это имя MACHINE, определенное в local.conf. - person Felix Xu; 16.08.2019