Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Real time Linux implementation
@ 2011-12-01 19:27 Morten Jensen
  2011-12-01 21:18 ` Thomas Petazzoni
  0 siblings, 1 reply; 9+ messages in thread
From: Morten Jensen @ 2011-12-01 19:27 UTC (permalink / raw)
  To: buildroot

Hello,
We are using Buildroot on an ARM based development platform from IC-BOARD:
http://www.ic-board.de/product_info.php?info=p163_STK-ADB3000---ICnova-SAM9G45-XC3S700AN-OEM.html

Does anybody have any experience with implementing Real Time OS
functionality in the Linux Buildroot system or can you guide us to someone
that may be able to help or consult in this effort ?

Sincerely

Morten Jensen
NVS Technologies
3603 Haven Ave #A
Menlo Park, CA 94025
Tlf 650 363 8776 x 212
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20111201/c15642c1/attachment.html>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-01 19:27 [Buildroot] Real time Linux implementation Morten Jensen
@ 2011-12-01 21:18 ` Thomas Petazzoni
  2011-12-02 18:33   ` Stephan Hoffmann
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni @ 2011-12-01 21:18 UTC (permalink / raw)
  To: buildroot

Le Thu, 1 Dec 2011 11:27:37 -0800,
Morten Jensen <mjensen@nvs-technologies.com> a ?crit :

> Hello,
> We are using Buildroot on an ARM based development platform from IC-BOARD:
> http://www.ic-board.de/product_info.php?info=p163_STK-ADB3000---ICnova-SAM9G45-XC3S700AN-OEM.html
> 
> Does anybody have any experience with implementing Real Time OS
> functionality in the Linux Buildroot system or can you guide us to someone
> that may be able to help or consult in this effort ?

Yes. First thing to find out is what you need in terms of real-time :

 *) A vanilla Linux kernel with preemption enabled and proper process
    priorities ;

 *) A Linux kernel patched with PREEMPT_RT

 *) The more radical approach provided by Xenomai

All three are possible with Buildroot, it's rather what kind of
real-time guarantees and latencies you need and how much effort you're
ready to spend on achieving those guarantees.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-01 21:18 ` Thomas Petazzoni
@ 2011-12-02 18:33   ` Stephan Hoffmann
  2011-12-02 23:08     ` Thomas Petazzoni
  0 siblings, 1 reply; 9+ messages in thread
From: Stephan Hoffmann @ 2011-12-02 18:33 UTC (permalink / raw)
  To: buildroot

Am 01.12.2011 22:18, schrieb Thomas Petazzoni:
> Le Thu, 1 Dec 2011 11:27:37 -0800,
> Morten Jensen <mjensen@nvs-technologies.com> a ?crit :
>
>> Hello,
>> We are using Buildroot on an ARM based development platform from IC-BOARD:
>> http://www.ic-board.de/product_info.php?info=p163_STK-ADB3000---ICnova-SAM9G45-XC3S700AN-OEM.html
>>
>> Does anybody have any experience with implementing Real Time OS
>> functionality in the Linux Buildroot system or can you guide us to someone
>> that may be able to help or consult in this effort ?
> Yes. First thing to find out is what you need in terms of real-time :
>
>  *) A vanilla Linux kernel with preemption enabled and proper process
>     priorities ;
>
>  *) A Linux kernel patched with PREEMPT_RT
I have good experiences with this patch, but did not try it with a ARM.
It's not that much effort and integrates well with buildroot. Look here:
https://rt.wiki.kernel.org/ and here:
https://www.osadl.org/Latest-Stable-Realtime.latest-stable-realtime-linux.0.html
for further information.

@Peter and Thomas,

what do you think about adding the PREEMPT_RT patch as a config option
to buildroot?

Kind regards

Stephan


-- 
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-02 18:33   ` Stephan Hoffmann
@ 2011-12-02 23:08     ` Thomas Petazzoni
  2011-12-03 10:53       ` Michael S. Zick
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Petazzoni @ 2011-12-02 23:08 UTC (permalink / raw)
  To: buildroot

Le Fri, 02 Dec 2011 19:33:47 +0100,
Stephan Hoffmann <sho@relinux.de> a ?crit :

> what do you think about adding the PREEMPT_RT patch as a config option
> to buildroot?

That would definitely be nice. The only problem is that PREEMPT_RT is
far from being available for every upstream kernel version, so it's a
bit hard to integrate from that perspective, but this isn't much
different from Xenomai and RTAI having similar kernel version
constraints. So, yes, having some PREEMPT_RT integration would be nice,
at least to show that it is possible.

Regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-02 23:08     ` Thomas Petazzoni
@ 2011-12-03 10:53       ` Michael S. Zick
  2011-12-03 11:08         ` Thomas Petazzoni
  0 siblings, 1 reply; 9+ messages in thread
From: Michael S. Zick @ 2011-12-03 10:53 UTC (permalink / raw)
  To: buildroot

On Fri December 2 2011, Thomas Petazzoni wrote:
> Le Fri, 02 Dec 2011 19:33:47 +0100,
> Stephan Hoffmann <sho@relinux.de> a ?crit :
> 
> > what do you think about adding the PREEMPT_RT patch as a config option
> > to buildroot?
> 
> That would definitely be nice. The only problem is that PREEMPT_RT is
> far from being available for every upstream kernel version, so it's a
> bit hard to integrate from that perspective, but this isn't much
> different from Xenomai and RTAI having similar kernel version
> constraints. So, yes, having some PREEMPT_RT integration would be nice,
> at least to show that it is possible.
> 

And the pending EtherCAT patch which has both kernel version constraints
and supports only a few specific Ethernet adapters.

Having the new "kernel extensions" build support is a nice feature.

And BR does target building embedded systems where "strange and unusual"
kernel extensions are sometimes a way-of-life, but...

Will the project need a general policy of just how "strange and unusual"
will be considered for inclusion in the build system?

My reason for posing this question early in the life-time of the
"kernel extensions" feature is the on-going maintenace chore of 
these specializations.

Often, it will take the actual downloading and examination of each
source package by someone who is also familiar with that BR patch
to do a "version bump" of that kernel extension package.

Maybe a policy of whoever proposes the extension also accept the
responsibility of maintaining its "version bumps"?
And then if a kernel extension gets too old or becomes unusable,
let the normal deprecated/remove maintenace routine get rid of it.

I can't see that expecting the usual maintainers of the BR system
to take on these extra chores of maintaining the "specials" is 
reasonable.

Perhaps this question is too early, but worth bookmarking until
we see just how many one-user, one-time, things get proposed.

Mike
> Regards,
> 
> Thomas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-03 10:53       ` Michael S. Zick
@ 2011-12-03 11:08         ` Thomas Petazzoni
  2011-12-03 11:24           ` Michael S. Zick
  2011-12-07  8:34           ` Julien Boibessot
  0 siblings, 2 replies; 9+ messages in thread
From: Thomas Petazzoni @ 2011-12-03 11:08 UTC (permalink / raw)
  To: buildroot

Hello,

Le Sat, 3 Dec 2011 04:53:41 -0600,
"Michael S. Zick" <minimod@morethan.org> a ?crit :

> And the pending EtherCAT patch which has both kernel version constraints
> and supports only a few specific Ethernet adapters.
> 
> Having the new "kernel extensions" build support is a nice feature.
> 
> And BR does target building embedded systems where "strange and unusual"
> kernel extensions are sometimes a way-of-life, but...

Correct.

> Will the project need a general policy of just how "strange and unusual"
> will be considered for inclusion in the build system?
> 
> My reason for posing this question early in the life-time of the
> "kernel extensions" feature is the on-going maintenace chore of 
> these specializations.

For all these kernel extensions, Buildroot does not even try to make
sure that the kernel selected by the user is compatible with the kernel
extension that was enabled. We leave that work to the user, simply
because it is impossible to keep track of which kernel extension
supports which kernel version on which architecture.

I think that Buildroot is merely a tool to automate the build process
of an embedded Linux system. It doesn't, and it will never, replace the
engineer that makes decision on using Xenomai version X, knowing that
it supports the kernel version Y that he is using on his embedded
device. Buildroot only helps here by making the build process
automated, *once* the engineer has made the right choices in terms of
versions (kernel version and kernel extension version).

For extensions like Xenomai and RTAI, I think having Buildroot
integration make sense because those extensions have userspace parts
that need to be compiled and integrated to the root filesystem.

For something like PREEMPT_RT, which is "only" a kernel patch, the need
for integration in Buildroot is a bit less important, in my opinion.
You can just manage your kernel tree outside of Buildroot (choosing the
right kernel version, applying the right PREEMPT_RT patch set), and
then tell Buildroot to use that particular kernel source tree.

Another illustration of this is that Buildroot does not try to enforce
that Netfilter is enabled in the kernel when the iptables userspace
package is enabled, does not try to ensure that Wireless support is
enabled in the kernel when the wireless userspace tools package is
enabled, etc. And I really think it's good not to go down this road,
because it would create an unmaintainable mess.

> Perhaps this question is too early, but worth bookmarking until
> we see just how many one-user, one-time, things get proposed.

I think there's a question of orthogonality here. If the new package or
extension is completely orthogonal to what exists and its integration
does not require major infrastructure changes, then we can very much
integrate everything that gets proposed, and if it turns out a year or
two later that it is unmaintained, we can simply get rid of it.
However, if the integration of the package or extension requires deep
changes of Buildroot internals, then of course more thought is needed
to ensure that it is really worth it.

Regarding igh-ethercat, I think the solution is not too bad. The
packaging itself does not depend on a specific kernel version (i.e
Buildroot does not try to make sure that you have selected a kernel
version for which igh-ethercat has driver patches), it's up to the user
to ensure this.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-03 11:08         ` Thomas Petazzoni
@ 2011-12-03 11:24           ` Michael S. Zick
  2011-12-07  8:34           ` Julien Boibessot
  1 sibling, 0 replies; 9+ messages in thread
From: Michael S. Zick @ 2011-12-03 11:24 UTC (permalink / raw)
  To: buildroot

On Sat December 3 2011, Thomas Petazzoni wrote:
> > Will the project need a general policy of just how "strange and unusual"
> > will be considered for inclusion in the build system?
> > 
> > My reason for posing this question early in the life-time of the
> > "kernel extensions" feature is the on-going maintenace chore of 
> > these specializations.
> 
> For all these kernel extensions, Buildroot does not even try to make
> sure that the kernel selected by the user is compatible with the kernel
> extension that was enabled. We leave that work to the user, simply
> because it is impossible to keep track of which kernel extension
> supports which kernel version on which architecture.
> 
> I think that Buildroot is merely a tool to automate the build process
> of an embedded Linux system. It doesn't, and it will never, replace the
> engineer that makes decision on using Xenomai version X, knowing that
> it supports the kernel version Y that he is using on his embedded
> device. Buildroot only helps here by making the build process
> automated, *once* the engineer has made the right choices in terms of
> versions (kernel version and kernel extension version).
> 

Sounds like a policy statement to me.
Buildroot != Automated engineering

Maybe even distill that down to a (polite) "user is on their own here"
comment at the head of the kernel extensions menu branch.
;-)

Since BR does provide a great degree of build automation, a new user
might just assume that it is also fully checking package compatability.
(It doesn't and I agree that it shouldn't - different job.)

Mike

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-03 11:08         ` Thomas Petazzoni
  2011-12-03 11:24           ` Michael S. Zick
@ 2011-12-07  8:34           ` Julien Boibessot
  2011-12-09 18:55             ` Thomas Petazzoni
  1 sibling, 1 reply; 9+ messages in thread
From: Julien Boibessot @ 2011-12-07  8:34 UTC (permalink / raw)
  To: buildroot

On 03/12/2011 12:08, Thomas Petazzoni wrote:
> For extensions like Xenomai and RTAI, I think having Buildroot
> integration make sense because those extensions have userspace parts
> that need to be compiled and integrated to the root filesystem.
>
> For something like PREEMPT_RT, which is "only" a kernel patch, the need
> for integration in Buildroot is a bit less important, in my opinion.
> You can just manage your kernel tree outside of Buildroot (choosing the
> right kernel version, applying the right PREEMPT_RT patch set), and
> then tell Buildroot to use that particular kernel source tree.

Thomas is right. To use PREEMPT_RT with Buildroot a:
    BR2_LINUX_KERNEL_CUSTOM_VERSION=y
    BR2_LINUX_KERNEL_VERSION="3.0.12"
   
BR2_LINUX_KERNEL_PATCH="http://www.kernel.org/pub/linux/kernel/projects/rt/3.0/patch-3.0.12-rt29.patch.bz2"
is enough.
Ok, this implies that the user knows what he wants to do, but this is
generally the case when using PREEMPT-RT as this patch is only available
for a restricted number of Linux kernel versions.

Regards,
Julien

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] Real time Linux implementation
  2011-12-07  8:34           ` Julien Boibessot
@ 2011-12-09 18:55             ` Thomas Petazzoni
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Petazzoni @ 2011-12-09 18:55 UTC (permalink / raw)
  To: buildroot

Le Wed, 07 Dec 2011 09:34:49 +0100,
Julien Boibessot <julien.boibessot@free.fr> a ?crit :

> Thomas is right. To use PREEMPT_RT with Buildroot a:
>     BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>     BR2_LINUX_KERNEL_VERSION="3.0.12"
>    
> BR2_LINUX_KERNEL_PATCH="http://www.kernel.org/pub/linux/kernel/projects/rt/3.0/patch-3.0.12-rt29.patch.bz2"
> is enough.
> Ok, this implies that the user knows what he wants to do, but this is
> generally the case when using PREEMPT-RT as this patch is only
> available for a restricted number of Linux kernel versions.

Agreed.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-12-09 18:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-01 19:27 [Buildroot] Real time Linux implementation Morten Jensen
2011-12-01 21:18 ` Thomas Petazzoni
2011-12-02 18:33   ` Stephan Hoffmann
2011-12-02 23:08     ` Thomas Petazzoni
2011-12-03 10:53       ` Michael S. Zick
2011-12-03 11:08         ` Thomas Petazzoni
2011-12-03 11:24           ` Michael S. Zick
2011-12-07  8:34           ` Julien Boibessot
2011-12-09 18:55             ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox