After the release the new Yocto-based BSP and Buildroot support for our VAB-820 board, and AMOS-820 system, I had some time to check the new kernel in that package. Being intrigued that the Xenomai real-time Linux development framework lists the VAB-820 as a compatible board, I wanted to give it a try and see how well does it work.
Buildroot already has the support to build Xenomai-enabled kernel and images. The only (moderately) tricky step was to back-port one of the required patches to the 3.10.17 kernel version. Once that was done, a real-time OS image followed in a very short time.
Run the standard benchmarks, and the results look good (e.g. 16.5us mean / 57us max latency for user-space tasks). This graph below is the result of 2h torture testing a VAB-820 board for each of the 3 types of real-time tasks.
What makes me quite excited about this is that the AMOS-820 system with its fanless design, Power-over-Ethernet capability, and now with real-time support makes a very strong case for industrial and demanding use cases. Reliability (both software and hardware), low maintenance (almost "set it and forget it"), and easy installation (single cable) is not an afterthought but a basic feature.
For a step-by-step guide of setting up Xenomai and running the benchmarks, see our detailed blogpost!
For future development, the new pre-release Xenomai 3 version has some new approach to real-time Linux, that enables even more stringent timing requirements, and optimizations for a bunch of different ARM SoC families (including Freescale i.MX6Quad that these VIA devices use). The new Xenomai version needs some more setting up, but will be interesting to compare to these results.
What do you use your real-time system for? What's your experience with them?