Contributing to Xenomai 4

We obviously welcome contribution to this effort, small or large. If you are interested in contributing to Xenomai 4 here are some helpful hints on how to get started. Start small, then progress as you get your feet wet. There is no such thing as a minor contribution, there is no shame in making mistakes. A contributor who submits a perfectible one-liner surely advances the project further than any smart lurker. Things you will need:

  • to build EVL from source for your platform of choice, unless you precisely want to port EVL to that platform.

  • access to the Xenomai mailing list

You can contribute to Dovetail, the EVL core, libevl, and/or the documentation effort, there is a lot to be done in all areas.

Submitting patches

Xenomai 4 follows the kernel coding style for Dovetail, the EVL core, and libevl too.

Please send individual patch or series to the Xenomai mailing list for review.

Getting the basics right

Understanding the two key concepts of interrupt pipelining and alternate scheduling implemented by Dovetail is a must. This is what enables the kernel to hand over high priority events and tasks to a companion core such as EVL (and any other Dovetail client for that purpose) to get them processed with bounded, ultra-low latency.

Porting EVL to a new platform

This basically means porting Dovetail to that platform, in the sense that most machine and architecture-specific code we may need involves running the interrupt pipeline the EVL core depends on. Luckily, a Dovetail porting guide is available to help you in this task, explaining the fundamentals of a port, and what changes should be applied to the vanilla mainline kernel.

Digging into the EVL core internals

First, the documentation on this website tends to explicitly refer to particular pieces of code via Permalinks to GIT commits when discussing a matter. This should give you direct pointers to the implementation in many occasions. For instance, you can find some of these in the discussion about the alternate scheduling technique Dovetail implements and which the EVL core uses, or in the discussion about out-of-band GPIO services.

Second, there is a work-in-progress section called “Under the hood”.

Last but not least, there is always the mailing list to ask for implementation details.

Use the rules of thumb

This document gives you a few but important hints, tips and tricks when developing in a dual kernel environment based on Dovetail.


Last modified: Sat, 04 Mar 2023 16:43:20 +0100