Am 02.12.2012 um 11:25 schrieb Anders Wallin:

> On Fri, Nov 2, 2012 at 5:18 PM, Michael Haberler <[email protected]> wrote:
> 
>> I have now integrated the RT-PREEMPT branch as provided by Charles, added
>> the now-working Xenomai-userland thread style, and massaged configure to
>> deal with all of this. The Xenomai-kernel branch I reported about yesterday
>> is fully integrated. If you played with that branch, it's safe to switch.
>> this adds the following scenarios:
>> ./configure --with-threads=xenomai-user
>> ./configure --with-threads=rt-preempt-user
>> ./configure --with-threads=rtai
>> ./configure --enable-simulator [--enable-drivers for the hal_parport
>> usermode driver]
>> for the RT-PREEMT flavor, please install
>> 
>> http://static.mah.priv.at/public/xenomai-debs/linux-headers-3.4.13-rt-preempt-rt22+_0.1_i386.deb
>> 
>> http://static.mah.priv.at/public/xenomai-debs/linux-image-3.4.13-rt-preempt-rt22+_0.1_i386.deb
>> The notes from README.xenomai wrt initrd and update-grub apply as well.
>> Please pull from
>> http://git.mah.priv.at/gitweb/emc2-dev.git/shortlog/refs/heads/rtos-integration-preview1
>> 

I will document this in the manual (not Wiki, because barely anybody feels Wiki 
content carries an update/keep current obligation) as this approaches 
merge-readiness, which it isnt quite yet, but 'between the lines', here you go:

> 
> For mere mortals (not kernel hacker gurus), would it be possible to write
> down a step-by-step guide for how to test these new developments on e.g.
> Ubuntu 12.04LTS or 12.10?
> I'd be happy to write down some notes in the wiki, but I don't know all the
> steps yet... I am doing something like this:
> 1. get michael's kernel repo from git://git.mah.priv.at/linuxcnc-kernel
yes
> 2. checkout the branch you want (xenomai, rt-preempt)
yes
> 3. make xconfig (just defaults are OK?), make

look in the toplevel linuxcnc subdirectory of that branch. This should contain 
configs which are known work, and a build script. Dont start inventing configs 
from scratch, this has been a loooong path to arrive at what's found there

> 4. what now? Move the bzImage to /boot ? How do I get it to show up in the
> GRUB boot menu?

if you use my build scripts - just install the resulting .debs with dpkg -i 
<debnames ...> 

if you do it manually, post build, you do the:
make modules_install headers_install
yes, move bzImage to /boot/vmlinuz-.....
then update-initramfs -c -k <kernel-version>
and 'update-grub'

> 
> as for the linuxcnc part I think I can manage that, following the "install
> from source" guide with minor modifications from here
> http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Installing_LinuxCNC

there's a longish list of options, some old gone, the important ones are:

given no option, configure tries to determine the current kernel version and 
inspect /boot/config-`uname -r` to see what's running, and will set thread 
style appropriately. For xenomai it defaults to --with-threads=xenomai-user, 
and for RT_PREEMPT it defaults to --with-threads=rt-preempt-user. RTAI works 
without further ado; you can always cross-build by forcing a thread style and 
pointing to a kernel config by --with-kernel=/boot/config-<kernelversion>.

--with-threads=posix # the old simulator build; you can add --enable-drivers 
which will build a simulator with hal_parport - technically its not a simulator 
anymore but it can drive a machine, however with absolutely lousy latency, this 
is really good only for non-RT type standalone applications when you dont need 
RT behaviour
ad dont want to/cannot install an RT kernel

--with-threads=xenomai-user # this is likely what you want
--with-threads=rt-preempt-user # does work to but has signifcantly worse 
latency values than xenomai-ser

for platforms we have:

--with-platform=beaglebone and --with-platform=raspberry ; defaults to PC 
> 
> On x86 hardware, are there any particular reasons for choosing between
> rt-preempt and xenomai?
see above

> Are both of these kernels something everyone DIY builds, or are there
> stable and updated repos for the kernels?

currently only DIY builds; and chances for Xenomai stock kernels are anywhere 
from none to homooeopathic; with RT_PREEMPT it's very likely that a stock 
kernel could be used.

> Did anyone compare RTAI vs rt-preempt vs xenomai on the same hardware? Will
> it make any difference for applications where only a servo-thread at ca 1ms
> is used?

latency ordering is: RTAI, Xenomai-User, Xenomai-Kernel, RT_PREEMPT, Posix from 
best to worse

I would think for a servo config the xenomai-user version would work, likely 
also rt-preempt

NB: we dont have PCI drivers yet, so no hostmot and colleagues!
-m

> 
> Anders
> ------------------------------------------------------------------------------
> Keep yourself connected to Go Parallel: 
> DESIGN Expert tips on starting your parallel project right.
> http://goparallel.sourceforge.net/
> _______________________________________________
> Emc-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-developers


------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
DESIGN Expert tips on starting your parallel project right.
http://goparallel.sourceforge.net/
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to