Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Yocto build for preempt_rt

I'm building a custom kernel for the beaglebone black. Following this guide (http://android.serverbox.ch/?p=1273) I'm able to boot to console successfully using a base image.

When I try to build with the realtime kernel patch using command:

bitbake core-image-rt

I get the following error messages:

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.

I applied the suggestions in the README file (or think I did...):

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

But still get the same error messages.
Has anyone had any success with building a realtime kernel using Yocto ? Unable to find a definitive procedure anywhere for this.

like image 856
BullBoyShoes Avatar asked Jan 19 '15 13:01

BullBoyShoes


People also ask

What is the build engine of Yocto?

2.3. BitBake: BitBake is a core component of the Yocto Project and is used by the OpenEmbedded build system to build images. While BitBake is key to the build system, BitBake is maintained separately from the Yocto Project.

Is Yocto a real time OS?

No, the Yocto Project is not an operating system. It is better described as a platform to build an OS based on the Linux kernel and embedded-specific packages.

Does Yocto use Buildroot?

It's worth noting that Yocto and Buildroot are NOT Linux distros themselves, but projects that help developers build embedded systems based on Linux (in the case of Yocto, the output is a Linux distribution, while Buildroot outputs a root file system that can be used to build a distribution).


1 Answers

I was able to get it to build core-image-rt by adding the following to build/conf/local.conf

PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
COMPATIBLE_MACHINE_beaglebone = "beaglebone"
COMPATIBLE_MACHINE_quilt-native = "beaglebone"
like image 140
George McCollister Avatar answered Sep 28 '22 05:09

George McCollister