[yocto] Preempt-rt kernel build for beagleboard

Yu Pan panyu2000 at gmail.com
Tue Nov 27 02:23:35 PST 2012


I started looking at Yocto 2 weeks back. Despite the complexity in kernel
building, I found it quite hard to locate information on preempt-rt build.
I was trying to build linux-yocto-rt for beagleboard from "danny" and the
linux-yocto-3.4 kernel, and it seems to be working. I'd like to share how
one can do that in this thread.

Since the kernel does not include an official preempt-rt branch for
beagleboard yet, I choose to directly use the standard/preempt-rt/base
branch. I guess this should work for the preempt-rt kernel, from the fact
that the standard kernel (non preempt-rt) used for beagleboard from the
standard/beagleboard branch is basically identical to that from the
standard/base branch.

Here is what I did.
1. Under poky/meta-yocto-bsp/recipes-kernel/linux, I added a
linux-yocto-rt_3.4.bbappend recipe containing the following lines. The
SRCREV value used is the same as the one in the base
linux-yocto-rt_3.4.bbunder poky/meta/recipes/kernel.

  KBRANCH_beagleboard = "standard/preempt-rt/base"
  SRCREV_machine_beagleboard ?= "5705c8037d2c47938034ead87c70ae3ebef552f7"
  COMPATIBLE_MACHINE_beagleboard = "beagleboard"

2. Modified the PREFERRED_PROVIDER_virtual/kernel variable in
poky/meta-yocto-bsp/conf/machine/beagleboard.conf to "linux-yocto-rt".

3. "bitbake linux-yocto-rt -c menuconfig" to set the Preemption Model to
"Fully Preemptible Kernel (RT)".

4. "bitbake linux-yocto-rt"

5. "bitbake core-image-rt" which includes some realtime test programs on
top of core-image-minimal.

I did some cyclictest on beagleboard using the generated kernel and image
with "/usr/bin/cyclictest -p95 -m". The results did show huge improvement
on max latency especially under load.

Hope it helps.

Cheers
Pan Yu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20121127/ec7bb716/attachment.html>


More information about the yocto mailing list