BBB RT patch

Hello List,

Previously I have implemented my applications with Real time kernel in my Beaglebone White using Robert Nelson’s kernel. Now I am going to change the platform/board to BBB, I am unable to find any RT patched kernel. Can anybody post me the links where I can find the PT patched 3.8. kernel ?

Thanks,
Jeshwanth
Bangalore

According to the RT Wiki
https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch

You can get the patchsets from either:
http://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git
or
https://www.kernel.org/pub/linux/kernel/projects/rt/

I am interested in tightening up the performance of the BBB as well. I would like to hear about either your experience with this or that of anyone else who has tried it.

Dave

AFAIK, preempt-rt on the 3.8 kernel is either brand new or still a work
in process. The running kernels I'm aware of use a patched version of
3.2, but I haven't been following along real close.

In my tests with preempt-rt (many months ago), I was getting pretty
lousy worst-case latency numbers, so I switched to using Xenomai. Note
that the latest Xenomai from git (soon to be officially released)
supports the 3.8.13 kernel as used on the BeagleBone, and has a pre/post
patch set to make it easy to build the kernel. I've even got kernel
build scripts if you don't like doing everything from scratch:

https://github.com/cdsteinkuehler/linux-dev/tree/3.8.13-bone27-xenomai

Since I looked at preempt-rt, the OSADL folks have brought up a test
system with an AM3359 (not a BeagleBone, but the same SoC), and they are
seeing much better latency numbers than I was. Again, this is still a
3.2 kernel, not a 3.8. I'm not sure if the better numbers are due to a
different kernel config or improved drivers. Preempt-rt relies on the
Linux kernel code and drivers being written for high-performance SMP
processing and generally playing nice, while xenomai just preempts the
entire Linux kernel (including any mis-behaving drivers) so it works
well with ...um... "sub-optimal" vendor-supplied drivers, which are all
too common in the ARM space. :slight_smile:

Let us all know if you get a 3.8 kernel with preempt-rt running on a
'Bone (white or black).

With the help of Charles Steinkuehler I brought up Xenomai on my BBB and it seems to work very well. The post is here:

https://groups.google.com/forum/#!category-topic/beagleboard/beaglebone-black/BC5Et2nQFOU

As a side note: you may not need rt patches.

I find the JACK faq invaluable despite not using Jack, as they do heavy audio processing which sometimes needs rt.
http://jackaudio.org/faq

Of special note is that regular linux comes with the option to place applications into the “Realtime Scheduling Group” and thus performance for RT processing without needing to patch the kernel.

Hey Gluseppe,

I didn’t think about xenomai, sure I will try and share the results. Thanks :slight_smile:

Hi Charles,

I downloaded your linux-dev git and checkout the 3.8.13-bone27-xenomai
branch. Everything seems to work fine until I get this error:

dir: xenomai - ipipe
reference: v3.8.13, kernel version: 3.8.13
ipipe-core-3.8.13-x86-3.patch
ipipe-core-3.8.13-arm-2.patch
ipipe-core-3.8.13-blackfin-2.patch
ipipe-core-3.8.13-powerpc-2.patch
fatal: can't open patch
'/home/<userid>/Download/GIT/linux-xenomai/ignore/ipipe/ipipe-core-3.8.13-a
rm-1.patch': No such file or directory

I looked in the ignore/ipipe and I do not see this patch.

Regards,
John

This is probably due to the very recent release of the newest official
version of Xenomai, which includes all the necessary patches. I haven't
updated my scripts to reflect this yet.

The ipipe patch is now in the xenomai repository, and doesn't need to be
generated from the ipipe repository any more. Feel free to fix this up
and send me a pull request :), or I can probably get around to fixing it
in the next day or so.

On the plus side, not having to generate the ipipe patch will save a
*LOT* of drive space, plus less download time for first-time builds.

Pull my linux-dev repo and try the new bone28 branch:

https://github.com/cdsteinkuehler/linux-dev/tree/3.8.13-bone28-xenomai

...this has been updated to use the just released xenomai 2.6.3,
including the ipipe and pre/post patches which now work as-is with the
BeagleBone 3.8.13 kernel. So no more building the ipipe patch from
scratch, and the BeagleBone ipipe pre/post patches have been removed

Let me know if you have any issues when building.

Pull my linux-dev repo and try the new bone28 branch:

GitHub - cdsteinkuehler/linux-dev at 3.8.13-bone28-xenomai

...this has been updated to use the just released xenomai 2.6.3,
including the ipipe and pre/post patches which now work as-is with the
BeagleBone 3.8.13 kernel. So no more building the ipipe patch from
scratch, and the BeagleBone ipipe pre/post patches have been removed
from my repo.

Let me know if you have any issues when building.

Hi Charles,

Build completed successfully. Thank you again.

Regards,
John