On 6/15/2015 4:20 PM, William Hermans wrote:
>>
>> *If you're looking for details on the BBB/Xenomai install, that's not*
>> * really within the realm of the Machinekit docs repo. The best place*
>> * to look for the details and "secret sauce" of building a working image*
>> * is to actually grab the build scripts from github. Robert Nelson is*
>> * now building the Machinekit images as part of his "universal SoC build*
>> * farm", so the Machinekit build scripts are right next to (and*
>> * virtually identical to) the scripts used to craft the other BeagleBone*
>> * images:*
>>
>> *
https://github.com/RobertCNelson/omap-image-builder
>> <
https://github.com/RobertCNelson/omap-image-builder>*
>>
>> * To make a Machinekit image, just:*
>>
>> * ./RootStock-NG.sh -c machinekit-debian-wheezy*
>>
>> * ...like it says at the bottom of the readme.md <
http://readme.md> file.*
>
> Thanks for your answer Charles. However what I would like to find out is
> how is machinekit different from say Debian. Not so much in difference
> between distro's( because I'm thinking it's "just" a kernel with *some*
> tools ), or determinism, but how does one use it to their full advantage.
The Machinekit BBB image *IS* Debian, just with a Xenomai capable
kernel and some packages to make use of it pre-installed.
> So for all I know, one would use it like you'd use Linux in general. My
> guess would be this is not the case however. Also, knowing some guidelines
> while developing deterministic code would be very handy too.
>
> So basically, stuff that an experienced developer should know when using
> machinekit, but doesn't from lack of experience *with* machinekit. Which
> libc is expected . . . etc.
>
> Does that make any sense ? Maybe I'm looking in the wrong place so far ?
That makes sense, but is _way_ beyond the scope of a simple email,
particularly since I don't know how much you do or don't know about
coding for real-time.
If you're wanting to easily write deterministic code, you might want
to use PREEMPT_RT, which works really well on the x86 architecture and
is coming along on the ARM architecture. This allows you to write
"normal" C code, including making kernel syscalls (directly or via
libraries like libc) without loosing real-time performance.
Xenomai runs in it's own domain, and while you can call routines in
the Linux kernel, doing so breaks any guarantee of hard real-time
performance. So you have to write Xenomai drivers or directly talk to
any hardware you're expecting to have real-time performance.
Note that Machinekit is a project to control motors and other physical
things (ie: machines) that runs under several possible real-time
environments (currently Xenomai, PREEMPT_RT, RTAI, and even plain
Posix w/o real-time guarantees). The Machinekit images for the BBB
are simply a ready-to-run version of the RCN's BBB Debian builds with
the Xenomai kernel and Machinekit packages pre-installed for ease-of-use.
--
Charles Steinkuehler
cha...@steinkuehler.net