Skip to content

Discussion: Real Time Cores (Preempt-RT, RTAI, Xenomai and others) #3878

@hdiethelm

Description

@hdiethelm

After the long discussions in #3873 and #3875, I investigated the real time options a bit more in depth and created a summary.

LinuxCNC has quite a number of available real time cores. Some of them are broken, others work fine. What I found so far:

All userspace variants are configured by --with-realtime=uspace and built if the needed library is installed. During runtime, a variant is detected using the kernel name, version and other hints and selected automatically or also not if your kernel name doesn't match expectations.

Format: {Text shown at start of LinuxCNC}:{My short description}

  • User Space: --with-realtime=uspace
    • POSIX non-realtime: Any old kernel or you forgot make setuid
      • Works, but big latency
      • Basically what starts when you don't have any other realtime or it is not properly detected
    • POSIX realtime: PREEMPT_RT
      • Works
      • Probably the most used option
      • Debian stock RT kernel works fine
    • XENOMAI (posix-skin) realtime: Xenomai2: Might be / Xenomai3: Works / Xenomai4: Not compatible
      • Works: I managed to get it running with Xenomai3
      • Probably seldom used due to no up to date compiled kernel package is available
    • LXRT realtime: RTAI Userspace
      • Seams to be broken after 2.8.4. I had no success, 2.8.4 is buster where I don't have a VM. In Bookwork/Trixie I was not able to compile 2.8.4. 2.9.* and master builds but has an error starting.
  • Kernel Space: --with-realtime=/usr/realtime-$VERSION

RTAI is not maintained any more, last commit ~4 years ago.

To help others wanting to try Xenomai3, I created a repo with all you need to get it running:
https://github.com/hdiethelm/xenomai3-linuxcnc

Xenomai4 has a new API: EVL. I did not found a posix skin. I managed to get the kernel and tools built for anybody interested in creating a Xenomai4 module for LinuxCNC:
https://github.com/hdiethelm/xenomai4-linuxcnc

If there is interest, I could try to create a Xenomai4 userspace module. Looking at the code and what I have read so far, this should be not to complicated.

BTW: Is it fine starting this discussion here or should I move it to the forum?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions